Самый новый установщик symfony против композитора
Я хотел бы знать, в чем разница при создании нового проекта symfony с новым установщиком Symfony, который появился в прошлый раз и старомодным композитором.
Я установил последнюю версию Symfony (2.6.1) с обоими, и результат был другим, например, когда я устанавливаю symfony с композитором, я получаю файл .gitignore.
Когда я устанавливаю с помощью нового установщика Symfony script, отсутствует gitignore.
Вот количество каталогов и файлов в новом проекте:
symfony installer: 1498 directories, 7136 files
symfony installer + composer update: 1571 directories, 7749 files
composer create-project: 1615 directories, 7905 files
Я полагаю, что буду придерживаться старого способа - композитора, поскольку новый установщик, похоже, прослушивается или, по крайней мере, еще не завершен, однако я хотел бы больше узнать об этой теме, какая разница, безопасно ли использовать новый установщик и т.д.
Ответы
Ответ 1
Как уже объяснил Leggendario, программа установки загружает файлы dist с веб-сайта (файл .tar.gz
или .zip
). Это значительно ускоряет процесс установки.
Однако при создании файлов dist symfony.com использует пользовательскую сборку script, которая удаляет некоторые файлы и изменяет некоторые вещи. С другой стороны, композитор просто загружает репозиторий для вас.
Основные отличия:
- Композитор загружает последние зависимости (как указывал Leggendario), а сборка script содержит последние файлы на момент сборки.
- Composer использует версии dev и, таким образом, использует
git clone
для загрузки пакетов. В сборке script используются только стабильные пакеты, которые заставят Composer использовать версию dist. Некоторые пакеты удаляют файлы test и doc из своих файлов dist.
- Композитор содержит всю связанную с проектом информацию, такую как
.gitignore
. Строка script ранее предполагала, что у человека, у которого она установлена, не было git, поэтому удалил этот файл и другие связанные файлы git, такие как файлы .gitkeep
в app/cache
и app/logs
.
В любом случае, как установщик, так и композитор всегда дают вам рабочую версию Symfony Standard Edition.
Наконец, сборка script была изменена, теперь установщик стал официальным способом установки. Теперь он будет содержать связанные файлы git. С другой стороны, он не будет содержать файлы LICENSE
, UPGRADE-*.md
и README.md
. Поэтому, в конце концов, мы можем сказать, что тот, который установлен установщиком, более полезен, поскольку он удаляет ненужные файлы.
Ответ 2
Программа установки 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.lock
, сгенерированный после composer create-project
, справа symfony installer
. Для всех было очевидно, что Symfony2, загруженный из архива, не может иметь самые последние пакеты. Итак, сделайте обновление с помощью composer update
.
Снова, слева composer.lock
of composer create-project
, справа новый composer.lock
после обновления: https://www.diffchecker.com/lj5j2eap
Как и ожидалось. Но в каталоге поставщика нет одинакового количества файлов. В некоторых папках нет. Некоторые папки с функциональными тестами не загружаются с помощью symfony installer
. Вам нужно заставить композитора обновить все пакеты или переустановить их.
Ответ 3
Вы также обновили программу установки:
symfony self-update
или в окнах:
php symfony.phar self-update
Как указано здесь?
Это, возможно, одна часть ответа.
Среди отличий, установщик, похоже, справляется лучше с разными версиями symfony.