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/
