Cakephp 2.0 一个用于多个应用程序的CakePHP库

Cakephp 2.0 一个用于多个应用程序的CakePHP库,cakephp-2.0,Cakephp 2.0,我用CakePHP开发了几个小网站和一个媒体新闻网站。然而,我现在所处的情况有所不同,需要在继续之前进行一些艰难的分析,这让我来到了CakePHP社区 我在一家公司工作,该公司目前使用纯PHP代码处理多个网站(5-10),所有网站都使用一个全局包含文件夹,其中包含Db连接等内容。所有这些的问题是,我们希望将所有内容升级到最新版本的PHP(目前使用5.1),并在升级过程中,我正在考虑使用CakePHP升级我们的整个后端 首先,这是个好主意吗?我在CakePHP项目上工作时很兴奋,从来没有遇到过任何

我用CakePHP开发了几个小网站和一个媒体新闻网站。然而,我现在所处的情况有所不同,需要在继续之前进行一些艰难的分析,这让我来到了CakePHP社区

我在一家公司工作,该公司目前使用纯PHP代码处理多个网站(5-10),所有网站都使用一个全局包含文件夹,其中包含Db连接等内容。所有这些的问题是,我们希望将所有内容升级到最新版本的PHP(目前使用5.1),并在升级过程中,我正在考虑使用CakePHP升级我们的整个后端

首先,这是个好主意吗?我在CakePHP项目上工作时很兴奋,从来没有遇到过任何问题

其次,我从蛋糕专家那里了解到,我们不应该在蛋糕的核心部分添加任何东西。但是,如果我要创建所有站点都需要访问的文件,这些文件可以放在哪里

目前,所有的网站都是面向对象的,但Cake是MVC。全局OOP类(由所有站点使用)是否应转换为控制器/模型或供应商类并放置在核心中

一般来说,什么是最好的方法

你可以这样做 最重要的是:

应用程序目录中的所有内容都特定于一个应用程序。根
插件
供应商
控制器适用于安装中的所有应用程序。也就是说,在不修改任何内容的情况下,您可以执行以下操作:

$ cd root
$ cp -r app newapp
导致:

root
    /app
        ..
        /Plugin
        /Vendor
        /webroot
    /newapp
        ..
        /Plugin
        /Vendor
        /webroot
    /lib
        /Cake
    /plugins
    /vendors
插件
供应商
中的任何插件或供应商都可以在这两种应用程序中加载,而无需执行任何异常操作,例如,使用以下程序:

root
    /app
        ..
        /Plugin
        /Vendor
        /webroot
    /newapp
        ..
        /Plugin
        /Vendor
        /webroot
    /lib
        /Cake
    /plugins
        /DebugKit
    /vendors
两个应用程序都可以选择加载和使用调试工具包

您还可以简单地选择一种方法,它做同样的事情,但将公共代码的位置与应用程序本身分离

请注意共享依赖项的限制 这样管理多个应用程序的问题是,所有应用程序都绑定到同一版本的cake,以及所有共享插件/供应商的同一版本。CakePHP不是一个闲置的项目,它处于不断的开发中——就像您选择使用的大多数插件/供应商一样。对于易于解决的插件和供应商,在安装范围文件夹之前会检查应用程序插件/供应商文件夹

但是,与其只有一个核心和n个应用程序,不如为n个应用程序安装n个完整的应用程序:

/root
    /myapp
        /app
            /Plugin
            /Vendor
            /webroot
        /lib
            /Cake
        /plugins
        /vendors
    /app2
        /app
            /Plugin
            /Vendor
            /webroot
        /lib
            /Cake
        /plugins
        /vendors
    etc.

这样一来,一个新的应用程序就可以使用当前版本的Cake,而不会影响任何现有的应用程序。

如此规模的
如此之大的
都是在这个问题上没有任何意义的术语。你可以制作一个全局插件文件夹,把它们都放在那里,但这可能是个坏主意。从经验来看,这只会导致瘫痪,更新任何常见的东西都会成为一个问题(更新插件x至少会破坏一个站点,或者至少会破坏一个站点,所以你不会升级)。最好将所有插件视为独立的依赖项,即每个应用程序都有自己的每个插件副本-可能在不同的提交上。谢谢AD7six。也许,我把问题详细到了让人困惑的地步。基本上,我只是想知道CakePHP是否适合这种系统。(一个支持多个站点的CakePHP库)。最有可能的是,我会在Cake的library/lib中创建一个名为/includes的文件夹,然后找到导入它的方法……哇!非常感谢你的解释。我知道第一个例子的局限性,但我真的很喜欢这个想法。我想,一旦我把所有的网站都转换成了Cake,并且拥有了一个强大的Cake核心,当Cake有任何重大升级时,就很容易改变它们。这样,我可以从当前设置中使用的所有全局PHP类,或者我将创建的所有站点中使用的新类,都可以放在供应商文件夹中。令人惊叹的!!!事实上,我甚至迫不及待地开始测试这个设置,我将把我在家庭服务器上的所有开发项目都改成这个设置。酷@AD7six我想有两个蛋糕项目,目前共享的库,而我也想分享会议,我也张贴了问题,但到目前为止没有答案,如果你可以帮助@alamnaryab“具有相同的蛋糕库”与您的问题无关。@AD7six我将有单独的库,但在该场景中如何共享会话,我们可以对我的问题进行更多讨论吗?
/root
    /myapp
        /app
            /Plugin
            /Vendor
            /webroot
        /lib
            /Cake
        /plugins
        /vendors
    /app2
        /app
            /Plugin
            /Vendor
            /webroot
        /lib
            /Cake
        /plugins
        /vendors
    etc.