2015-06-30 18 views
0

我正在開發一個Web應用程序與Symfony 2.我自己的包的代碼,形成我的應用程序的核心和一些配置文件的應用程序範圍內的設置被控制的Git(主要是目錄,src/MyCompany/MyBundleapp/Resources/config等),其餘正在作曲家的控制(框架,第三方束等)作曲家錯過安裝某些文件(應用程序/控制檯,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是我的倉庫的一部分,因此它通常足以爲了安裝的框架和所有所需的包讓我的web應用程序的完全的工作副本EXCUTE作曲。

但今天,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. 應該是什麼在.gitignore
    3. 作曲家管理什麼?
  2. 是否有任何文檔說明如何在Symfony 3的準備過程中從舊的目錄結構轉換爲新的目錄結構?

我以爲我讀了所有的發佈信息和Symfony網站的「生活在邊緣」的所有內容,但不知何故我錯過了這個。

回答

0

的清潔方式從頭與作曲家安裝Symfony2中,是使用following command

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

這將確保創建所有的基本結構。之後,您仍然可以從以前的項目中插入自定義項。以及除了app/config/parameters.ymlvendor/app/cacheapp/logs內容 - -

那麼你可以添加一切到存儲庫。

關於過渡到SF3,我想作爲SF3是足夠穩定,創建這樣一個文件存在會盡快進行一次升級路徑。

0

1.1。這取決於你如何希望人們能夠獲取你的包

1.2。我跟大家分享我自己的.gitignore:當心我使用git我自己用有安全爲我的文件,而不是讓人們把我的包:

# 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