在 Yii2 中,类似于 YII_DEBUG 和 YII_ENV 的全局变量应该放在哪里

2024-02-04

我正在建立一个网站,该网站有一个名为“市场”的“子域”。所以 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'

第二个给出了我正在尝试访问非对象的属性的错误。


在目录中:

 common/config 

您可以使用 bootstrap.php 文件插入您需要的代码。 该文件在启动阶段执行,并且不在.gitignore中指示。

通过这种方式,您可以分配常量 MARKETPLACE 确保在使用 GIT 时传播代码

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Yii2 中,类似于 YII_DEBUG 和 YII_ENV 的全局变量应该放在哪里 的相关文章

  • PHP 文件服务脚本:下载不可靠?

    这篇文章最初是关于 ServerFault 的一个问题 https serverfault com questions 131156 user receiving partial downloads https serverfault co
  • php56 - CentOS - Remi 仓库

    我刚刚在测试盒上安装了 php 5 6 正常的 cli php 解释器似乎不存在 gt php v bash php command not found gt php56 v PHP 5 6 13 cli built Sep 3 2015
  • SQLSTATE[HY000] [2002] 资源暂时不可用 - mysql - innodb 和 pdo

    在我的错误日志中得到大量结果 如下所列 数据库中的所有表都是 innodb 并且就与这些表的任何交互而言 一切都是带有准备好的语句的 pdo 正如我所说 所有错误几乎与下面列出的错误相同 但发生在几个不同的页面上 无论页面如何 错误行始终指
  • 在 CentOS 中安装 PHP Zip 扩展

    我正在尝试在 CentOS 中安装 PHP Zip 扩展 我的服务器没有外部互联网访问权限 所以我自己从 PECL 下载了它 http pecl php net package zip http pecl php net package z
  • 如何让 Laravel“确认”验证器将错误添加到确认字段?

    默认情况下 Laravel 确认 验证器将错误消息添加到原始字段 而不是通常包含确认值的字段 password gt required confirmed min 8 是否有任何简单的方法来扩展验证器或使用一些技巧来强制它始终在确认字段而不
  • 如何改进 PHP 分页算法?

    我正在研究 PHP 中的分页算法 我可以猜测它需要改进的空间 所以我想对如何改进它有一些想法 无论是从 UI UX 的角度清理代码本身 还是你能想到的任何其他东西 该算法应输出如下所示的分页 1 2 3 6 7 8 97 98 99 or
  • PHP DBlib PDO 问题

    我正在尝试通过 php 连接到 MSSQL 服务器 但我的 pdo 连接给我带来了困难和我不太理解的错误 我在下面粘贴的代码一周前运行得很好 突然间它就停止了 没有任何人进行任何更改 我仍然可以连接到服务器并直接从命令行运行查询 但我在 p
  • Laravel 5 配置语言环境,不起作用

    已完成的修改 on 配置 应用程序 php locale gt env APP LOCALE en fallback locale gt en on env APP LOCALE pt 我也复制了 资源 lang en文件到 资源 lang
  • CodeIgniter/PHP - 从视图内调用视图

    基本上 对于我的网络应用程序 我正在尝试更好地组织它 目前 每次我想加载页面时 我都必须从控制器中执行此操作 如下所示 this gt load gt view subviews template headerview this gt lo
  • 带摘要的 php curl 返回两个响应

    我发现了一个 奇怪 的 php CURL 行为 这让我抓狂 基本上我正在做的是使用curl 进行摘要身份验证的调用 这是我的代码的摘录 curl setopt this gt c CURLOPT HTTPAUTH CURLAUTH DIGE
  • PHP 多个 Ajax 请求:第一个请求阻止第二个请求

    我在一页上有 2 个 ajax 请求 我运行了第一个请求并单独启动了第二个请求 但第二个在第一个运行后停止工作 第一次结束后继续 第一个请求需要很长时间 大约 30 60 秒 此时我需要第二个请求来显示日志第一个请求发生的情况 我尝试使用
  • 如何使用 PATCH 更新简单的数据库字段?

    我是 php 和 API 的新手 我正在尝试学习这些方法 但我无法执行 PATCH 或 PUT 来更新我的简单 mysql 数据库 我使用了以下代码 if isset PATCH con mysqli connect localhost r
  • 根据重复值对 PHP 数组进行排序

    我有一个包含重复值的数组 我想对数组进行排序 以便重复次数最多的值出现在行中的第一个 这是我的数组的示例 array 1 2 3 2 1 2 2 我想对该数组进行排序 以便它根据重复项的数量对自身进行排序 如下所示 array 2 1 3
  • 从 PHP 启动守护进程

    对于网站 我需要能够启动和停止守护进程 我目前正在做的是 exec sudo etc init d daemonToStart start 守护进程已启动 但 Apache PHP 挂起 做一个ps aux透露sudo它本身变成了僵尸进程
  • Twitch API - 无法使用 PHP 获取身份验证令牌

    stackoverflow 的成员们大家好 我不是一个喜欢寻求帮助的人 但在这种情况下 我认为这是解决我的问题的唯一方法 谷歌并没有给我太大帮助 所以 我的问题 我想使用 Twitch API 获取一些数据 听起来很容易 我希望是这样 下面
  • 唯一的图像哈希值即使 EXIF 信息更新也不会改变

    我正在寻找一种方法来为 python 和 php 中的图像创建唯一的哈希值 我考虑过对原始文件使用 md5 和 因为它们可以快速生成 但是当我更新 EXIF 信息 有时时区关闭 时 它会更改总和 并且哈希也会更改 有没有其他方法可以为这些文
  • Sublime Text 编辑器中的 PHP 语法检查

    在Gedit中 我可以在当前文档上添加 php l 外部工具 如果我安装了PHP命令行 它将对文档进行语法检查 有没有办法用 Sublime Text 编辑器来做到这一点 注意 我有一台 Mac 并且安装了 PHP CLI 我想我必须将代码
  • 将 Base64 字符串转换为图像文件? [复制]

    这个问题在这里已经有答案了 我正在尝试将我的 Base64 图像字符串转换为图像文件 这是我的 Base64 字符串 http pastebin com ENkTrGNG http pastebin com ENkTrGNG 使用以下代码将
  • 如何让php页面从html页面接收ajax post

    我有一个非常简单的表单 其中有一个名字输入字段 我捕获了表单数据 并使用标准 jQuery 发布方法通过 ajax 将其传输到 PHP 页面 但是 我根本无法从 PHP 页面获得任何在服务器端捕获数据的响应 我不确定我做错了什么或缺少什么
  • 将 Hbase 与 PHP 集成 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我已经安装了 Hbase 现在我正在寻找一些 PHP 库来将 hbase 与 PHP 集成 我尝试了 2 个库 第一个是我尝试与 th

随机推荐

  • 如果列表中的数字小于 10,则在数字前面添加 0(在 python 中)

    编写一个 Python 程序 要求用户输入一串小写字符 然后打印其相应的两位数代码 例如 如果输入是 home 输出应该是 08151305 目前我的代码正在制作所有数字的列表 但我不能 让它在个位数前面添加一个 0 def word ou
  • 为什么 inotify 会丢失事件?

    我需要使用 Perl 和处理大量 100s 的系统日志消息Linux Inotify2 http search cpan org perldoc Linux 3a 3aInotify2 我编写了一个连续生成日志消息的测试脚本 为了处理事件
  • 如果调用函数指针,则是否使用它

    这个问题是由评论引发的here https stackoverflow com a 44740285 4832499 考虑下面的代码 template
  • tfignore 无法在 VS 2013 中工作

    我正在将 Visual studio 2013 与 TFS 2013 一起使用 我一直在尝试使用 tfignore 获取文件夹中的所有文件 以不签入 并且经过数小时的搜索和尝试不同的解决方案 但没有成功 我按照说明进行操作http msdn
  • 在android studio中嵌入人行横道

    我对 android 编程和 android studio 很陌生 我为我的项目研究了 Crosswalk 嵌入 API 并尝试将其嵌入到 Android Studio 中 但我没能成功 即使我也不知道如何嵌入具有 gradle 文件或不具
  • 在测试使用 qunit 显示警报的方法时避免/捕获/验证 Javascript 警报

    我刚刚开始使用 Qunit 想知道是否有办法捕获 验证 忽略警报 例如 function to test alert I m displaying an alert return 42 然后有类似的东西 test to test funct
  • 如何在Python中隐藏FFmpeg的控制台输出?

    我当时正在做一个YouTube 视频下载器Python 程序 我想将下载的数据编码为我使用的这项工作的其他媒体格式FFmpeg and FFmpeg Python 在 Python 中使用 FFmpeg 的包 一切都很好 但我想问我如何禁用
  • 非解引用迭代器是否超过了数组未定义行为的“最后一个”迭代器?

    Given int foo 0 1 2 3 我想知道指向 最后一个 的迭代器是否无效 例如 auto bar cend foo 1 在 Stack Overflow 问题中 有大量投诉和警告称这是 未定义的行为 如下所示 c 当迭代器结束时
  • 不同优化的无法解释的时间

    我正在编写一些代码 这些代码必须根据设置对大型数据集应用不同的算法 数据集很大 现实世界的时间表明我们需要在可能的情况下对其进行优化 所选算法必须在大型数组的许多数据子集上运行 因此 我决定尝试几种不同的方法 初始化一个Func lt gt
  • 将字符串输入随机化为所有可能性

    我需要帮助制作一个程序 该程序使用 args 获取字符串并将其随机化为每种可能性 然后 程序的结果将被保存到用户在执行程序时提供的文本文件中 如果你需要all以随机顺序排列可能的排列 那么我建议构建然后打乱列表 from itertools
  • 如何使用 XPATH 获取 XML 元素的相对深度

    我试图从给定 XML 文件中的特定元素查找给定 XML 元素的相对深度 我尝试使用 XPATH 但我对 XML 解析不太熟悉 并且没有得到所需的结果 我还需要在计数时忽略数据元素 下面是我编写的代码和示例 XML 文件 例如 的深度NM10
  • Maven 依赖项失败并出现 501 错误

    最近Maven构建正在运行的作业Jenkins失败并出现以下异常 表示他们无法从中提取依赖项梅文中心并且应该使用HTTPS 我不知道如何更改请求HTTP to HTTPS 有人可以在这件事上指导我吗 错误 无法解析的构建扩展 Plugin
  • 本地网络上的自托管 ServiceStack REST 服务

    我想知道是否有人可以提供帮助 我有一个本地网络 无线网络 我的计算机和连接到它的笔记本电脑 并且我尝试托管一个使用 ServiceStack 开发的休息服务 如果我在计算机上运行该应用程序 现在是控制台应用程序 并尝试使用计算机 IP 或
  • Swift:如何在每次出现表视图时重新加载新内容(例如数组)?

    我有一个带有两个视图的选项卡栏 tablview 视图控制器添加数据 然后我有一个数组 它将从视图控制器更新为新内容 例如 仅附加新字符串 该数组填充表视图 现在 当应用程序启动时 表视图显示所有数组内容 但是当我通过选项卡栏移动到视图控制
  • 在 Linux 上安装 antlr4 c++ 运行时后,一些包含文件被破坏

    我在linux上下载了antlr4工具并安装了c 运行时 usr local include 我创建了一个小语法文件 使用antlr4命令成功生成了解析器和词法分析器 但是在编译主文件时出现以下错误 我改变了Interval h里面的标题
  • 我可以在模板绑定中传递变量吗?

    我知道这不是长期使用的好方法 但是为了进行故障排除 有什么方法可以在绑定模板时传递一个简单的字符串 然后将其作为模板中的变量访问 例如 如果这是我的绑定 这是tmplOne div span Fruit span span span div
  • 在画布上画“洞”

    我试图在自定义视图的 onDraw 方法中绘制这样的形状 不幸的是 我无法 剪切 画布上的透明圆圈 通过使用 Color Transparent 绘制圆圈 我应该首先在另一个位图中绘制形状 然后将其绘制在 onDraw 提供的画布上吗 或者
  • PySpark 数据帧聚合中包含 null 的计数

    我正在尝试使用 agg 和 count 来获取 DataFrame 的一些计数 from pyspark sql import Row functions as F row Row Cat Date df sc parallelize ro
  • 在 Ansible 中,如何将不同文件中的变量合并到一个数组中?

    在 Ansible 中 在一个角色中 我有这样的 vars 文件 vars app1 yml app2 yml 每个文件都包含特定于应用程序 网站的变量 如下所示 name app1 git repo https github com ph
  • 在 Yii2 中,类似于 YII_DEBUG 和 YII_ENV 的全局变量应该放在哪里

    我正在建立一个网站 该网站有一个名为 市场 的 子域 所以 URL 将为 Marketplace sample com 我正在使用 Yii2 高级应用程序 并将以下代码添加到位于 frontend web 的 index php 中 def