加载 CakePHP 帮助程序

发布于 2024-12-12 02:01:15 字数 849 浏览 0 评论 0原文

这是一个由多部分组成的问题。

背景

我正在使用 CakePHP 构建我的第一个网站,到目前为止我很喜欢它。我已经设置了数据库,加载了初始数据,以及一些与数据交互的模型、视图和控制器。

我创建了一个全局可访问的函数来在各个区域创建添加/编辑/删除类型图像链接。它将在多个视图中使用,所以我需要它基本上可以在任何地方访问。该函数在 /app/config/bootstrap.php 中定义。我希望使用 HTML Helper 的 $html->image()$html->link() 方法来促进这一点,但它们不可用在 bootstrap.php 中,我不确定如何加载/访问我定义函数的 HTML Helper。

问题:

1)这是定义此类函数的合理/惯用位置吗?

2)如果这不是定义函数的正确位置,我应该在哪里定义它?

3)如果这是定义函数的正确位置,我该如何加载各种 CakePHP 帮助程序?

再说一次,我是 CakePHP 的新手,所以如果我的问题不清楚,请告诉我,并原谅我的无知。我已经阅读/搜索了大量的 CakePHP 文档,虽然我可以找到大量通过 App::import(...);$ 在控制器中加载助手的参考资料helpers = array(...);,我似乎无权访问 App 对象,并且 $helpers 成员特定于 AppController 类,我假设。我认为我的做法是错误的,所以请帮助我理解 Cake 实现这一点的方法。

This is a multi part question.

Background:

I'm building my first site using CakePHP, and I like it so far. I've got a DB setup, initial data loaded, and a few models, views, and controllers to interface with the data.

I've created a globally accessible function to create Add/Edit/Delete type image links in various areas. It will be used across multiple views, so I need it accessible, essentially, everywhere. The function is defined in /app/config/bootstrap.php. I was hoping to use the HTML Helper's $html->image() and $html->link() methods to facilitate this, but they're not available in bootstrap.php and I'm not sure how to load/access the HTML Helper where I've defined my function.

Questions:

1) Is this a reasonable/idiomatic place to define a function of this sort?

2) If this isn't the correct place to define the function, where should I define it?

3) If this is the correct place to define the function, how can I go about loading various CakePHP helpers?

Again, I am new to CakePHP, so please let me know if my question is unclear, and forgive my ignorance. I've read/searched through a fair amount of the CakePHP documentation and while I can find plenty of references to loading helpers within Controllers via App::import(...); or $helpers = array(...);, I do not seem to have access to the App object and the $helpers member is specific to the AppController class, I assume. I assume I'm going about this incorrectly, so please help me understand the Cake way of accomplishing this.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

半﹌身腐败 2024-12-19 02:01:15

不,这不是此类函数的正确位置(或者更准确地说,它违背了 MVC 范例)。更好的方法是为该函数创建您自己的帮助程序。根据链接的复杂程度,您还可以使用元素

根据经验,只有完全独立于应用程序中其他任何内容的函数才应该位于 bootstrap.php 中,甚至其中大多数函数在其他地方通常会更好。

No, that is not the correct place for such a function (or more accurately, it goes against the MVC paradigm). A better approach would be to create your own helper for the function. Depending on the complexity of the links you could also use elements.

As a rule of thumb only functions that are completely independent of anything else in the app should be in bootstrap.php, and even most of those would often be better somewhere else.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文