Laravel は Facades 関数を実装しています
Laravel を使ったことがある人なら誰でも Facades の威力を知っています。一緒に Facades インスタンスを作成しましょう。何か間違っている点がございましたら、お気軽にご指摘ください。
1. Laravelの自動読み込み機能の実装
まずapp/lib/Myappというディレクトリを作成し、そのディレクトリをcomposer.jsonに追加します。
<span style="color: #008080;">1</span> "autoload":<span style="color: #000000;"> { </span><span style="color: #008080;">2</span> "psr-0":<span style="color: #000000;">{</span><span style="color: #008080;">3</span> "Myapp":"app/lib"<span style="color: #008080;">4</span> <span style="color: #000000;"> }</span><span style="color: #008080;">5</span> }
2. 関数クラスの実装
クラス app/lib/Myapp/Test.php の実装
<span style="color: #008080;"> 1</span> <?<span style="color: #000000;">php</span><span style="color: #008080;"> 2</span> <span style="color: #008000;">/*</span><span style="color: #008000;">*</span><span style="color: #008080;"> 3</span> <span style="color: #008000;"> * @author brudeke</span><span style="color: #008080;"> 4</span> <span style="color: #008000;">*/</span><span style="color: #008080;"> 5</span> <span style="color: #000000;">namespace Myapp;</span><span style="color: #008080;"> 6</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> Test{</span><span style="color: #008080;"> 7</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> <span style="color: #0000ff;">do</span><span style="color: #000000;">(){</span><span style="color: #008080;"> 8</span> <span style="color: #0000ff;">echo</span> 'this is a class'<span style="color: #000000;">;</span><span style="color: #008080;"> 9</span> <span style="color: #000000;"> }</span><span style="color: #008080;">10</span> }
> 3. ServiceProvider の実装
app/lib/Myapp/TestServiceProvider.php を実装するこのクラスは、主に関数クラスを Ioc コンテナーに追加します:
<?<span style="color: #000000;">php</span><span style="color: #008000;">/*</span><span style="color: #008000;">* * @author brudeke </span><span style="color: #008000;">*/</span><span style="color: #000000;">namespace Myapp;</span><span style="color: #0000ff;">use</span><span style="color: #000000;"> Illuminate\Support\ServiceProvider;</span><span style="color: #0000ff;">class</span> TestServiceProvider <span style="color: #0000ff;">extends</span><span style="color: #000000;"> ServiceProvider{ </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> register() { </span><span style="color: #800080;">$this</span>->app['test'] = <span style="color: #800080;">$this</span>->app-><span style="color: #000000;">share( </span><span style="color: #0000ff;">function</span> (<span style="color: #800080;">$app</span><span style="color: #000000;">) { </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">new</span><span style="color: #000000;"> \Myapp\Test(); }); }}</span>
このクラスの主な美化である app/lib/Myapp/Facades/TestFacades .php を実装すると、次の呼び出し形式を実現します。静的メソッドと同様のメンバー関数
<span style="color: #008080;"> 1</span> <?<span style="color: #000000;">php</span><span style="color: #008080;"> 2</span> <span style="color: #008000;">/*</span><span style="color: #008000;">*</span><span style="color: #008080;"> 3</span> <span style="color: #008000;"> * @author brudeke</span><span style="color: #008080;"> 4</span> <span style="color: #008000;">*/</span><span style="color: #008080;"> 5</span> <span style="color: #000000;">namespace Myapp\Facades;</span><span style="color: #008080;"> 6</span> <span style="color: #008080;"> 7</span> <span style="color: #0000ff;">use</span><span style="color: #000000;"> Illuminate\Support\Facades\Facade;</span><span style="color: #008080;"> 8</span> <span style="color: #008080;"> 9</span> <span style="color: #0000ff;">class</span> TestFacades <span style="color: #0000ff;">extends</span><span style="color: #000000;"> Facade{</span><span style="color: #008080;">10</span> <span style="color: #0000ff;">protected</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> getFacadeAccessor()</span><span style="color: #008080;">11</span> <span style="color: #000000;"> {</span><span style="color: #008080;">12</span> <span style="color: #0000ff;">return</span> 'test'<span style="color: #000000;">;</span><span style="color: #008080;">13</span> <span style="color: #000000;"> }</span><span style="color: #008080;">14</span> }
5. ServiceProvider<をロードします。 🎜>
app/config/app.php のプロバイダーに次の設定を追加します。app/config/ の aliases にエイリアスを追加します。 app.php:
<span style="color: #008080;">1</span> 'providers' => <span style="color: #0000ff;">array</span><span style="color: #000000;">( </span><span style="color: #008080;">2</span> 'Myapp\TestServiceProvider'<span style="color: #008080;">3</span> ),
次に、プロジェクトで TestClass を使用できます。 :do() の形式はこの関数クラスを使用します。
<span style="color: #008080;">1</span> 'aliases' => <span style="color: #0000ff;">array</span><span style="color: #000000;">(</span><span style="color: #008080;">2</span> 'TestClass' => 'Myapp\Facades\TestFacades',<span style="color: #008080;">3</span> ),
ブルーデケ