laravel扩展包的配置文件复制到config文件夹下的问题解决

WBOY
发布: 2016-06-20 12:29:58
原创
2118 人浏览过

我们在写扩展包的时候,总是会纠结,里面的一些个性化的配置要怎么处理呢。

laravel 很好的解决了这个问题。

laravel 的 ServiceProvider很好的解决了这个问题。

具体来说,如果,你想要在外部配置你的扩展包,那么,就先要把你这个 包注册成 服务。

首先需要定义一个类 继承 ServiceProvider.

1.里面定义一个register函数 指定 包所用的配置文件的绝对路径,然后把配置的外部文件和内部文件的内容合并。

2.在boot函数中,指定 publish的具体位置。

代码如下

<?php/** * Created by Bane.Shi. * Copyright MoenSun * User: Bane.Shi * Date: 16/4/30 * Time: 00:06 */namespace MoenSun\MSFileSystem;use Illuminate\Support\ServiceProvider;class MSFileSystemServiceProvider extends ServiceProvider{    public function register()    {        $configPath = __DIR__ . '/../../../config/mslaravelsystem.php';        $this->mergeConfigFrom($configPath,"mslaravelsystem");    }    public function boot(){        $app = $this->app;        $configPath = __DIR__ . '/../../../config/mslaravelsystem.php';        $this->publishes([$configPath => $this->getConfigPath()],'config');    }    public function getConfigPath(){        return config_path("mslaravelsystem.php"); }    protected function publishConfig($configPath)    {        $this->publishes([$configPath => config_path('mslaravelsystem.php')], 'config');    }}
登录后复制

在 config/app.php 文件夹下,添加该服务

在 providers 数组下添加

MoenSun\MSFileSystem\MSFileSystemServiceProvider::class
登录后复制

再执行

php artisan vendor:publish
登录后复制

这样文件就会copy 到config文件夹下了。

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!