4

I need to set some data to the env.php file from my controller.Is there any possible way to do so.

2
  • 1
    What kind of data do you want to add ? Any reason why it has to be this file in particular ? Commented Oct 7, 2016 at 10:10
  • I was trying to add some data like server, port etc to the env file. Commented Oct 7, 2016 at 10:39

1 Answer 1

7

\Magento\Framework\App\DeploymentConfig\Writer class is responsible for write deployment configuration. You can ask it in the constructor of your controller and then save data.

Example code:

<?php

class MyAction extends \Magento\Framework\App\Action\Action
{
    public function __construct(
        Context $context,
        \Magento\Framework\App\DeploymentConfig\Writer $deploymentConfig
    ) {
        parent::__construct($context);
        $this->deploymentConfig = $deploymentConfig;
    }

    public function execute()
    {
        echo $this->deploymentConfig->saveConfig([ConfigFilePool::APP_ENV => ['your_key' => $data]]);
        die();
    }
}
7
  • Thanks for your response. But how can we write data to the env file programmatically Commented Oct 7, 2016 at 12:09
  • I update Answer. Commented Oct 7, 2016 at 12:24
  • Thank you very much for your reply.It was really helpful for me..! Commented Oct 12, 2016 at 4:28
  • To use saveConfig() func we need to inject Magento\Framework\App\DeploymentConfig\Writer; Commented Oct 12, 2016 at 4:30
  • eg :-$this->writer->saveConfig([ConfigFilePool::APP_ENV => ['your_key' => $data]]); Commented Oct 12, 2016 at 4:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.