n0wada/silexagain

アプリケーションをSilex風にするtrait


License
MIT

Documentation

SilexAgain

Silexは2018年の6月で残念ながらEOLとなってしまいました。

Silexの簡単にサービスプロバイダやイベントを作成できるところが好きだったので、
使用感を再現するtraitを作ってみました。

Requirements

PHP 5.4以上で動作します。

License

MITライセンスとします。

Installation

composer require n0wada/silexagain

Usage

webアプリケーションSilexAgainTraitをクラスに適用することで使用します。 Slimを使う場合は以下のような感じです。
beforeやafterメソッドは名前が衝突しないように自分で定義してください。

SilexのServiceProviderは使えません。プロバイダーにpimpleを渡す必要があり、
Silexをそのまま使えばいいじゃん、となってしまうからです。

SilexAgain\ServiceProviderInterfaceまたはSilexAgain\BootableProviderInterfaceを
implementsしたクラスを作成するようにしてください。

<?php
use SilexAgain\SilexAgainTrait;
use SilexAgain\SilexAgainEvents;
use Slim\App;
  
class myApp extends App
{
    use SilexAgainTrait;
    
    function before($callback)
    {
        $this->on(SilexAgainEvents::BEFORE_EVENT, $callback);
    }
}
 
 
$app = new myApp();
    
$app->register(new YourServiceProvider());
    
$app->before(function () {
     echo "before_event!";
});
    
$app->get("/", function () use ($app) {
    $app->dispatch(SilexAgainEvents::BEFORE_EVENT);
});
    
$app->boot()->run();