[TOC]
# 0 簡介
>Twig php編寫的模板引擎。
>Twig的分析主要學習其中編譯原理的使用
## 0-0 項目地址
https://github.com/twigphp/Twig
## 0-1 官方文檔
https://twig.symfony.com/doc/2.x/
# 1 目錄結構
~~~
Twig\
lib\ 實現目錄psr-0
src\ 封裝目錄psr-4
~~~
>Twig2.0目錄的結構是過渡階段,從psr-0加載規范到psr-4
>主要分析lib目錄下的實現
~~~
Twig\lib\Twig
Cache\ ;編譯后緩存處理
Error\
Extension\ ;核心擴展
Loader\ ;模板文件加載
Node\ ;語法樹節點
NodeVisitor\ ;語法樹節點遍歷器
Profiler\
Sandbox\
Test\
TokenParser\ ;Token類
Util\
~~~
# 2 重要文件
>在Twig根目錄下包含一些重要文件
>根據功能不同分為以下幾部分
>
~~~
接口類
CacheInterface.php
ExistsLoaderInterface.php
ExtensionInterface.php
LoaderInterface.php
NodeCaptureInterface.php
NodeOutputInterface.php
NodeVisitorInterface.php
RuntimeLoaderInterface.php
SoureceContentLoaderInterface.php
TokenParserInterface.php
加載類
ContainerRuntimeLoader.php
FactoryRuntimeLoader.php
FileExtensionEscapingStrategy.php
運行環境類
Environment.php
Extension.php
ExtensionSet.php
Filter.php
Function.php
Error.php
Markup.php
Node.php
SimpleFilter.php
SimpleFunction.php
SimpleTest.php
Source.php
Template.php
TemplateWrapper.php
Test.php
編譯類
BaseNodeVisitor.php
Compiler.php
ExpressionParser.php
Lexer.php
NodeTraverser.php
Parser.php
Token.php
TokenParser.php
TokenStream.php
~~~