Symfony2 Composer(多个域)
我们目前正在将项目迁移到symfony2.该网站使用多个域:
> domain.com – 主要网站 等等 为了使它工作,我的想法是创建目录’sites’,并为每个子域创建自己的目录,其中它具有框架文件供应商目录,符号链接到根供应商/ *中的目录(除了composer和autoload.php文件之外的每个目录). root/ sites/ domain.com/ app/ src/ web/ vendor/ symlinks for each library to root vendor composer.json composer.lock profile.domain.com/ app/ src/ web/ vendor/ symlinks for each library to root vendor composer.json composer.lock vendor/ 我需要这样做,因为每个域的自动加载必须是不同的(我们存储供应商/公司中的域之间共享的代码,并且每个域的唯一代码存储在域目录的/ src文件夹中) . 问题是,现在我必须在每个目录上执行“composer install”并创建自己的composer.lock,如果我稍后在任何目录中更新,则会更新lib,但不会同步composer.lock文件,所以每次都会重新安装它. 有没有更好的方法来解决这个问题? (我想把composer只放在root目录下,但是我没有找到为每个域转储不同autoload.php文件的方法). 解决方法
您要么拥有一个具有一组依赖项的项目,要么拥有两个具有单独deps的项目.介于两者之间的任何事情都没有意义.看起来您想要使用第一个选项,但担心自动加载性能.
问题是默认情况下,自动加载会很慢.因此,即使您有两个单独的自动加载文件,仅包括特定子项目的deps,它可能仍然会非常慢. 你真正应该做的是转储一个类映射,它基本上是一个自动加载文件,它将所有类名映射到它们所在的文件.这样可以保持stat调用,从而非常有效.在两个子项目中加载整个类映射也不应该给你带来太多开销,特别是如果你启用了APC. 您可以使用以下命令转储类映射文件: $composer dump-autoload --optimize 现在您应该获得更高的自动加载性能. TLDR:使用单个composer.json和类映射自动加载,它很快. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |