Chr*_*oni 3 php laravel laravel-5
我需要facade在我的Laravel 5应用程序中设置一个别名,但我希望它仅在我的应用程序中可用local environment.
我想要添加的存储库是Laravel-Debugbar.
所以我Http/Providers/AppServiceProvider以这种方式注册了提供商:
public function register()
{
if( $this->app->environment() == "local")
{
$this->app->register('Barryvdh\Debugbar\ServiceProvider');
}
}
Run Code Online (Sandbox Code Playgroud)
如何为别名做同样的事情?
'Debugbar' => 'Barryvdh\Debugbar\Facade',
Run Code Online (Sandbox Code Playgroud)
Gre*_*reg 11
进行如下.
1)在你的composer require命令中添加"--dev".即
sudo composer require barryvdh/laravel-ide-helper --dev
Run Code Online (Sandbox Code Playgroud)
或者,在composer.json中将您的开发环境需要移动到"require-dev"部分:
"require": {
"laravel/framework": "5.0.*"
},
"require-dev": {
"laracasts/generators": "~1.1",
"barryvdh/laravel-ide-helper": "~2.0",
"barryvdh/laravel-debugbar": "~2.0"
},
Run Code Online (Sandbox Code Playgroud)
然后做一个作曲家更新.
2)设置一个新的ServiceProvider:
php artisan make:provider LocalEnvironmentServiceProvider
Run Code Online (Sandbox Code Playgroud)
3)在config/app中将LocalEnvironmentServiceProvider添加到providers数组:
'providers' => [ ...
'app\Providers\ConfigServiceProvider',
'app\Providers\EventServiceProvider',
'app\Providers\RouteServiceProvider',
/*
* Our Local Environment Service Providers...
*/
'app\Providers\LocalEnvironmentServiceProvider',
],
Run Code Online (Sandbox Code Playgroud)
4)修改您的新app/Providers/LocalEnvironmentServiceProvider文件:
<?php namespace App\Providers;
use Illuminate\Foundation\AliasLoader;
use Illuminate\Support\ServiceProvider;
class LocalEnvironmentServiceProvider extends ServiceProvider {
/**
* List of Local Environment Providers
* @var array
*/
protected $localProviders = [
'Laracasts\Generators\GeneratorsServiceProvider'
'Barryvdh\Debugbar\ServiceProvider',
'Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider',
];
/**
* List of only Local Environment Facade Aliases
* @var array
*/
protected $facadeAliases = [
'Debugbar' => 'Barryvdh\Debugbar\Facade',
];
/**
* Bootstrap the application services.
* @return void
*/
public function boot() {
if ($this->app->isLocal()) {
$this->registerServiceProviders();
$this->registerFacadeAliases();
}
}
/**
* Register the application services.
* @return void
*/
public function register() {
}
/**
* Load local service providers
*/
protected function registerServiceProviders() {
foreach ($this->localProviders as $provider) {
$this->app->register($provider);
}
}
/**
* Load additional Aliases
*/
public function registerFacadeAliases() {
$loader = AliasLoader::getInstance();
foreach ($this->facadeAliases as $alias => $facade) {
$loader->alias($alias, $facade);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我还在其中添加了几个其他典型的开发提供商和外观,所以希望您能够轻松地扩展它.
当然,使用此方法,您只需更改$ this-> app-> isLocal()以匹配其他环境.
| 归档时间: |
|
| 查看次数: |
1716 次 |
| 最近记录: |