Thanks Driven Life

日々是感謝

私の名前と同じ PHP 製 Web アプリケーションフレームワーク「Gongo」を使ってみた

はじめに

本当に「使ってみた」の報告なので、このフレームワークのどこが良いとか悪いとか詳しい部分は書きません。

経緯

ふと Packagist で自分の名前を入れてみた(本当に)

f:id:gongoZ:20150226225955g:plain

なんか出てきた…

Gongo is a micro web application framework for PHP 5.2 or later.

気になったので使ってみた

使ってみた

https://github.com/gongo/gongongo

ついでに Heroku にも上げてみました。

https://gongongo.herokuapp.com/

  • 「Home」そのまま
  • 「Repositories」私が GitHub 上に持つリポジトリ一覧
  • 「Messages」てきとうにテキスト保存していけるやつ

簡単に説明

Routing of root /

README を見るといくつかパターンがあるようですが、今回私は以下のようにしました。

public/index.php#L14-L21

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 やアクションメソッドの設定

app/Controller/Root.php

  • $uses['view'] は、使用する View クラス
  • $uses['/xxx'] は、/xxx にアクセスすると実行するクラス
  • getIndex() だと / にアクセスした時に実行されるメソッド
    • ちなみに getFoo() ってやると GET /foopostFoo() だと POST /foo です。

View

app/View.php)

$uses['template'] にテンプレートクラスを指定します。 今回は Twig を指定しましたが、他にも Smarty とか いろいろあるようです

コントローラのアクションメソッド内で、たとえば $this->view->render($app, 'foo') を呼び出すと

template/{テンプレートクラス名}/foo.{テンプレートにあった拡張子}

が呼ばれます。

テンプレートが使用する変数は、コントローラのアクションメソッド内で

app/Controller/Repository.php#L12

$app->context->{テンプレートが参照する変数名} = 'xxx';

とかすれば大丈夫っぽい。

設定ファイル

config/config.ini

正直ここらへんはよくわからず。わかるけど何が必須かわからず。 とりあえず 例題 を参考に、足りなさそうな部分をエラー画面見ながら追加していった感じです。

とまあそんな感じで

全部勘です

まとめ

The website written by gongo using Gongo

これ言いたかっただけ感ある。

そういえば Heroku に PHP アプリケーション上げたの初めてだったので、そこらへんも勉強になった。