路由主要有两部分组成,一部分是路由的匹配过程,一部分是路由表的生成过程,这里通过跟中代码看下路由表的生成过程。
symfony中的路由是通过 标注(annotation)的形式进行定义的,symfony是通过配置文件进行查找进行路由的解析,最终将路由存储到缓存文件 var/cache/prod/appProdProjectContainerUrlMatcher.php 中。

阅读全文

symfony 的容器是有一个编译过程的,框架初始化的时候会执行 Symfony\Component\HttpKernel\Kernel::initializationContainer,这个方法会对代码进行检查,看是否需要生成新的容器代码。如果需要 Symfony 会将各个类的依赖关系通过编译生成静态的类并存储在缓存文件var/cache/[ENV]/appProjectContainer中。

其中很多是框架自己的依赖关系,这些依赖关系类似java的方式,通过xml文件的形式进行声明,这些xml存在与框架的代码中,Syfmony\Bundle\FrameworkBundle\Resource\config\*.xml

阅读全文

这是基于 symfony3.3.0版本的源代码分析,主要包含以下部分:

  1. 框架主流程
  2. 容器生成及使用
  3. 路由生成
  4. 配置文件加载
  5. 事件委派

在对源代码进行分析的时候,使用phpstrom配合xdebug扩展进行断点调试,对代码分析以及梳理起到了很大的帮助。phpstrom断点的配置可以参考 这里

阅读全文
  • 第 1 页 共 1 页
作者的图片

fantiq

author.bio


author.job


China HangZhou