我在服务器中安装了CakePHP 1.3 mutli-site。每个站点都有自己的文件夹,它们都从同一个地方加载CakePHP核心库。这就是它的样子:
在我想要实现一些我希望在所有应用程序中使用的函数的情况下,我发现自己很多次,但到目前为止,我只是在每个站点内复制代码。我希望能够在一个地方声明这些功能,并能够从任何站点调用它们。我相信供应商可能与此有关,但我一直在查看食谱,我无法弄清楚如何在我的情况下使用它。
任何帮助将不胜感激!
UPATE
因此,通过查看供应商,在我看来(也许我错了)如果这些供应商文件中的函数不需要直接与其他CakePHP类交互(例如Session),它就适用于我的情况,Auth等)。我将举例说明我正在尝试做的事情之一,也许这有助于更好地理解我正在尝试的事情。
每个网站都有自己的登录系统(使用cake的 Auth )。我想要做的一件事是,当用户登录时(调用UsersController中的login()函数),有一个函数用用户的用户名进行一些处理,然后调用会话 - > flash()函数插入一条消息(消息根据函数的处理而改变)。因此,此功能需要使用用户模型和会话模型。
我可以使用供应商这样做,所以我在供应商中声明了这个功能(即 processLogin()),所有网站都可以使用该功能吗?如果是这样,怎么样?如果没有,还有其他办法吗?
答案 0 :(得分:0)
将它们粘贴在与蛋糕和网站相同级别的供应商文件夹中,以您选择的名称命名(通常代理商名称或其他唯一标识符。)
在CakePHP 1.3中加载供应商文件的示例在Cookbook中解释:http://book.cakephp.org/1.3/en/view/943/Loading-Vendor-Files
但是,我建议升级到CakePHP 2,并将代码放在 lib 下的子文件夹中。