使用git / composer进行开发和生产的ZF2自动加载策略

时间:2014-04-01 13:37:42

标签: git zend-framework2 composer-php autoload

我使用Zend Framework 2并开始使用ZendSkeletonApplication。我在本地工作的是作曲家,它使用vendor/autoload.php进行自动加载。问题是git中不包含vendor/autoload.phpvendor/composer。 (gitignore)

所以我的问题是:

  • 我是否必须编辑ZendSkeletonApplication附带的init_autoloader.php
  • 在开发和制作中处理作曲家,git和自动加载的最佳做法是什么?
  • 我应该在生产中使用大型类图进行自动加载吗?
  • Composer永远不会在生产环境中使用?

顺便说一下,我使用Zend Server预装了ZF2库,我在vendor文件夹下有一个私有包,不在包装上。

2 个答案:

答案 0 :(得分:2)

Composer应该管理vendor/中的所有应用依赖项。即使你已经在服务器上有ZF2的副本,你应该让作曲家做它并安装特定于应用程序的副本。除了将所有依赖项保存在一个地方之外,这意味着您可以使用不同版本的ZF2轻松地在同一服务器上安装应用程序,并根据需要轻松升级/降级。

Composer可以直接从源代码控制或zip / gzip文件等安装packagist上未列出的软件包。所以,让它也照顾你的私人包裹。

您应该能够完全删除vendor/文件夹,然后只需运行composer install即可将其恢复。如果你还没有处于那个位置,那么我建议你试着去那里 - 它会让你的生活更轻松。

回答您的具体问题:

  

我是否必须编辑ZendSkeletonApplication附带的init_autoloader.php?

没有

  

在开发和制作中处理作曲家,git和自动加载的最佳做法是什么?

骨架应用程序使用最佳实践:

  • vendor/应从源代码管理中排除
  • composer.jsoncomposer.lock都应该在源代码管理中
  

我应该在生产中使用大型类图进行自动加载吗?

类映射始终比标准自动加载器提供性能提升。这取决于你的应用程序有多大差异。

  

Composer永远不会在生产环境中使用?

作曲家自动加载器是,是的。我个人composer install作为自动部署过程的一部分,在部署新版本时填充vendor/文件夹。

答案 1 :(得分:0)

他们在gitignore,因为你必须在服务器端下载composer并推送composer.json来安装所需的软件包