我想知道使用上次出现的新symfony安装程序和旧方式作曲家创建新的symfony项目时有什么区别。
我已经安装了最新版本的symfony(2.6.1),结果是不同的,例如,当我用作曲家安装symfony时,我得到.gitignore file。当我使用新的symfony安装程序脚本安装时,gitignore 丢失了。
以下是新项目中的目录和文件数量:
symfony installer: 1498 directories, 7136 files
symfony installer + composer update: 1571 directories, 7749 files
composer create-project: 1615 directories, 7905 files
我想我会坚持旧的方式 - 作曲家,因为新安装程序似乎有错误或至少尚未完成,但是我想了解有关此主题的更多信息,有什么区别,使用新安装程序等是否安全?
正如Leggendario已经解释的那样,安装程序从网站下载dist文件(.tar.gz
或.zip
文件)。这大大加快了安装过程。
但是,在构建 dist 文件时,symfony.com 使用自定义构建脚本来删除一些文件并更改一些内容。另一方面,作曲家只需为您下载存储库。
主要区别:
- Composer 下载最新的依赖项(正如 Leggendario 指出的那样),而构建脚本包含构建时的最新文件。
- Composer 使用开发版本,因此使用
git clone
下载包。构建脚本仅使用稳定包,这将使 Composer 使用 dist 版本。某些软件包会从其 dist 文件中删除测试和文档文件。 - 作曲家包含所有与项目相关的信息,如
.gitignore
。构建脚本以前假设安装它的人没有 git,因此删除了此文件和其他与 git 相关的文件,例如app/cache
和app/logs
中的.gitkeep
文件。
无论如何,安装程序和作曲家总是给你一个Symfony标准版的工作版本。
最后,构建脚本被更改,现在安装程序成为官方的安装方式。它现在将包含与 git 相关的文件。另一方面,它不包含LICENSE
文件、UPGRADE-*.md
文件和README.md
文件。所以最后,我们可以说安装程序安装的那个更有用,因为它删除了无用的文件。
>Symfony2安装程序将从网站下载它(在这种情况下:http://symfony.com/download?v=Symfony_Standard_Vendors_2.6.1.zip)。
要看到symfony installer
和经典composer create-project
之间的差异就足以看一下这两个composer.lock
: https://www.diffchecker.com/oig86oki
左边是composer create-project
后生成的composer.lock
,右边是symfony installer
。很明显,从存档中下载的Symfony2不可能有最新的软件包。因此,请使用 composer update
进行更新。
同样,左侧是composer create-project
composer.lock
,右侧是更新后的新composer.lock
:https://www.diffchecker.com/lj5j2eap
正如我们所料。但是在供应商目录中,文件数量不同。某些文件夹不存在。某些包含功能测试的文件夹不会使用 symfony installer
下载。您需要强制作曲家更新所有软件包,或重新安装它们。
您是否也使用 :
symfony self-update
或在窗口中:
php symfony.phar self-update
如这里所述?
这也许是答案的一部分。在差异中,安装程序似乎可以更好地处理不同的symfony版本。