フレームワーク行脚の旅、というか、PHPも初心者、フレームワークもそんなに使ったことない、という私が、どんなものがあるのだろうと探し回っている中、初心者にお勧めだというフレームワーク「PHPixie」を見つけたので試しにXAMPP環境でちょっと使ってみた。
データベースがMongoDBというオブジェクト指向DBというのが気になるけど、ま、最悪DB操作は直接PHPで書けばいいわけだし。あ、ユーザー認証どうしよう。
プロジェクトの作成と最初のページの表示まで
まずはLaravelと同様、XAMPPのhtdocsのディレクトリに行き、composerを使ってプロジェクトを作成する。
> composer create-project phpixie/project phpixie
とりあえずそれらしいファイル群はできたようだ。で、クイックスタートのページにあるように、まず、プロジェクトルートファイルに「.htaccess」を以下のように作っておく。
RewriteEngine on RewriteBase / RewriteCond %{REQUEST_URI} !web/ RewriteRule (.*) /web/$1 [L
そして、ApacheのDocumentRootをプロジェクトルートに向ければ、「http://localhost/」でテストページが表示された。
Processor
次の節、Processorをページの内容そのままで進めて、「HTTPProcessors」フォルダ直下に「Quickstart.php」を作成してQuickstartクラスを定義したあと、「App」フォルダ直下の「HTTPProcessor.php」にbuildQuickstartProcessorメソッドを定義して、再実行してみたところ、ちゃんと「http://localhost/quickstart」で「Quickstart tutorial」という文字が表示された。
うまくいっているようだ。仕組みはあとで考えよう…
Routing
そんでもってRoutingをこれもまたページの内容そのままで進めてみる。QuickStart.phpにviewActionメソッドを追加するところまでは良かったが、「config」フォルダ内の「routeResolver.php」の追加が、どこに追加するのかよくわかんなかったので、結局以下のようにしてみた。
<?php return array( 'type' => 'group', 'resolvers' => array( 'default' => array( 'type' => 'pattern', 'path' => '(<processor>(/<action>))', 'defaults' => array( 'processor' => 'greet', 'action' => 'default' ) ), 'view' => array( 'type' => 'pattern', 'path' => 'quickstart/view/<id>', 'defaults' => array( 'processor' => 'quickstart', 'action' => 'view' ) ) ) );
そうしたところ、うまく「http://localhost/quickstart/view/5」で「5」って表示されたから、大丈夫なのだろう。仕組みは後で考えよう。
とりあえず今日はここまで。