欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

<strong id="zi8wx"></strong>

Laravel中注冊(cè)Facades的步驟詳解

 更新時(shí)間:2016年03月16日 10:17:00   作者:小談博客  
這篇文章主要介紹了Laravel中注冊(cè)Facades的步驟,詳細(xì)分析了Laravel中注冊(cè)Facades的原理,實(shí)現(xiàn)方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下

本文講述了Laravel中注冊(cè)Facades的步驟。分享給大家供大家參考,具體如下:

在Laravel中將類注冊(cè)為Fcade可以使用Ioc容器,每次使用這個(gè)類的時(shí)候只會(huì)初始化一次類,類似單例模式,而且可以像使用靜態(tài)方法調(diào)用類的方法,下面是在Laravel中注冊(cè)Facades的步驟。

1.在項(xiàng)目app目錄的Providers/AppServiceProvider.php中的register方法新增方法,代碼如下。

/**
 * 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');
}

這里把命名空間是App\Models的Test類注冊(cè)為單例模式,并且取個(gè)別名testmodel.這個(gè)Test類的文件位置app/Models/Test.php.

2.建立一個(gè)Facade類

在項(xiàng)目根目錄app\Facades目錄新增文件,如Test.php,代碼如下,目錄不存在可以新建一個(gè)。

<?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';
 }
}

通過繼承Facade,重載getFacadeAccessor方法,返回之前綁定的單例模式的類的別名。

3.使用Facade

經(jīng)過前面的步驟后,可以使用Test這個(gè)Facade了,如下示例是在控制器中使用Facade的方式。

<?php
namespace App\Http\Controllers;
use App\Facades\Test;
use Illuminate\Routing\Controller;
class TestController extends Controller
{
 public function __construct()
 {
  Test::show();
  Test::show();
 }
}

先看看這個(gè)原始類Test.php的內(nèi)容:

<?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>';
 }
}

經(jīng)過注冊(cè)Facade后,調(diào)用show方法就是Test::show()的形式,并且類似單例模式不會(huì)多次實(shí)例化,調(diào)用也十分簡(jiǎn)單。

PS:以上僅為注冊(cè)Facade的方法和步驟,實(shí)際項(xiàng)目中可能還需對(duì)Model層進(jìn)行進(jìn)一步的封裝。

轉(zhuǎn)自:小談博客 http://www.tantengvip.com/2016/01/laravel-facades-register/

更多關(guān)于Laravel相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Laravel框架入門與進(jìn)階教程》、《php優(yōu)秀開發(fā)框架總結(jié)》、《smarty模板入門基礎(chǔ)教程》、《php日期與時(shí)間用法總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門教程》及《php常見數(shù)據(jù)庫(kù)操作技巧匯總

希望本文所述對(duì)大家基于Laravel框架的PHP程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • php 微信公眾平臺(tái)開發(fā)模式實(shí)現(xiàn)多客服的實(shí)例代碼

    php 微信公眾平臺(tái)開發(fā)模式實(shí)現(xiàn)多客服的實(shí)例代碼

    這篇文章主要介紹了php 微信公眾平臺(tái)開發(fā)模式實(shí)現(xiàn)多客服的實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2016-11-11
  • php文件擴(kuò)展名判斷及獲取文件擴(kuò)展名的N種方法

    php文件擴(kuò)展名判斷及獲取文件擴(kuò)展名的N種方法

    本篇文章主要通過代碼給大家介紹php文件擴(kuò)展名判斷以及獲取文件擴(kuò)展名的N種方法,需要的朋友跟著腳本之家小編一起學(xué)習(xí)學(xué)習(xí)吧
    2015-09-09
  • 最新評(píng)論