我希望减少跨整个网站共享的代码冗余。我已经修改了几个框架,但想不出任何可以让您轻松地将框架代码与站点代码分开,同时将其共享到多个站点的框架。
哪些 PHP 框架可以轻松做到这一点?
编辑-我正在尝试确定哪些框架最容易共享。我已经猜测几乎所有框架都可以共享,但是哪些框架适合共享?听起来 Yii 建议将框架代码放在站点代码之外,这是一个好的开始。
如果有人已经跨站点共享相同的框架代码,我很想知道这一点。
我希望减少跨整个网站共享的代码冗余。我已经修改了几个框架,但想不出任何可以让您轻松地将框架代码与站点代码分开,同时将其共享到多个站点的框架。
哪些 PHP 框架可以轻松做到这一点?
编辑-我正在尝试确定哪些框架最容易共享。我已经猜测几乎所有框架都可以共享,但是哪些框架适合共享?听起来 Yii 建议将框架代码放在站点代码之外,这是一个好的开始。
如果有人已经跨站点共享相同的框架代码,我很想知道这一点。
使用 Fuel (http://fuelphp.com) 很容易做到这一点。
每个网站都有一个 index.php,其中定义了一些路径:
/**
* Set all the paths here
*/
$app_path = '../fuel/app/';
$package_path = '../fuel/packages/';
$core_path = '../fuel/core/';
如您所见,您可以在中央存储库中共享核心和包,并为每个网站创建单个应用程序和公共文件夹。
您甚至可以通过在 .htaccess 中设置不同的环境来与不同的网站共享应用程序来自定义内容(例如,网站标题或使用的数据库)。例如,这适用于开发/阶段/生产站点开箱即用,但可以扩展到任何东西。您还可以设置中央包以在多个应用程序中使用。功能强大,简单易用。
我相信 Zend 可以满足您的要求,甚至可能是 Symfony 和 Fuel,而且我相信许多其他允许您选择使用它的哪些部分的框架会让您做到这一点。
但是,这样做将需要您进行更多配置以使其全部运行。这就是我最终创建自己的框架的原因。
许多人可以做到这一点。例如YII
应该安装在您的 www-root 目录(httpdocs
或/var/www/
类似的东西)之外。您可以使用多个站点指向该基本目录。
我猜任何不需要为您的站点进行特定设置的框架(或部分)都可以在多个站点之间共享。
Symfony 可以。我喜欢 Symfony 框架,它带有一些很棒的框架。你可能喜欢路由和 YAML 的。我认识的一个人称 Symfony 是最好的 php 框架。
Symfony2 适合您的需求。它是一个包含许多独立组件的全栈框架。它与“捆绑包”一起使用,捆绑包是一种具有完整逻辑(控制器、模型对象、视图、资产、配置……)的容器。这意味着您编写一个捆绑包,您可以毫无问题地重复使用它。
但是你也可以考虑 symfony 1.4。一个项目可以处理许多应用程序,因此您的模型可以在这些应用程序之间共享,并且可以在所有应用程序中重用相同的代码。请注意,应用程序可以是一个完整的网站。
我想不出有什么框架可以原生地做到这一点,但你可以使用几个 SVN(或 hg 等)存储库来完成这个。使用 CakePHP 的示例:
它不是内置功能,但设置起来也不是很困难。