用于本应用的控制器自动加载类设置,用法如同
\CodeIgniter\Config\AutoloadConfig
自动加载识别文件:dayrui/App/应用目录/Config/Auto.php
语法格式:
<?php // 自动加载识别文件 return [ /** * 命名空间映射关系 */ 'psr4' => [ ], /** * 类名映射关系 */ 'classmap' => [ ], ];
实现自动化引用类文件,可以对系统类路径进行重新,非常方便的开发方式
一、命名空间映射关系示例
1、创建自动加载识别文件:dayrui/App/Myapp/Config/Auto.php
<?php // 自动加载识别文件 return [ /** * 命名空间映射关系 */ 'psr4' => [ 'MyXunrui' => APPPATH.'Xunrui/', // 前面的MyXunrui是命名空间的名称 // 后面的是储存目录,专门储存用到 的类文件 ], ];
2、创建其中一个测试类文件 dayrui/App/Myapp/Xunrui/Test.php
<?php namespace MyXunrui; class Test { function test() { return 'MyXunrui test'; } }
类文件首字母大写.php,
类方法名称必须和文件名保存一致,首字母大写,
必须声明namespace和(1)中的名称保持一致
3、创建控制器,来调用这个类
dayrui/App/Myapp/Controllers/Test.php
<?php namespace Phpcmf\Controllers; class Test extends \Phpcmf\Common { public function index() { $obj = new \MyXunrui\Test(); echo $obj->test(); } }
此方法可以创建多个类文件,只需要按(2)中的命名来建立
4、访问
/index.php?s=myapp&c=test&m=index
就能输出 MYxunrui test
二、类名映射关系示例
1、创建自动加载识别文件:dayrui/App/Myapp/Config/Auto.php
<?php // 自动加载识别文件 return [ /** * 类名映射关系 */ 'classmap' => [ 'MyXunruiClass' => APPPATH.'xunrui.php', ], ];
2、创建这个文件APPPATH.'xunrui.php' 表示 dayrui/App/Myapp/xunrui.php
<?php class MyXunruiClass { function test() { return 'test!'; } }
3、创建控制器,来调用这个类
dayrui/App/Myapp/Controllers/Test.php
<?php namespace Phpcmf\Controllers; class Test extends \Phpcmf\Common { public function index() { $obj = new \MyXunruiClass(); echo $obj->test(); // 这样就执行上面定义的类,不需要手动去加载他 } }
多个类需要在(1)中做多次映射
4、访问
/index.php?s=myapp&c=test&m=index
就能输出 test!
三、第三方php类组件映射关系示例
以queryList为例,下载源码(非Composer方式):https://github.com/jae-jae/querylist
1、将下载的源码复制到插件Myapp目录,例如:
dayrui/App/Myapp/src/
2、创建自动加载识别文件:dayrui/App/Myapp/Config/Auto.php
<?php // 自动加载识别文件 return [ /** * 命名空间映射关系 */ 'psr4' => [ 'QL\QueryList' => APPPATH.'src', ], ];
3、创建控制器,来调用这个类
dayrui/App/Myapp/Controllers/Test.php
<?php namespace Phpcmf\Controllers; use QL\QueryList; class Test extends \Phpcmf\Common { public function index() { $data = QueryList::get('https://www.xunruicms.com')->find('img')->attrs('src'); //打印结果 print_r($data->all()); } }
4、访问
/index.php?s=myapp&c=test&m=index
就能输出 结果