2015-06-30 4 views
0

Я разрабатываю веб-приложение с Symfony 2. Код моего собственного пакета, который составляет сердцевину моего приложения, и некоторые конфигурации файлы для приложений в масштабах настройки управляются Git (в основном каталоги, src/MyCompany/MyBundle, app/Resources/config и т.д.) остальное под управлением композитора (в рамках, 3-й партии жгутов и т.д.)Composer пропускает установку определенных файлов (app/console, AutoLoader.php, app_dev.php и т. Д.)

до сих пор, я время от времени запускал ./composer self-update && ./composer.phar update, выталкивал или извлекал исходный код из источника моего репозитория, и все работало хорошо.

Сегодня я начал новый рабочий каталог и испытал некоторые странные проблемы.

Я выполнил

git clone <my git repo url> www 
cd www 
composer.phar install 

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

Но сегодня composer.phar install остановлен преждевременно жаловаться на недостающие файлы. К счастью, у меня все еще был старый рабочий каталог, поэтому я мог вручную копировать недостающие файлы и перезагружать composer.phar. Я должен был повторить эти шаги несколько раз, пока не закончил полностью работающее приложение.

Файлы, которые пропали без вести в

  • app/console
  • AutoLoader.php
  • app_dev.php
  • AppCache.php

Я думал, что эти файлы являются частью структуры Symfony и ожидал от них должен быть установлен Composer. По этой причине они не контролируют мою систему контроля версий.

Я нашел это related question. Ответ очень общий и не особенно полезен. Все, что он говорит, это то, что, например, app/console должен быть включен в элемент управления версиями, поскольку он не установлен Composer (более длинным) и что в структуре каталогов происходит изменение структуры из-за перехода с Symfony 2 на 3. Но я знаю, что что app/console был установлен Composer в прошлом. Следовательно, что-то изменилось.

Это подводит меня к следующим вопросам

  1. Есть ли полной, актуальной и официальный документации
    1. что должно быть включено в хранилище
    2. , что должно быть in .gitignore
    3. Что управляет Композитор?
  2. Есть ли какая-либо документация, как сделать переход из старой структуры каталогов в новую, в дополнение к Symfony 3?

Я думал, что я прочитал все README.md, всю информацию выпуска и все в «Жизнь на грани» сайта Symfony, но как-то я пропустил это.

ответ

0

Чистый способ установить Symfony2 с нуля композитором, является использование following command:

composer create-project symfony/framework-standard-edition my_project_name 

Это гарантирует, что все основные структуры созданы. После этого вы можете поместить свои настройки из предыдущего проекта.

Затем вы можете добавить все - кроме app/config/parameters.yml, а также содержание vendor/, app/cache и app/logs - в репозиторий.

О переходе на SF3, я думаю, что будет путь обновления, как только SF3 будет достаточно стабильным, чтобы создать такой документ.

0

1.1. это зависит от того, как вы хотите, чтобы люди могли получить ваш комплект.

1.2. Я поделюсь с вами моей собственной .gitignore: остерегайтесь я использую мерзавец для собственного использования, чтобы иметь безопасность для своих файлов, чтобы не позволить людям, чтобы получить мой сверток:

# Cache and logs (Symfony2) 
/app/cache/* 
/app/logs/* 
!app/cache/.gitkeep 
!app/logs/.gitkeep 
# Cache and logs (Symfony3) 
/var/cache/* 
/var/logs/* 
!var/cache/.gitkeep 
!var/logs/.gitkeep 
# Parameters 
/app/config/parameters.yml 
/app/config/parameters.ini 
# Managed by Composer 
/app/bootstrap.php.cache 
/var/bootstrap.php.cache 
/bin/* 
!bin/console 
!bin/symfony_requirements 
/vendor/ 
# Assets and user uploads 
/web/bundles/ 
/web/uploads/ 
# PHPUnit 
/app/phpunit.xml 
/phpunit.xml 
# Build data 
/build/ 
# Composer PHAR 

1.3. все, что находится в composer.json