【问题标题】:CakePHP 1.3 Loading a component at runtimeCakePHP 1.3 在运行时加载组件
【发布时间】:2012-01-14 20:58:01
【问题描述】:

我需要加载一个组件,该组件包含一个扩展来自供应商的对象的类。

由于供应商在运行时加载,组件在控制器初始化时加载,脚本崩溃。

如何在运行时加载这个组件以及我应该使用什么类/文件名约定(CakePHP 1.3)?

【问题讨论】:

    标签: php cakephp components cakephp-1.3 vendor


    【解决方案1】:

    您可以使用App:import() 方法在运行时加载。

    <?php
        App::import('Component', 'Mailer');
        // We need to load the class
        $Mailer = new MailerComponent();
    ?>
    

    来自手册:http://book.cakephp.org/view/936/Importing-Controllers-Models-Components-Behaviors-#Loading-Components-939

    【讨论】:

    • 我已经尝试过了,我收到错误消息说该类不存在,这可能与我的文件命名有关吗? Mailer 示例中文件的名称和位置应该是什么?非常感谢您的快速响应和帮助。
    • 该组件将位于 /app/controllers/components 文件夹中,文件名为 mailer.php Docs : book.cakephp.org/view/902/File-and-Classname-Conventions
    • 你的回答和参考真的很有帮助,我最终得到了它的工作。谢谢。
    • @JohnP 答案中的链接不再有效,请尝试以下操作:[importing-controllers-models-components-behaviors-views-and-helpers][1] [1]:book.cakephp.org/1.3/en/The-Manual/Developing-with-CakePHP/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-02
    • 1970-01-01
    相关资源
    最近更新 更多