Я создаю веб-сайт с «субдоменом» под названием marketplace. поэтому URL-адрес будет marketplace.sample.com. Я использую расширенное приложение Yii2 и добавил следующий код в свой index.php, расположенный в frontend/web.
defined('MARKETPLACE') or define('MARKETPLACE', preg_match('/^marketplace/', $_SERVER['HTTP_HOST']) === 1 ? true : false);
Это работает в моей среде, однако я только что понял, что файл index.php находится в файле .gitignore в Yii2, потому что этот файл создается сценарием инициализации, и поэтому изменения в нем будут перезаписаны при запуске init.
В любом случае, поэтому возникает вопрос: куда мне поместить этот код, чтобы его можно было зафиксировать и поделиться с остальной командой разработчиков, а затем запустить его в производство, когда код будет отправлен?
Я попытался поместить этот код в common/config/params.php, но затем, когда я пытаюсь получить доступ к переменной, чтобы определить, какой маршрут использовать, я не могу, потому что приложение Yii не было инициализировано, когда интерфейс /config/main. php запускается, и я получаю сообщение об ошибке, что я пытаюсь получить доступ к свойству, не являющемуся объектом.
/интерфейс/config/main.php
'defaultRoute' => MARKETPLACE ? 'marketplace' : 'site',
/frontend/config/main.php (вместо параметра)
'defaultRoute' => Yii::$app->params['marketplace'] ? 'marketplace' : 'site'
этот второй дает ошибку, что я пытаюсь получить доступ к свойству, не являющемуся объектом.