Minor【 PHP框架】6.代理,minorphp框架代理
Jul 06, 2016 pm 02:25 PMMinor【 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>
<?<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>
<?<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>

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Apakah perbezaan antara php5 dan php8

Bagaimana untuk menukar port 80 dalam php5

Bagaimana untuk menyelesaikan masalah bahawa php5 tidak mendengar pada port 9000

Apakah perbezaan antara sintaks php7 dan php5

Apakah perbezaan antara versi php7 dan 5?

Bagaimana untuk menukar port 80 dalam php5

Bagaimana untuk menyelesaikan masalah bahawa php5 tidak mendengar pada port 9000

Bincangkan perbezaan sintaks antara PHP7 dan PHP5
