[Symfony2.8] Symfony 結構介紹

[Symfony2.8] Symfony 結構介紹

[Symfony2.8] Symfony 結構介紹

  • app/ 存放的東西有設定檔、樣板,基本上所有非PHP的程式碼都放在這裡。 *
  • src/ 你的PHP程式碼生活在這裡,99%的時間你會在src/ (PHP files)或是 app/ (除了PHP files之外的所有東西)
  • vendor/ 第三方套件生活在這裡,這些是利用 Composer 下載管理的
  • web/ 這個是你專案的root資料夾,存放任何可以公開存取的檔案,像是CSS、JS、圖片檔
  • AppKernel.php 
    • 入口檔案裡面會初始化一個AppKernel類,AppKernel類就是在這個檔案裡面,Appkernel類的主要功能是初始化整個web應用的Bundle。
    • 包括Symfony2框架的核心Bundle、第三方外掛的Bundle、我們自己編寫的應用的Bundle,Bundle在Symfony2裡面就相當於一個具有完成。
    • 某一功能的完整的包,而且我們要用的Bundle都必須在AppKernel類裡面註冊。
  • ​autoload.php 該檔案負責自動載入註冊在裡面的類,通常我們不需要手動修改它
  • bootstrap.php.cache
    • ​Symfony2核心的類的快取檔案,Symfony2框架必須用到的核心的類都會被編寫整理到這個檔案裡面
    • 這樣做的目的是減少執行的時候開啟檔案的個數,提高執行的速度。
    • 因為不同的類都被存放在不同的檔案裡面,如果沒有把這些必要的類快取在一個檔案裡面,那麼我們每次執行都要開啟多個檔案。
    • 如果把這些必要的類整理到一個檔案裡面,那麼我們每次執行這些類就在同一個檔案裡面了。
    • 例如:Request類、Response類、Container類、Kernel類等都會被快取到這個檔案裡面。
    • 所以,如果我們想在 Request類 裡面 echo '在Request裡面除錯'; 這樣的語句,我們就把這語句編寫在bootstrap.php.cache檔案下的Request類而不是symfony/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/Request.php 裡面的Request類。
    • 其實symfony/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/Request.php裡面的Request類就被快取到bootstrap.php.cache 裡了