【问题标题】:Need help with understand AppController class in CakePHP需要帮助了解 CakePHP 中的 AppController 类
【发布时间】:2011-04-25 14:37:29
【问题描述】:

我通过了几个 CakePHP 的基本教程。现在我正在尝试了解身份验证组件。

为什么在本教程中:http://book.cakephp.org/pl/view/643/Preparing-to-Add-Auth 他们创建了新的 AppController 类?我问是因为我刚刚创建了一些控制器,其中的类继承自 AppController 类,而我还没有自己的 AppController 类。

【问题讨论】:

    标签: php cakephp cakephp-1.3


    【解决方案1】:

    您创建一个新的 AppController 来为您的控制器定义新的扩展功能。

    基本上,您的所有控制器都应该扩展您的新 AppController 类,该类定义了您的所有身份验证逻辑。这些 beforeFilter()/afterFilter() 方法由您的调度程序自动运行,这些方法可以指示是否继续处理当前控制器。

    【讨论】:

    • 所以当我通过没有创建 AppController 类(/app 目录中的 app_controller.php)的教程时,我创建的所有控制器都扩展了另一个(内置)AppController 类?
    • 是的,在你的app目录下创建app_controller.php文件,你所有的控制器都应该扩展AppController
    • 我觉得你听不懂我的意思(我的英语不太好)。如果我在我的应用目录中创建 app_controller.php 文件(带有 AppController 类),我会从另一个文件中覆盖 AppController 类?
    • 如果您的应用目录中已经有一个app_controller.php,那么您不需要覆盖它。基本上,您只想通过将教程中定义的功能与您现有的 AppController 添加到一起来合并这两个文件。
    • @latata: 如果你的 app 目录下没有 app_controller.php,CakePHP 将使用 cake/libs/controller/app_controller.php
    【解决方案2】:

    接下来我们需要做一些 对 AppController 的修改。如果你 没有/app/app_controller.php, 创造它。请注意,这进入 /app/,而不是 /app/controllers/。因为我们 希望我们的整个网站控制 Auth 和 Acl,我们将在 应用控制器。

    在本例中,您只是对“骨架”AppController 类进行修改(添加beforeFilter() 回调)。此类将由您应用程序中的所有控制器扩展。这是一种添加适用于应用中所有控制器的功能的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-19
      • 2016-05-03
      • 1970-01-01
      • 2021-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多