ホームページ >バックエンド開発 >PHPチュートリアル >laravel拡張パッケージの設定ファイルをconfigフォルダにコピーする問題を解決
拡張パックを作成するとき、その中に含まれるパーソナライズされた構成の一部をどのように扱うかについて常に苦労します。
Laravel はこの問題を非常にうまく解決します。
Laravel の ServiceProvider は、この問題を非常にうまく解決します。
特に、拡張パッケージを外部で構成する場合は、まずパッケージをサービスとして登録する必要があります。
まず、ServiceProvider を継承するクラスを定義する必要があります。
1. その中に、パッケージで使用される構成ファイルの絶対パスを指定する register 関数を定義し、内容をマージします。構成された外部ファイルと内部ファイルの。
2. ブート関数で、公開する特定の場所を指定します。
コードは次のとおりです
<?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 フォルダーにサービスを追加します
プロバイダーの下に
MoenSun\MSFileSystem\MSFileSystemServiceProvider::class
を追加しますarray 次に、
php artisan vendor:publish
を実行すると、ファイルが config フォルダーにコピーされます。