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