搜尋
首頁php教程php手册Laravel 实现 Facades 功能,laravelfacades

Laravel 实现 Facades 功能,laravelfacades

  使用过Laravel的同学都知道Facades 的强大,下面就让我们一起创建一个Facades 实例。如有不正确的地方,还请不吝赐教。

  1. 实现Laravel的自动加载功能

  首先建立目录app/lib/Myapp,然后添加目录到composer.json中  

 

<span>1</span> "autoload":<span> {        
</span><span>2</span>     "psr-0":<span>{
</span><span>3</span>         "Myapp":"app/lib"
<span>4</span> <span>    }
</span><span>5</span> }    

  

  2. 实现功能类

  实现能能类 app/lib/Myapp/Test.php  

<span> 1</span> <?<span>php
</span><span> 2</span> <span>/*</span><span>*
</span><span> 3</span> <span> * @author brudeke
</span><span> 4</span>  <span>*/</span>
<span> 5</span> <span>namespace Myapp;
</span><span> 6</span> <span>class</span><span> Test{
</span><span> 7</span>     <span>public</span> <span>function</span> <span>do</span><span>(){
</span><span> 8</span>         <span>echo</span> 'this is a class'<span>;
</span><span> 9</span> <span>    }
</span><span>10</span> }

  

  3. 实现ServiceProvider

  实现app/lib/Myapp/TestServiceProvider.php ,该类主要是将功能类添加到Ioc容器:  

<?<span>php
</span><span>/*</span><span>*
 * @author brudeke
 </span><span>*/</span><span>
namespace Myapp;

</span><span>use</span><span> Illuminate\Support\ServiceProvider;

</span><span>class</span> TestServiceProvider <span>extends</span><span> ServiceProvider{

    </span><span>public</span> <span>function</span><span> register()  {
        </span><span>$this</span>->app['test'] = <span>$this</span>->app-><span>share(
            </span><span>function</span> (<span>$app</span><span>) {
                </span><span>return</span> <span>new</span><span> \Myapp\Test();
        });
    }
}</span>

 

  4. 实现Facade 实例

  实现app/lib/Myapp/Facades/TestFacades.php, 该类的主要美化,实现成员函数类似静态方法的调用形式  

<span> 1</span> <?<span>php
</span><span> 2</span> <span>/*</span><span>*
</span><span> 3</span> <span> * @author brudeke
</span><span> 4</span>  <span>*/</span>
<span> 5</span> <span>namespace Myapp\Facades;
</span><span> 6</span> 
<span> 7</span> <span>use</span><span> Illuminate\Support\Facades\Facade;
</span><span> 8</span> 
<span> 9</span> <span>class</span>  TestFacades <span>extends</span><span> Facade{
</span><span>10</span>     <span>protected</span> <span>static</span> <span>function</span><span> getFacadeAccessor()
</span><span>11</span> <span>    {
</span><span>12</span>         <span>return</span> 'test'<span>;
</span><span>13</span> <span>    }
</span><span>14</span> }

  

  5. 加载ServiceProvider

  在app/config/app.php 中的providers中添加如下配置:  

<span>1</span> 'providers' => <span>array</span><span>(   
</span><span>2</span>   'Myapp\TestServiceProvider'
<span>3</span> ),

  在app/config/app.php 中的aliases中添加别名:  

<span>1</span> 'aliases' => <span>array</span><span>(
</span><span>2</span>     'TestClass'            =>  'Myapp\Facades\TestFacades',
<span>3</span> ),

  接下来就可以在项目中以TestClass::do()的形式使用该功能类了。

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。