4

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

  • 1
    What kind of data do you want to add ? Any reason why it has to be this file in particular ? – Raphael at Digital Pianism Oct 7 '16 at 10:10
  • I was trying to add some data like server, port etc to the env file. – Rahul Oct 7 '16 at 10:39
6

\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();
    }
}
| improve this answer | |
  • Thanks for your response. But how can we write data to the env file programmatically – Rahul Oct 7 '16 at 12:09
  • I update Answer. – KAndy Oct 7 '16 at 12:24
  • Thank you very much for your reply.It was really helpful for me..! – Rahul Oct 12 '16 at 4:28
  • To use saveConfig() func we need to inject Magento\Framework\App\DeploymentConfig\Writer; – Rahul Oct 12 '16 at 4:30
  • eg :-$this->writer->saveConfig([ConfigFilePool::APP_ENV => ['your_key' => $data]]); – Rahul Oct 12 '16 at 4:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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