《PHP實戰:Laravel中注冊Facades的步驟詳解》要點:
本文介紹了PHP實戰:Laravel中注冊Facades的步驟詳解,希望對您有用。如果有疑問,可以聯系我們。
PHP學習本文講述了Laravel中注冊Facades的步驟.分享給大家供大家參考,具體如下:
PHP學習在Laravel中將類注冊為Fcade可以使用Ioc容器,每次使用這個類的時候只會初始化一次類,類似單例模式,而且可以像使用靜態辦法調用類的辦法,下面是在Laravel中注冊Facades的步驟.
PHP學習1.在項目app目錄的Providers/AppServiceProvider.php中的register辦法新增辦法,代碼如下.
PHP學習
/**
* Register any application services.
*
* @return void
*/
public function register()
{
$this->registerTestModel();
}
private function registerTestModel()
{
$this->app->singleton('testmodel', function ($app) {
$model = 'App\Models\Test';
return new $model();
});
$this->app->alias('testmodel', 'App\Models\Test');
}
PHP學習這里把命名空間是App\Models的Test類注冊為單例模式,并且取個別名testmodel.這個Test類的文件位置app/Models/Test.php.
PHP學習2.建立一個Facade類
PHP學習在項目根目錄app\Facades目錄新增文件,如Test.php,代碼如下,目錄不存在可以新建一個.
PHP學習
<?php
namespace App\Facades;
use Illuminate\Support\Facades\Facade;
class Test extends Facade
{
/**
* Get the registered name of the component.
*
* @return string
*/
protected static function getFacadeAccessor()
{
return 'testmodel';
}
}
PHP學習通過繼承Facade,重載getFacadeAccessor辦法,返回之前綁定的單例模式的類的別名.
PHP學習3.使用Facade
PHP學習經過前面的步驟后,可以使用Test這個Facade了,如下示例是在控制器中使用Facade的方式.
PHP學習
<?php
namespace App\Http\Controllers;
use App\Facades\Test;
use Illuminate\Routing\Controller;
class TestController extends Controller
{
public function __construct()
{
Test::show();
Test::show();
}
}
PHP學習先看看這個原始類Test.php的內容:
PHP學習
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Test extends Model
{
protected $table = 'tt';
public static $times = 0;
public function __construct()
{
self::$times++;
parent::__construct();
}
public function show()
{
echo self::$times . '<br>';
}
}
PHP學習經過注冊Facade后,調用show辦法就是Test::show()的形式,并且類似單例模式不會多次實例化,調用也十分簡單.
PHP學習PS:以上僅為注冊Facade的辦法和步驟,實際項目中可能還需對Model層進行進一步的封裝.
PHP學習轉自:小談博客 http://www.tantengvip.com/2016/01/laravel-facades-register/
PHP學習更多關于Laravel相關內容感興趣的讀者可查看本站專題:《Laravel框架入門與進階教程》、《php優秀開發框架總結》、《smarty模板入門基礎教程》、《php日期與時間用法總結》、《php面向對象程序設計入門教程》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》
PHP學習希望本文所述對大家基于Laravel框架的PHP程序設計有所贊助.
歡迎參與《PHP實戰:Laravel中注冊Facades的步驟詳解》討論,分享您的想法,維易PHP學院為您提供專業教程。
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/7347.html