2-6关于自动引入自定义类的学习思路。

来源:2-6 【实战】在框架中新增自定义类

一场丶

2019-04-06

1、自动引入和application同级所在目录的singwa下的类库。
第一个做法:直接加一行。和自动加载 extend 目录做法一样

`self::addAutoLoadDir($rootPath . 'singwa');`、

第二个做法:在不修改 Loader.php 情况下:

在`think\base.php` 中`Loader::register();`注册`singwa`
`Loader::addAutoLoadDir(Loader::getRootPath().'singwa');`

或者 在不修改框架源代码的情况下,在应用入口文件index.php中注册Loader::addAutoLoadDir(Loader::getRootPath().'singwa');
注意:不能在 执行应用后在注册。不然并没有添加进静态属性中。

singwa 老师。这样理解的有误不。

2.关于作业。
自动加载library下的ali下的类库文件。无非就是在Loader.php中对其自动加载。
对其注册命名空间定义。Loader.php有原代码如下:

self::addNamespace([
            'think'  => __DIR__,
            'traits' => dirname(__DIR__) . DIRECTORY_SEPARATOR . 'traits',
        ]);

自动加载ali下的类库文件。只需添加一行

self::addNamespace([
            'ali' => dirname(__DIR__) . DIRECTORY_SEPARATOR . 'ali',
            'think'  => __DIR__,
            'traits' => dirname(__DIR__) . DIRECTORY_SEPARATOR . 'traits',
        ]);

'ali' => dirname(__DIR__) . DIRECTORY_SEPARATOR . 'ali',这样就是手动添加的。这样就自动注册了自定义类、
在不修改其源代码的情况下,自动注册thinkphp/library/ali
在其入口文件index.php中添加:

  Loader::addNamespace([
    'ali' => Loader::getRootPath() .  'thinkphp/library/ali',
]);


玩了一天再学习-.-
不足之处请singwa老师多多指教。

写回答

1回答

singwa

2019-04-06

亲爱的同学您好。很棒,说明您能举一反三,学习就需要您这种精神,老师坚信 您只要坚持下去,肯定可以学好。赞。

4
2
singwa
赞赞赞
2019-04-06
共2条回复

BAT资深工程师解析Tp5+Tp6底层源码

一门课掌握主流Tp5+最新Tp6框架底层,拥抱新潮流

686 学习 · 145 问题

查看课程