【发布时间】:2012-11-04 12:48:45
【问题描述】:
我在服务器中有一个 CakePHP 1.3 多站点安装。每个站点都有自己的文件夹,它们都从同一个地方加载 CakePHP 核心库。看起来是这样的:
- [cake](cake 的核心库)
- [网站]
- [站点 1]
- [应用]
- [插件]
- [供应商]
- .htaccess
- index.php
- [site 2] (也有自己的应用程序、插件和供应商文件夹)
- [site 3] (也有自己的应用程序、插件和供应商文件夹)
- 等
- [站点 1]
我发现自己很多时候都想实现一些我想在所有应用程序中使用的功能,但到目前为止我只是在每个站点中复制代码。我希望能够在一个地方声明这些函数并能够从任何站点调用它们。我相信供应商可能与此有关,但我一直在查看食谱,但不知道如何在我的情况下使用它。
任何帮助将不胜感激!
更新
所以通过查看供应商,在我看来(也许我错了)如果这些供应商文件中的函数不需要直接与其他 CakePHP 类(例如 Session ,身份验证等)。我将举一个我正在尝试做的事情的示例,也许这有助于更好地理解我正在尝试的内容。
每个网站都有自己的登录系统(使用 cake 的 Auth)。我想做的一件事是,当用户登录时(调用 UsersController 中的 login() 函数),有一个函数对用户的用户名进行一些处理,然后调用 Session ->flash() 函数在其中插入一条消息(消息根据函数进行的处理而变化)。所以这个函数需要用到User模型和Session模型。
我可以使用供应商来做到这一点,所以我在供应商中声明了这个函数(即 processLogin()),并且所有站点都可以使用该函数吗?如果是这样,怎么做?如果没有,有没有其他方法可以做到这一点?
【问题讨论】: