「Php/laravel/laravel5/facade」の版間の差分
提供: 初心者エンジニアの簡易メモ
行4: | 行4: | ||
==実装== | ==実装== | ||
vi app/Services/Animal.php | vi app/Services/Animal.php | ||
− | namespace App; | + | namespace App\Services; |
class Animal | class Animal | ||
{ | { | ||
行30: | 行30: | ||
$this->app->bind( | $this->app->bind( | ||
'animal', | 'animal', | ||
− | 'App\Animal' | + | 'App\Services\Animal' |
); | ); | ||
} | } |
2016年8月8日 (月) 07:05時点における最新版
目次
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/