我正在建立一个网站,该网站有一个名为“市场”的“子域”。所以 URL 将为 Marketplace.sample.com。我正在使用 Yii2 高级应用程序,并将以下代码添加到位于 frontend/web 的 index.php 中。
defined('MARKETPLACE') or define('MARKETPLACE', preg_match('/^marketplace/', $_SERVER['HTTP_HOST']) === 1 ? true : false);
这适用于我的环境,但是,我刚刚意识到 index.php 文件位于 Yii2 中的 .gitignore 文件中,因为该文件是由 init 脚本创建的,因此对它的更改将通过运行 init 被覆盖。
无论如何,问题是:我应该将该代码放在哪里,以便可以将其提交并与开发团队的其他成员共享,并在代码推送时将其投入生产?
我尝试将此代码放入 common/config/params.php 中,但是当我尝试访问变量来确定要使用哪个路由时,我不能这样做,因为在 frontend/config/main.php 时 Yii 应用程序尚未初始化。运行 php 文件时出现错误,提示我正在尝试访问非对象的属性。
/frontend/config/main.php
'defaultRoute' => MARKETPLACE ? 'marketplace' : 'site',
/frontend/config/main.php (用参数代替)
'defaultRoute' => Yii::$app->params['marketplace'] ? 'marketplace' : 'site'
第二个给出了我正在尝试访问非对象的属性的错误。