Подтвердить что ты не робот

Самый новый установщик 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

Я полагаю, что буду придерживаться старого способа - композитора, поскольку новый установщик, похоже, прослушивается или, по крайней мере, еще не завершен, однако я хотел бы больше узнать об этой теме, какая разница, безопасно ли использовать новый установщик и т.д.

4b9b3361

Ответ 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.