php のslimでrouteに登録する関数をオブジェクトメソッドにしたい。
$app->get("show","some_function");
これだと、関数を大量生成しなくちゃいけないので、関数の管理が不便になって、PREFIXつけたりして前時代的で全然嬉しくない。
だからといって、Staticなクラスメソッドを連発するのはもっと嬉しくない。
そこで、コントローラクラスを導入して、そこにポイントする。
<?php class Sample { public function info(){ phpinfo(); } }
このSampleクラスのinfo()関数をオブジェクトから取り出すようにする。
<?php $app = new \Slim\Slim(); $ctrl = new Sample(); $app->get("/test", array($ctrl, "info") ); //または直接 $app->get("/test2", array((new Sample), "info") );
ポイントはコールバックの仕様
phpのコールバックの章を読めばだいたいのことは分かるよ