【问题标题】:Logic shared between controllers and views (or components and helpers) in CakePHPCakePHP 中的控制器和视图(或组件和助手)之间共享的逻辑
【发布时间】:2013-05-31 06:27:29
【问题描述】:

我编写了一个帮助程序来帮助在我的 CakePHP 2.3 应用程序中生成 URL。基本上它是 Cake 内置功能的包装器,有助于处理路由前缀,避免常见事物的键/值数组对等,以使代码更整洁。

问题是,我需要基本上所有相同的功能来从我的助手轻松生成这些 URL,这些功能在我的控制器中可用 - 用于登录重定向、编辑后重定向等。

有没有一个很好的解决方案可以在不重复代码的情况下在控制器和视图之间共享逻辑?我知道一般视图和控制器不应该共享代码 - 但也有例外。

【问题讨论】:

    标签: cakephp cakephp-2.3


    【解决方案1】:

    您可以创建一个“实用程序”并为此创建“助手”和“组件”包装器,它们可以在控制器和视图中使用,类似于 TextHelper / String Utility 组合。

    【讨论】:

    • 任何关于在 Cook Book 中创建自己的实用程序的文档?好像找不到...
    • 不,没有。基本上,实用程序只是您自己设计的类。 “实用程序”没有严格的约定,但我(个人)只是发现它是共享一些可在应用程序的各个部分中使用的逻辑的最干净的方式,而不仅限于帮助程序或控制器/组件跨度>
    • 要详细说明这个答案,您可以在app/ 中创建一个名为Utility 的新目录,然后通过在代码中的任何位置调用App::uses("MyUtility", "Utility"); 来包含其中的任何文件。该实用程序默认情况下不必扩展任何内容,因此它可以作为实用程序工作:Class MyUtility { <rest of code> }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-05
    • 1970-01-01
    • 1970-01-01
    • 2016-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多