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 ? Oct 7, 2016 at 10:10
  • I was trying to add some data like server, port etc to the env file.
    – user43415
    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
    – user43415
    Oct 7, 2016 at 12:09
  • I update Answer.
    – KAndy
    Oct 7, 2016 at 12:24
  • Thank you very much for your reply.It was really helpful for me..!
    – user43415
    Oct 12, 2016 at 4:28
  • To use saveConfig() func we need to inject Magento\Framework\App\DeploymentConfig\Writer;
    – user43415
    Oct 12, 2016 at 4:30
  • eg :-$this->writer->saveConfig([ConfigFilePool::APP_ENV => ['your_key' => $data]]);
    – user43415
    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.

Not the answer you're looking for? Browse other questions tagged or ask your own question.