【问题标题】:How to define variable in cakephp which is accessible throughout the application?如何在 cakephp 中定义可在整个应用程序中访问的变量?
【发布时间】:2014-01-04 10:37:01
【问题描述】:

我想在 cakephp 中定义一个可以从任何地方(即模型、控制器、组件等)访问的变量,而无需使用会话。如何在 cakephp 中实现这一点,有什么建议吗?

【问题讨论】:

标签: cakephp


【解决方案1】:

您可以在app/Config/bootstrap.php 中定义常量,但更好的解决方案是使用Configure::write();

例如,如果您想在任何地方读取某个变量,可以通过以下方式将其设置在 bootstrap.php 文件 (app/Config/) 或您的 AppController.php (app/Controllers) 中:

Configure::write('variable_name', 'variable_value');

并通过以下方式在任何地方阅读:

Configure::read('variable_name');

【讨论】:

  • 我不能使用 Configure::write(),因为它使用 session 来存储它的值......我所做的是我在 bootstrap.php 中使用 global 关键字创建了全局变量和使用 global 关键字在每个函数上重新声明它...然后访问它的值...及其工作...
  • 静态类配置不使用会话,而是将数据存储在变量中。
  • 为什么Configure::write()constdefine()“更好”?
【解决方案2】:

我在 app/Config/app.php 创建了一个应用程序特定的配置文件,如下所示:

<?php
$config = array(
    'App' => array(
        'name' => 'My App Name'
    )
);

然后通过在我的 app/Config/bootstrap.php 文件中包含以下行,将它包含在我的 CakePHP 应用程序中:

Configure::load('app');

这为我提供了一个文件,其中包含我所有应用程序特定的配置设置,而无需在我的代码库中添加Configure::write() 调用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-15
    • 1970-01-01
    • 2017-07-02
    • 1970-01-01
    相关资源
    最近更新 更多