【发布时间】:2014-11-12 20:03:56
【问题描述】:
我已经开始将 Composer 用于一个新的 PHP 应用程序(它使用了一些框架和 API,例如 Laravel、Smarty 等),并且在开发过程中一切都很好。
但是,我不太确定如何在实时生产服务器上部署它。 /vendor 目录下各个模块的子目录似乎包含很多我通常不会包含在应用程序中的东西(例如演示文件、安装自述文件、文档等)。这是正常的,还是这些包的创建者对如何创建 Composer 包有错误的想法?
是否有一种标准方法来创建一个干净的应用程序部署,该部署只包括必要的分发文件,而不包括其他不相关甚至不应该存在的东西(即使出于安全原因)?
我问的是最常用的工作流程,或者可能是 composer.json 中的特定命令或配置,我应该考虑实现这一点。
【问题讨论】:
-
我猜你可能会在部署之前清理每个供应商包中的不必要文件,但我真的不认为这值得麻烦。不确定它如何影响安全性,因为这些文件不应该暴露给除您自己的应用之外的任何人。
-
是的,显然我可以自己清理它们,但 Composer 的全部意义在于自动安装和配置依赖项。每次更新时我都必须这样做。我想知道是否有任何更自动化的标准方法可以做到这一点。我在其他语言中使用过其他依赖管理系统(如 Java 的 Maven),通常它们不包含不应该与应用程序捆绑的实际分发的内容。如果您想访问单独引用它们的演示文件或 API HTML 文档,则将它们包含在应用程序中是没有意义的。
-
您显然会在部署脚本中自动执行清理过程。但是,是的,每次依赖项更新时,您都需要更新它。不,没有其他真正的方法。包作者应注意不要包含不必要的内容。
标签: php deployment composer-php web-deployment software-distribution