はじめに
本当に「使ってみた」の報告なので、このフレームワークのどこが良いとか悪いとか詳しい部分は書きません。
経緯
ふと Packagist で自分の名前を入れてみた(本当に)
なんか出てきた…
Gongo is a micro web application framework for PHP 5.2 or later.
実は僕、PHP の micro web application framework だったそうです https://t.co/FQpdOBnV5T
— Wataru MIYAGUNI (@gongoZ) 2015, 1月 5
気になったので使ってみた
使ってみた
https://github.com/gongo/gongongo
ついでに Heroku にも上げてみました。
https://gongongo.herokuapp.com/
簡単に説明
Routing of root /
README を見るといくつかパターンがあるようですが、今回私は以下のようにしました。
class Application extends Gongo_App { // `/` にアクセスすると `\Gongongo\Controller\Root` の `getIndex()` を実行 public $uses = array( 'root' => '\Gongongo\Controller\Root' ); } // `app/` や `config/` があるパスを指定する $app = new Application(dirname(__FILE__) . '/..'); $app->init()->run();
Routing その他 & View やアクションメソッドの設定
$uses['view']
は、使用する View クラス$uses['/xxx']
は、/xxx
にアクセスすると実行するクラスgetIndex()
だと/
にアクセスした時に実行されるメソッド。- ちなみに
getFoo()
ってやるとGET /foo
、postFoo()
だとPOST /foo
です。
- ちなみに
View
$uses['template']
にテンプレートクラスを指定します。
今回は Twig を指定しましたが、他にも Smarty とか いろいろあるようです。
コントローラのアクションメソッド内で、たとえば $this->view->render($app, 'foo')
を呼び出すと
template/{テンプレートクラス名}/foo.{テンプレートにあった拡張子}
が呼ばれます。
テンプレートが使用する変数は、コントローラのアクションメソッド内で
app/Controller/Repository.php#L12
$app->context->{テンプレートが参照する変数名} = 'xxx';
とかすれば大丈夫っぽい。
設定ファイル
正直ここらへんはよくわからず。わかるけど何が必須かわからず。 とりあえず 例題 を参考に、足りなさそうな部分をエラー画面見ながら追加していった感じです。
とまあそんな感じで
全部勘です
まとめ
The website written by gongo using Gongo
これ言いたかっただけ感ある。
そういえば Heroku に PHP アプリケーション上げたの初めてだったので、そこらへんも勉強になった。