karinto
気が付けば長いこと書いてませんでしたが、karintoは結構変わりました。 routing定義を明示的に書かなければならなくなった karinto::dispatch('/foo', 'myapp_foo'); とか routing定義で指定するのは関数に限らずcallback型ならOKになった 関数はもちろんOK…
そしてまたしても心変わり。実行する関数名をPATH_INFOから自動的に決定する仕様に戻しました。routing定義とか面倒くさいし、正規表現で定義とか複雑なことやりたくないし。 output('This is a test page.'); } // GET /foo function get_foo(karinto_reque…
karintoですが、リポジトリの場所をGoogle Codeからgithubに移転しました。 http://github.com/hiroy/karinto/tree/master その際に仕様を変更して、PATH_INFOから実行する関数名を自動的に決定する方式から、実行する関数名をあらかじめ定義しておかなくて…
迷走ばっかりしてますけど。Limonadeとか見てて、関数ベースも悪くないじゃんとか思ったのでkarintoを再び関数で実装を書いていく感じに戻しました。クラスとか書かなくていいです。次のコードで、/index.php/fooを表示します。/index.php message = 'Hello …
従来karintoを利用するためにはリクエストメソッドとPATH_INFOをベースにした名前の関数を作る必要があったが、共通処理を継承とか使ってやりたいよね、そもそも同じURLを扱うのは同じスコープにあるべきたよね、ということでクラスを作るように変更しました…
karintoを関数実装からクラス実装に変えることを何となく考えている。 name = $req->name; $res->render(); } 今まで上のように書けていた実装を、次のように書くようにしようかなとか。 name = $req->nam…
なんてことを書いて実際にdbとcacheのクラスを削除して一旦コミットまでしたんだけど、まぁやっぱり必要だなぁと思って復活させました。プラグイン機構を作って外出ししようかとも考えたのですが、どのプラグイン使うか宣言して、必要なインスタンスを生成し…
karinto_dbとkarinto_cacheのクラスを廃止、karintoクラスに中途半端に存在してたvalidationメソッドを2つ廃止しました。好きなのを選べた方がやっぱりいいと思うし、結局自作することになる部分でもあると思うから。そんなわけで、karintoはリクエストとレ…
そういえば書いてなかったけど、karintoは実装を1ファイルではなく関数別のファイルにすることもできるようにしてあります。karinto::$function_dirを指定して、そこに関数名と同名のPHPファイルを配置してあげればOK。エントリポイントではkarintoの起動だ…
一時的にメッセージを格納したい場合はあると思うので、karinto_sessionにflashという名前で値を保存すると次に取り出したときにその値が自動的に破棄されるような仕組みを用意した。flashメソッドを用意してもよかったのだが、本来多用されるべきではない機…
karintoのkarinto_sessionはCookieStoreベースなセッション管理を行うことができるが、Cookieに値を保存するので気を付けなくてはいけないことがいろいろある。 値はユーザーが閲覧可能 見られたら困るデータは入れない 過去のCookieを保存しておけばセッシ…
karintoの関数起動でいろいろやったけど、どうもReflectionFunction::invokeの引数にオブジェクトを渡しても参照渡しにならないみたい。参照渡しにしたい場合は明示的に&を引数の先頭に付けないとダメなようだ。この辺の使い勝手はcall_user_func_array関数…
思い立ったうちに、ということでkarinto_sessionはPHPのセッションの仕組みから逸脱してCookieStoreベースになりました。これでレンタルサーバーでも心置きなくセッションが使えるよ!ソース: http://code.google.com/p/karinto/source/browse/trunk/karinto…
Rails 2からデフォルトになってるCookieStoreなセッションいいなーと思ったのでkarinto_session2とか試しに作ってみた。どうするか未定。レンタルサーバーでPHPを使うときって、ストレージを考えるとセッションが使いづらい。DBに保存してもいいけど管理面倒…
renderメソッドに手を入れてテンプレート描画するときにいちいちテンプレート名指定しなくていいようにした。標準で実行されてる関数名と同じテンプレートが読み込まれる仕組み(get_fooならget_foo.phpというテンプレート)。 message = 'Hello World!'; $r…
簡単なベーシック認証のための機能追加してみた。 output('Hello World!'); } http://code.google.com/p/karinto/source…
思うところあってkarinto_session復活させました。数ページの管理画面とか作ろうとした場合にやっぱりセッション使うよな、と思ったので。http://code.google.com/p/karinto/source/browse/trunk/karinto.php?r=36
karinto_responseクラスのメソッドを短い名前に。具体的には: render_text → output render_template → render fetch_template → fetch redirect_to → redirect status_code → status やっぱりmoonyと同じ命名になった…。そして気付くとCatalystと同じような…
というわけで紆余曲折しましたがkarinto_sessionクラスとkarinto_request::sessionメソッドを廃止しました。レンタルサーバーでセッションとか普通使わないと思うし。どうしても使いたい場合はPHPなら$_SESSIONとセッション関数で十分だと思うよ(karinto_se…
自分で使わなさそうということもあり、karintoのsessionクラスをやっぱり廃止しようとか考えたり。すっぱり廃止してしまうかもしれません。PHPでセッションを扱う場合、memcacheとかDBにデータを乗せるケースがほとんどで、実際問題単純なsession関数のラッ…
moonyでは意図的にマジックメソッド使わないようにしてたんだけど、karintoではむしろマジックメソッドがあればいいやとか思いはじめてる(__setとか__getとか__issetとか__unsetとか)。 session(true); $session->name = $req->nam…
今のところkarintoが1ファイルでできてるのは(クラス全部入り)、レンタルサーバーとかに放りこみやすいように。ファイルをロードするコストを考えて、というのはあまりない。PHP5からautoloadが導入されてその辺はあまり意識しなくてよくなったし、そもそ…
年越し前にひとつ決定。moonyの開発をしばらく停止して、しばらくkarintoだけ開発する感じにします。いちいち宣言するようなことでもないけど一応区切りとして。バグとか見つけたら直しますけど。手っ取り早さという意味でmoonyは中途半端になっていたし、ち…
セッションは扱わないと言った舌の根も乾かぬうちにkarinto_sessionクラスを作ってみたり。補助的に使えるのはありかなーと思いまして。 session(true); $user_id = $session->user_id; } なんかクラス増えてきたのでファイル分割するかどうか悩む(今は全部…
karintoではセッションを管理するクラスとか作らない。レンタルサーバだとセッションとか使いづらいというのもあるし、勝手にsession_startするような仕様だとsession_set_cookie_paramsみたいなセッション開始前に実行しなければいけない処理をどこでフック…
あ、そうそう。何か作りはじめましたよ。 http://code.google.com/p/karinto/