根目錄下有:php
app是存放應用的一些配置文件,若是有一些配置文件或者文檔,應當存放在這裏面。css
src是存放你的項目的php代碼,這裏的php至少必須是5.3,由於symfony中使用了命名空間的概念。html
vendor是存放第三方代碼的目錄,這個目錄可能很是龐大,由於symfony大量使用了第三方bundle的概念,連自身都是做爲一個第三方bundle插件的形式存在。nginx
web是存放web頁面所須要的信息,其中能夠包含js,css,html等信息。web
symfony的概念就是至關於SOA的概念,每一個模塊負責提供一種服務,你的業務須要提供什麼服務,就將對應的bundle加載到業務中。bootstrap
symfony很好的作到了模塊的獨立化,每一個模塊就是一個bundle緩存
具體的加載方法就在app/AppKernel.php裏面,這個類之後用專門一個文章學習吧app
從目錄中能夠知道,將nginx所對應的server的根目錄放在web下框架
而後將location默認的index指定到web/app.php或者web/app_dev.php下就好了post
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<?php
use
Symfony\Component\HttpFoundation\Request;
// 使用Request命名空間
$loader
=
require_once
__DIR__.
'/../app/bootstrap.php.cache'
;
// bootstrap的自加載文件,包括autoload等
require_once
__DIR__.
'/../app/AppKernel.php'
;
//bundle的加載
$kernel
=
new
AppKernel(
'yjf'
, true);
// 核心類AppKernel
$kernel
->loadClassCache();
// 加載classCache
$request
= Request::createFromGlobals();
// 獲取$_REQUEST
$response
=
$kernel
->handle(
$request
);
// 處理請求,將request轉化爲response
$response
->send();
// 發送response
$kernel
->terminate(
$request
,
$response
);
// response的後續操做
|
這個文件首先的一個功能是實現autoload機制,其次還有個cache機制。
symfony使用了多個第三方類和bundle,而後各個類都分散在各個文件中。若是對每一個請求來講,在使用的時候將各個文件加載到內存中,那麼無疑IO操做很是多。
緩存的機制就是將使用到的類集中在一個文件中,每一個請求只須要加載這個文件,就能夠使用所須要的類了。
固然這個文件會是很是大的,你能夠在運行以後的app/cache/XXX中看到classes.php文件就是這樣。
app.php後面的$kernel->loadClassCache(); 語句就是加載這個緩存類文件使用的。
因此說,若是你不想使用symfony的類緩存機制,你就須要將這兩個語句註釋掉就能夠了。