【问题标题】:How to organize shared functions in CakePHP?如何在 CakePHP 中组织共享函数?
【发布时间】:2013-03-07 20:46:55
【问题描述】:

我需要创建很多功能,供 6+ 控制器使用。所以... 共享函数

此功能需要

  • 模型访问
  • 数据库访问
  • 库访问
  • 供应商访问
  • 插件访问
  • 查看重定向
  • 返回参数(回调)

最好的方法是什么?

  • 组件
  • 行为
  • 供应商

我的网站配置

  • CakePHP 2.3
  • MySQL 5.5
  • PHP 5.3.9
  • Apache 2.2

对不起我的英语。 谢谢。

【问题讨论】:

  • 与组件一起使用它会很好地工作并且也很容易访问
  • 查看重定向?哪有这回事。仅通过控制器/请求对象进行正常重定向
  • 我不知道。我只想详细说明我的问题。无论如何,我会尝试组件,但我不知道是否是一个好的做法。

标签: php cakephp


【解决方案1】:
Helpers are for (multiple) views
Behaviors are for (multiple) models
Tasks are for (multiple) shells
Components are for (multiple) controllers

所以 - 如果您在控制器之间共享这些功能,合乎逻辑的答案是使用组件。

您提供的所有其余“选项”都因至少一个原因而失败。

但请记住,您仍然必须将模型内容保持在模型层附近,并且只能通过控制器/组件中的模型方法使用它。 不要使这些组件成为强大的模型或其他东西。它们旨在在控制器之间共享“逻辑”。

【讨论】:

  • 那么,如果组件执行一些操作(比较,求和),并在数据库中选择/插入一些信息,它是正确的?
  • 但我的意思是:在组件中加载模型,并调用“插入/选择”函数。理解?我可以这样做吗?
  • 是的,您可以通过 ClassRegistry::init() 或通过控制器使用模型,并像从任何控制器本身一样使用它们。
【解决方案2】:

您只需在 Appcontroller 文件中编写这些函数,以便全局访问它们。

【讨论】:

    猜你喜欢
    • 2017-07-03
    • 1970-01-01
    • 2022-01-17
    • 2021-08-03
    • 1970-01-01
    • 1970-01-01
    • 2010-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多