Yaf零基础学习总结5-Yaf类的自动加载
框架的一个重要功能就是类的自动加载了,在第一个demo的时候我们就约定自己的项目的目录结构,框架就基于这个目录结构来自动加载需要的类文件。
Yaf在自启动的时候, 会通过SPL注册一个自己的Autoloader, 出于性能的考虑, 对于框架相关的MVC类, Yaf Autoloader只以目录映射的方式尝试一次.
具体的目录映射规则如下:
对于控制器 Controller 默认模块下为{项目路径}/controllers/, 否则为{项目路径}/modules/{模块名}/controllers 比如IndexController,这自动加载文件 {项目目录}/Controllers/Index.php
对于Model 加载路径为{项目目录}/models/ 类似比如UserModel则自动加载{项目目录}/models/User.php
其它规则比如actions,plugin也都类似
而对于非框架MVC相关的类, Yaf支持全局类和自身类的两种加载方式, 并且Yaf支持大小写敏感和不敏感两种方式来处理文件路径.
全局类和自身类(本地类)
Yaf为了方便在一台服务器上部署的不同产品之间共享公司级别的共享库, 支持全局类和本地类两种加载方式.
全局类是指, 所有产品之间共享的类, 这些类库的路径是通过ap.library在php.ini(当然,如果PHP在编译的时候, 支持了with-config-file-sc
Yaf在自启动的时候, 会通过SPL注册一个自己的Autoloader, 出于性能的考虑, 对于框架相关的MVC类, Yaf Autoloader只以目录映射的方式尝试一次.
具体的目录映射规则如下:
对于控制器 Controller 默认模块下为{项目路径}/controllers/, 否则为{项目路径}/modules/{模块名}/controllers 比如IndexController,这自动加载文件 {项目目录}/Controllers/Index.php
对于Model 加载路径为{项目目录}/models/ 类似比如UserModel则自动加载{项目目录}/models/User.php
其它规则比如actions,plugin也都类似
而对于非框架MVC相关的类, Yaf支持全局类和自身类的两种加载方式, 并且Yaf支持大小写敏感和不敏感两种方式来处理文件路径.
全局类和自身类(本地类)
Yaf为了方便在一台服务器上部署的不同产品之间共享公司级别的共享库, 支持全局类和本地类两种加载方式.
全局类是指, 所有产品之间共享的类, 这些类库的路径是通过ap.library在php.ini(当然,如果PHP在编译的时候, 支持了with-config-file-sc