我只想在几个地方使用$variable
:不仅在视图和控制器中,而且在routes.php
和其他配置文件中。
我不想这样:使用Config类加载配置文件;使用CI的get_instance
等等。
我只想声明一个给定的$variable
(它可以是一个常量,但我需要它作为一个变量),并在任何地方使用它。
事实上...我想知道CI Bootstrap 中的哪个PHP文件是第一个被解析的文件之一,这样我就可以在那里引入我的全局变量...但不是核心/系统或不合适的文件,而是这个简单要求的“最佳”位置。
8条答案
按热度按时间6rqinv9w1#
/application/config
中有一个名为constants.php
的文件我通常把我的所有在那里与评论,很容易看到他们在哪里:
在加载
index.php
之后,它加载/core/CodeIgniter.php
文件,然后依次加载公共函数文件/core/Common.php
和/application/constants.php
,因此在这一系列事情中,它是要加载的第四个文件。vlf7wbxs2#
我在一个helper文件中使用了一个“Globals”类,并使用静态方法来管理我的应用程序的所有全局变量。
globals_helper.php(helpers目录下)
然后自动加载到autoload.php文件中
最后,为了在代码中的任何地方使用,您可以这样设置变量:
这读它:
注意:我之所以把initialize调用留在Globals类中,是为了在需要的时候可以用初始化器来扩展这个类。如果你不需要通过setter/getter来控制什么被设置和读取,你也可以把属性设置为公共的。
niknxzdl3#
你也可以创建一个constants_helper. php文件,然后把你的变量放进去。
然后在application/config/autoload.php中,自动加载constants helper
yzuktlbb4#
inside file application/conf/contants.php:
并放入一些头文件或任何函数中:
cbjzeqam5#
CodeIgniter 4 -声明全局变量的最佳位置
在CodeIgniter 4中,我们有一个像app/config/Constant.php这样的文件夹,所以你可以在Constant.php文件中定义一个全局变量。
define('initClient_id','Usqll3ASew78hjhAc4NratBt');http://localhost/domainName/successlogin');
从任何控制器或库,您可以通过名称访问,如
echo initClient_id;print_r(initClient_id)
redirect_uri;print_r(initRedirect_uri)
基本上,在部署到服务器之前,我已经将开发和生产的所有URL作为变量放在Constant.php中,我只是对开发变量进行注解
codeignitor 4文件的加载是这样的
在你的index.php被加载之后,它会加载/core/CodeIgniter. php文件,然后依次加载公共函数文件/core/Common. php和/application/constants. php,所以在这条链中,它是第四个要加载的文件。
ujv3wf0j6#
在
codeigniter
中声明global variable
的最佳位置是目录/application/config
中的constants.php
文件可以按如下方式定义全局变量
xxls0lw87#
类似于上面斯巴达克的回答,但可能更简单。
帮助文件中的一个类,具有一个静态属性和两个对该静态属性进行读写的示例方法。无论您创建多少个示例,它们都将写入单个静态属性。
在你的一个自定义助手文件中创建一个类。同时创建一个返回该类示例的函数。该类定义了一个静态变量和两个示例方法,一个读数据,一个写数据。我这样做是因为我希望能够从控制器,模型,库,库模型,并收集所有的日志数据发送到浏览器一次。我不想写到日志文件,也不想保存的东西在会话。我只是想收集一个数组,其中包含在我调用 AJAX 期间服务器上发生的事情,并将该数组返回给浏览器进行处理。
在帮助文件中:
在任何控制器中,您可能希望输出由控制器或由控制器调用的库方法或由控制器调用的模型函数创建的所有日志条目:
打印输出:
从controllerName进行日志记录:测试日志
从modelName进行日志记录:测试日志
从customLibrary记录:测试日志
5uzkadbs8#
可能不是最好的地方,但是我需要定义的常量是在从外部源阅读它之后。为了解决这个问题,我们使用了钩子。
https://www.codeigniter.com/userguide3/general/hooks.html
在config.php中启用钩子
编辑/添加hooks.php
在hooks文件夹中添加文件. PostConstructorHook.php