【问题标题】:Where can I put my global code in Kohana 3.3?在 Kohana 3.3 中我可以将我的全局代码放在哪里?
【发布时间】:2014-02-22 02:15:44
【问题描述】:

假设我希望在我的所有模型、视图和控制器代码(在特定网站(应用程序)内)中都可以使用一个常量、一个函数或一个类。我可以把它们放在哪里?我不介意在我需要它们的每个文件中显式导入它们,但我不知道如何(简单的require_once 似乎不起作用)。

【问题讨论】:

标签: php kohana kohana-3.3


【解决方案1】:

您可以将它们放在供应商文件夹中(在 application/vendor 或 modules/MOD/vendor 中)。然后你可以像这样加载它:

require Kohana::find_file('vendor', 'folder/file','ext');

您可以在user guide 中阅读更多信息

现在,应该声明您通常不应该使用函数或全局变量。

【讨论】:

  • 注意,如果你把它放在一个模块中,你可以使用init.php文件来一直加载它。否则,将其放在引导程序中
【解决方案2】:

我在 Bootstrap.php 中声明了常量,并为application/classes/Helpers 下的通用函数创建了我自己的Helpers

如果您需要将第三方库集成到 Kohana 中或想让其他 Kohana 用户可以使用代码,请考虑改为创建 module

【讨论】:

    【解决方案3】:

    您可以在新的 php 文件中定义所有常量并将其放在 application/classes 目录中。在您的模板控制器或欢迎或网站等主控制器中,只需将代码放在__constructor()

    require_once Kohana::find_file( 'classes', 'filename' );
    

    【讨论】:

      【解决方案4】:

      我建议您将常量变量放在bootstrap.php 文件中,因为这是在每次请求之前由框架加载的。

      你可以简单地将你的类放在classes目录的根目录下,框架会找到。

      【讨论】:

        【解决方案5】:

        这对我来说效果很好......

        在 application/config/constants.php 中:

        define('SOME_COOL_CONSTANT', 'foo');
        return array();
        

        在 index.php 中:

        Kohana::$config->load('constants');
        

        SOME_COOL_CONSTANT 应该可以在全球范围内使用。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-01-07
          • 2015-09-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-03-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多