Php/laravel/laravel5/facade
提供: 初心者エンジニアの簡易メモ
目次
facadeについて
laravelのfacadeの使い方について
実装
vi app/Services/Animal.php
namespace App\Services; class Animal { private $_name = "animal"; public function setName($name) { $this->_name = $name; } public function getName() { return $this->_name; } }
vi app/Providers/AnimalServiceProvider.php
namespace App\Providers; use Illuminate\Support\ServiceProvider; class AnimalServiceProvider extends ServiceProvider { public function boot() { } public function register() { $this->app->bind( 'animal', 'App\Services\Animal' ); } }
vi app/Facades/Animal.php
namespace App\Facades; use Illuminate\Support\Facades\Facade; class Animal extends Facade { protected static function getFacadeAccessor() { return 'animal'; } }
vi config/app.php
'providers' => [ App\Providers\AnimalServiceProvider::class,
実行
controllerとかで
\App\Facades\Animal::setName("dog"); echo \App\Facades\Animal::getName(); // dog
別のlogicに移動して以下を実行しても同じインスタンスが呼ばれるsingleton的な動き
echo \App\Facades\Animal::getName(); // dog
参考
https://laravel10.wordpress.com/2015/04/27/%E3%83%95%E3%82%A1%E3%82%B5%E3%83%BC%E3%83%89/