2014-09-25 97 views

回答

1

,典型的結構是這樣的:

src/ 
vendor/ 
.git 
composer.json 
composer.lock 
  • 出於兼容性的目的,Git和作曲家文件應該位於項目的根。
  • 源目錄應該是以類的頂級命名空間開頭的源文件的根目錄。
  • 供應商目錄應包含通過作曲者導入的所有第三方庫。

這是最低預期標準,特別是對於現場項目環境。如果項目是一個庫,那麼可以忽略源目錄。

這方面最好的例子是Symfony2的標準版:
https://github.com/symfony/symfony-standard

本公約的前端資產和控制器之後通常是:

web/ 
    js/ 
    css/ 
    images/ 
    index.php 

在這種情況下,索引文件是你的前控制器。 這應該在另一個目錄中包含引導程序,或使用該目錄中的配置來初始化環境。

對於Symfony2的,這是app目錄:
https://github.com/symfony/symfony-standard/tree/master/app

希望這有助於記住裸,這是完全基於我的經驗和觀察。

1

最新的答案是「是」,基於掃描的https://packagist.org和計數列出的每個包正在使用的絕大多數的包,即大多數人不自覺地在沒有協調商定目錄:

https://github.com/php-pds/skeleton

用於目錄的簡短摘要:

If a package has a root-level directory for ...  
          ... then it MUST be named: 
command-line executables bin/ 
configuration files   config/ 
documentation files   docs/ 
web server files   public/ 
other resource files  resources/ 
PHP source code    src/ 
test code     tests/ 

,使用此佈局幾乎對齊項目與你可能會因爲依賴使用所有其他項目。請注意,您不必擁有每個目錄,只有那些實際託管文件的目錄。

+0

感謝您的更新,一個好主意。但是,Symfony結構不符合此標準。 – Arthur 2017-02-03 18:34:52

+0

完整的軟件包「symfony/symfony」的確如此,但是由於他們維護他們的子組件,他們不可能在主存儲庫中引入額外的'src'目錄。我可以忍受這一點。 – Sven 2017-02-03 20:28:53