根目录下有: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的类缓存机制,你就须要将这两个语句注释掉就能够了。