Home >Backend Development >PHP Tutorial >laravel扩展包的配置文件复制到config文件夹下的问题解决

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

WBOY
WBOYOriginal
2016-06-20 12:29:582152browse

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

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文件夹下了。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn