Jadual Kandungan
Minor【 PHP框架】6.代理,minorphp框架代理
Rumah php教程 php手册 Minor【 PHP框架】6.代理,minorphp框架代理

Minor【 PHP框架】6.代理,minorphp框架代理

Jul 06, 2016 pm 02:25 PM
php5

Minor【 PHP框架】6.代理,minorphp框架代理

6.1 代理

  Minor提供了一个类似于java中InvocationHandler接口和一个Proxy类的代理模式的实现,具体可参考我的这篇文章:http://www.cnblogs.com/orlion/p/5350752.html

  6.1.1 使用

  

<span>class</span> FooController <span>extends</span><span> Controller
{
    </span><span>public</span> <span>function</span> bar(<span>$productName</span><span>)
    {
       
        </span><span>$log</span> = <span>new</span><span> LogHandler();
        </span><span>$shop</span> = <span>new</span><span> Shop();
        </span><span>$shopProxy</span> = Proxy::newProxyInstance(<span>$shop</span>, <span>$log</span><span>);
        </span><span>$shopProxy</span>->buy(<span>$productName</span><span>);

    }
}</span>
Salin selepas log masuk
<?<span>php

namespace App\Lib;

</span><span>use</span><span> Minor\Proxy\InvocationHandler;

</span><span>class</span> LogHandler <span>implements</span><span> InvocationHandler
{
    </span><span>public</span> <span>function</span> invoke(<span>$target</span>, \ReflectionMethod <span>$method</span>, <span>Array</span> <span>$args</span> =<span> [])
    {
        </span><span>$this</span>-><span>before();
        </span><span>$result</span> = <span>$method</span>->invokeArgs(<span>$target</span>, <span>$args</span><span>);
        </span><span>$this</span>-><span>after();

        </span><span>return</span> <span>$result</span><span>;
    }

    </span><span>public</span> <span>function</span><span> before()
    {
        </span><span>echo</span> '[LogHandler] before<br/><br/>'<span>;
    }

    </span><span>public</span> <span>function</span><span> after()
    {
        </span><span>echo</span> '[LogHandler] after<br/><br/>'<span>;
    }
}</span>
Salin selepas log masuk
<?<span>php

namespace App\Lib;

</span><span>class</span><span> Shop
{

    </span><span>private</span> <span>$mail</span> = <span>null</span><span>;

    </span><span>public</span> <span>function</span> boot(MailProvider <span>$mail</span><span>)
    {
        </span><span>$this</span>-><span>mail</span> = <span>$mail</span><span>;
    }

    </span><span>public</span> <span>function</span> buy(<span>$productName</span><span>)
    {
        </span><span>echo</span> '[Shop] buy ' . <span>$productName</span> . '<br/><br/>'<span>;
        </span>!<span>is_null</span>(<span>$this</span>-><span>mail</span>) && <span>$this</span>-><span>mail</span>->send('DemoUser'<span>);
    }
}</span>
Salin selepas log masuk

 

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah perbezaan antara php5 dan php8 Apakah perbezaan antara php5 dan php8 Sep 25, 2023 pm 01:34 PM

Apakah perbezaan antara php5 dan php8

Bagaimana untuk menukar port 80 dalam php5 Bagaimana untuk menukar port 80 dalam php5 Jul 24, 2023 pm 04:57 PM

Bagaimana untuk menukar port 80 dalam php5

Bagaimana untuk menyelesaikan masalah bahawa php5 tidak mendengar pada port 9000 Bagaimana untuk menyelesaikan masalah bahawa php5 tidak mendengar pada port 9000 Jul 10, 2023 pm 04:01 PM

Bagaimana untuk menyelesaikan masalah bahawa php5 tidak mendengar pada port 9000

Apakah perbezaan antara sintaks php7 dan php5 Apakah perbezaan antara sintaks php7 dan php5 Jul 10, 2023 pm 03:25 PM

Apakah perbezaan antara sintaks php7 dan php5

Apakah perbezaan antara versi php7 dan 5? Apakah perbezaan antara versi php7 dan 5? Sep 15, 2023 pm 04:11 PM

Apakah perbezaan antara versi php7 dan 5?

Bagaimana untuk menukar port 80 dalam php5 Bagaimana untuk menukar port 80 dalam php5 Mar 21, 2023 pm 04:32 PM

Bagaimana untuk menukar port 80 dalam php5

Bagaimana untuk menyelesaikan masalah bahawa php5 tidak mendengar pada port 9000 Bagaimana untuk menyelesaikan masalah bahawa php5 tidak mendengar pada port 9000 Mar 21, 2023 pm 04:32 PM

Bagaimana untuk menyelesaikan masalah bahawa php5 tidak mendengar pada port 9000

Bincangkan perbezaan sintaks antara PHP7 dan PHP5 Bincangkan perbezaan sintaks antara PHP7 dan PHP5 Mar 21, 2023 pm 07:10 PM

Bincangkan perbezaan sintaks antara PHP7 dan PHP5

See all articles