我使用Zend Framework 2并开始使用ZendSkeletonApplication。我在本地工作的是作曲家,它使用vendor/autoload.php
进行自动加载。问题是git中不包含vendor/autoload.php
和vendor/composer
。 (gitignore)
所以我的问题是:
顺便说一下,我使用Zend Server预装了ZF2库,我在vendor
文件夹下有一个私有包,不在包装上。
答案 0 :(得分:2)
Composer应该管理vendor/
中的所有应用依赖项。即使你已经在服务器上有ZF2的副本,你应该让作曲家做它并安装特定于应用程序的副本。除了将所有依赖项保存在一个地方之外,这意味着您可以使用不同版本的ZF2轻松地在同一服务器上安装应用程序,并根据需要轻松升级/降级。
Composer可以直接从源代码控制或zip / gzip文件等安装packagist上未列出的软件包。所以,让它也照顾你的私人包裹。
您应该能够完全删除vendor/
文件夹,然后只需运行composer install
即可将其恢复。如果你还没有处于那个位置,那么我建议你试着去那里 - 它会让你的生活更轻松。
回答您的具体问题:
我是否必须编辑ZendSkeletonApplication附带的init_autoloader.php?
没有
在开发和制作中处理作曲家,git和自动加载的最佳做法是什么?
骨架应用程序使用最佳实践:
vendor/
应从源代码管理中排除composer.json
和composer.lock
都应该在源代码管理中我应该在生产中使用大型类图进行自动加载吗?
类映射始终比标准自动加载器提供性能提升。这取决于你的应用程序有多大差异。
Composer永远不会在生产环境中使用?
作曲家自动加载器是,是的。我个人composer install
作为自动部署过程的一部分,在部署新版本时填充vendor/
文件夹。
答案 1 :(得分:0)
他们在gitignore,因为你必须在服务器端下载composer并推送composer.json来安装所需的软件包