https://github.com/apache/kylin/tree/kylin-on-parquet-v2 https://cwiki.apache.org/confluence/display/KYLIN/Design+Architecture
$gdb php (gdb) run index.php Starting program: /usr/local/bin/php index.php Unable to find Mach task port for process-id 96064: (os/kern) failure (0x5). (please check gdb is codesigned - see taskgated(8))
$sudo gdb php Password: GNU gdb (GDB) 8.0 (gdb) run index.php Starting program: /usr/local/bin/php index.php
$./ext_skel –extname=myClass Creating directory myClass Creating basic files: config.m4 config.w32 .gitignore myClass.c php_myClass.h CREDITS EXPERIMENTAL tests/001.phpt myClass.php [done].
在application目录下有个Bootstrap.php文件,这个就是图中的第一个环节,如果存在Bootstrap()就会先执行该文件,该文件包含了一系列的初始化环节,并返回一个Yaf_Application对象,紧接着调用了它的run方法,run里面包含了图中所有环节,run首先是调用路由,路由的主要目的其实就是找到controllers文件,然后执行里面的init和action方法,或者找到所有actions的地址然后加载,在去执行对应的execute方法,如果设置了autoRender在返回的时候会执行render方法,就是view自动渲染,图中有六个双横线标出的环节,就是六个插件方法,用户可以自定义实现这几个方法,然后Yaf框架会在图中相应的步骤处调用对应的HOOK方法。 https://www.jianshu.com/p/130389235abc