tp5给了我们一种方式去实现不用命名空间来加载第三方的类!
实现方法如下:
方法一
1.在入口文件中添加
define('EXTEND_PATH', __DIR__ .'/../extend/');
2.在extend 中添加自定义文件myClass
命名空间要写文件加的名称lib
3. 调用自定义类
第二种 使用Loader
1、在extend文件夹下面放extend/lib/myClass.php文件;
2、在applicatioon/index.php文件中写入
define('EXTEND_PATH', '../extend/');
3、在index控制器中引用
#use think\Loader;
#Loader::import('lib\myClass', EXTEND_PATH);
#$mail=new \lib\myClass();
use think\Controller;
use think\Loader;
//use lib\myClass;
class Index extends Controller
{
public function index()
{
Loader::import('lib\myClass', EXTEND_PATH);
$obj = new \lib\MyClass();
$obj->test();
return $this->fetch();
}
}
我们需要在 new 类文件()时,在类文件前面加一个 “ \ ” ,即如下:
$obj = new \Test();
加 ‘\’ 的原因是,tp5的命名空间自动加载规则:自动加载的实现由think\Loader类库完
成,自动加载规范符合PHP的PSR-4,根据对规则的了解,放在extend目录下没有定义
命名空间的类文件,就是全局化的类。实例化全局化的类的话,即用"\"放在类名前表
示此类是全局类,就new一个全局化的类!