在使用laravel框架式可能有些业务需求会频繁地用到我们自定义的类库

这时候我们把这些自定义类库加入到框架的自动加载中会方便很多

 

如果我们使用的composer安装的laravel框架,那么添加自定义类库就会方便很多

1 首先在app目录下创建一个新的目录,命名Lunar(这个是自定义的)

 

类文件Lunar.php放在Lunar目录下 注意文件中的类名和文件名要一致

 

3 接着找到框架根目录下的composer.json文件 在文件中做出如下修改

"autoload": {
        "classmap": [
            "database",
            "app/Lunar/Lunar.php"
        ],
        "psr-4": {
            "App\\": "app/"
        }
    },

4 在cmd或者linux中进入laravel框架的根目录 执行如下命令

composer dumpautoload

 

此后就可以在laravel的控制器中使用Lunar类了

当然使用前要注意一点就是在控制器的头部先引入命名空间

use App\Lunar\Lunar;

public function index()
{
    $lunarClass = new Lunar();
}

 

如果laravel不是通过composer安装的该怎么引入这个类库呢

在我使用composer添加完毕Lunar类后框架内全局搜索 发现

laravel/vendor/composer/autoload_classmap.php 文件中的第9行多了如下数据

'App\\Lunar\\Lunar' => $baseDir . '/app/Lunar/Lunar.php',

laravel/vendor/composer/autoload_static.php 文件中的第266行多了如下数据

'App\\Lunar\\Lunar' => __DIR__ . '/../..' . '/app/Lunar/Lunar.php',

所以个人猜想手动添加这两处也可以达到效果

 

ps:我所用的laravel框架版本为5.2 

posted on 2018-03-07 20:20  头皮发麻  阅读(1073)  评论(0编辑  收藏  举报