最新的 symfony 安装程序与作曲家

Newest symfony installer vs composer

我想知道使用上次出现的新 symfony 安装程序和老式作曲家创建新 symfony 项目时有什么区别。

我已经安装了最新版本的 symfony (2.6.1),但结果不同,例如,当我使用 composer 安装 symfony 时,我得到 .gitignore 文件。 当我使用新的 symfony 安装程序脚本安装时,缺少 gitignore。

新建项目目录和文件数量:

symfony installer:                      1498 directories, 7136 files
symfony installer + composer update:    1571 directories, 7749 files
composer create-project:                1615 directories, 7905 files

我想我会坚持使用旧方法 - 作曲家,因为新安装程序似乎有问题或者至少还没有完成,但是我想了解更多关于这个主题的信息,有什么区别,它安全吗使用新的安装程序等?

您是否也更新了安装程序:

symfony self-update

或在windows中:

php symfony.phar self-update

如上所述 here ?

这可能是答案的一部分。 在差异中,安装程序似乎可以更好地处理不同的 symfony 版本。

Symfony2 Installer will downloaded it from the web site ( in this case: http://symfony.com/download?v=Symfony_Standard_Vendors_2.6.1.zip).

要了解 symfony installer 与经典 composer create-project 之间的差异,只需了解一下 composer.lockhttps://www.diffchecker.com/oig86oki

左边是composer create-project之后生成的composer.lock,右边是symfony installer。很明显,从存档下载的 Symfony2 不可能有最新的软件包。因此,使用 composer update.

进行更新

同样,左边是composer create-projectcomposer.lock,右边是更新后的新composer.lockhttps://www.diffchecker.com/lj5j2eap

如我们所料。但是在供应商目录中没有相同数量的文件。有些文件夹不存在。 有些 带有功能测试的文件夹没有用symfony installer 下载。您需要强制作曲家更新所有软件包,或重新安装它们。

正如 Leggendario 已经解释的那样,安装程序从网站下载 dist 文件(.tar.gz.zip 文件)。这大大加快了安装过程。

但是,在构建 dist 文件时,symfony.com 使用自定义构建脚本删除了一些文件并更改了一些内容。另一方面,composer 只是为您下载存储库。

主要区别:

  • Composer 下载最新的依赖项(正如 Leggendario 指出的那样),而构建脚本包含构建时的最新文件。
  • Composer 使用开发版本,因此使用 git clone 下载软件包。构建脚本只使用稳定的包,这将使 Composer 使用 dist 版本。一些软件包从它们的 dist 文件中删除了测试和文档文件。
  • Composer 包含所有项目相关信息,如 .gitignore。构建脚本之前假设安装它的人没有 git,因此删除了这个文件和其他 git 相关文件,例如 app/cache 和 [=16] 中的 .gitkeep 文件=].

无论如何,安装程序和作曲家都会为您提供 Symfony 标准版的工作版本。

最后,构建脚本 changed 现在安装程序成为正式的安装方式。它现在将包含 git 相关文件。另一方面,它不会包含 LICENSE 文件、UPGRADE-*.md 文件和 README.md 文件。所以最后,我们可以说安装程序安装的那个更好用,因为它删除了无用的文件。