今天来简单分析一下博客系统的启动过程·先打开跟路径下的index文件,从这个文件开始一步步分析,顺便画个简单的执行流程图·可以看到第一段代码是一个if语句,用来判断首次执行程序的安装流程的第一次用这个流程图还不太顺手。
·if语句里主要是判断常量和配置文件是否存在,第一次执行的时候都是不存在的,所以会执行跟路径下的安装文件进行安装流程这里用了两个判断条件,不知道是何原油,因为第一个常量是在配置文件中设置的,但这里却第一个进行判断。
这个博客系统使用了很多PHP7.2的语法,之前没怎么接触过不太熟悉,只能边看代码边学习了解
install文件是这个程序的安装文件,大概看一下里面的内容配置文件里面的内容就是先设置两个系统常亮,然后加康曼载基础类库进行系统初始化,实例化一个数据库类,连接还要和你成个家这个一笔句中判断的同时也会在第一时间加载配置文件进来。
复习一下语法内容,一定还要喝一场其实我早就知道这个系统在文件中大量的使用了命名空间,是我放不下还在逞强
虽然博客很小巧,但系统文件夹vr数量却有一百四十三个之多,算是比较大型的博客程序了配置文件中的程序加载完成基础类库之后就开始执行类中的i need程序初始化方法进行初始化然后实例化一个数据库类,找了很久都没有找到这个类的文件在哪里,这里代码中自己实现了autoload自动加载指定类的功能。
·最后在taptro文件夹下找到了。实现多数据库支持,意思应该是程序支持连接多个数据库。
·继续复习php的抽象类和接口类的相关内容抽象类的意思是子类如果需要继承,这个抽象类就需要实现这个类中的定义的抽象方法抽象类中有些方法是指定义了没有实现,则子类必须实现,否则子类也是抽象类抽象类和接口类都不能直接实例化,而接口类就真的只是一个功能模板,不实现功能有此类实现对应的功能。
·接下来就是初始化操作,由 i need类中的 o o c方法实现。在这个文件中并没有找到 o c 方法。学习一下render的用法。
·胡乱的寻找中,然后在i need继承的复类中找到了实现的方法·发现好多看不懂的语法,最后发现其实就是先获得完全限定的命名空间名称后执行对应的类这里是在找class的意思,意思就是前面说的获得类的完全限定名称用于确定唯一类。
大概意思就是先获得完全限定的类再进行对应类的实例化,从而实现对应组建的实例化
·这里就是指的i need初始化组建,具体初始化做了什么操作后续再分析完成初始化操作之后就注册一个初始化插件文件,最后还注册了一个结束插件,应该是和其他程序一样属于插件接口或者是挂在点,但是没有找到begin。
这个是什么意思只找到and方法的实现·插件类的factory方法还是比较简单的,就是获取指定接口的实例化对象。这里是index接口,学习一下双问号的用法,其实就是三元运算符的替代。
·然后就是执行路由分发操作了,路由分发比较简单,一般都是先获取路径,然后根据路由表执行加载对应的组件来执行对应的方法这里是执行了路由分发了中的分发函数,先获取路径信息和类型,然后查找对应类型的路由表信息匹配需要执行的组件和操作。
·一开始没看懂,不过可以直接调试,直接看输出内容来猜是怎么实现和执行的可以看到第一行代码就是获取路径信息,然后就是看单词猜应该是获取路由表信息来进行匹配看一下指定分类输出的路由表信息,直接猜用法配合搜索比较容易就猜出来了。
·然后就可以看到执行的是内容的文章基类组件中的render方法调用模板文件中的index文件显示首页了从代码中也可以看到为啥index文件可以在其他模板文件不存在的时候代替其实现了代码中还有许多有趣的内容,了解之后在制作模板的时候是有许多帮助的,可以解答在制作模板时的很多疑问。
有助于自己代码水平的提升