karinto

karintoの変更点とか

気が付けば長いこと書いてませんでしたが、karintoは結構変わりました。 routing定義を明示的に書かなければならなくなった karinto::dispatch('/foo', 'myapp_foo'); とか routing定義で指定するのは関数に限らずcallback型ならOKになった 関数はもちろんOK…

routing定義とか面倒になった

そしてまたしても心変わり。実行する関数名をPATH_INFOから自動的に決定する仕様に戻しました。routing定義とか面倒くさいし、正規表現で定義とか複雑なことやりたくないし。 output('This is a test page.'); } // GET /foo function get_foo(karinto_reque…

githubに引っ越しました

karintoですが、リポジトリの場所をGoogle Codeからgithubに移転しました。 http://github.com/hiroy/karinto/tree/master その際に仕様を変更して、PATH_INFOから実行する関数名を自動的に決定する方式から、実行する関数名をあらかじめ定義しておかなくて…

karintoは関数書いていく感じに戻りました

迷走ばっかりしてますけど。Limonadeとか見てて、関数ベースも悪くないじゃんとか思ったのでkarintoを再び関数で実装を書いていく感じに戻しました。クラスとか書かなくていいです。次のコードで、/index.php/fooを表示します。/index.php message = 'Hello …

karintoの実装がクラスベースになった

従来karintoを利用するためにはリクエストメソッドとPATH_INFOをベースにした名前の関数を作る必要があったが、共通処理を継承とか使ってやりたいよね、そもそも同じURLを扱うのは同じスコープにあるべきたよね、ということでクラスを作るように変更しました…

クラス実装に変えようかなとか

karintoを関数実装からクラス実装に変えることを何となく考えている。 name = $req->name; $res->render(); } 今まで上のように書けていた実装を、次のように書くようにしようかなとか。 name = $req->nam…

db/cacheクラス復活、右往左往

なんてことを書いて実際にdbとcacheのクラスを削除して一旦コミットまでしたんだけど、まぁやっぱり必要だなぁと思って復活させました。プラグイン機構を作って外出ししようかとも考えたのですが、どのプラグイン使うか宣言して、必要なインスタンスを生成し…

より薄く

karinto_dbとkarinto_cacheのクラスを廃止、karintoクラスに中途半端に存在してたvalidationメソッドを2つ廃止しました。好きなのを選べた方がやっぱりいいと思うし、結局自作することになる部分でもあると思うから。そんなわけで、karintoはリクエストとレ…

関数を別のファイルに分けることもできます

そういえば書いてなかったけど、karintoは実装を1ファイルではなく関数別のファイルにすることもできるようにしてあります。karinto::$function_dirを指定して、そこに関数名と同名のPHPファイルを配置してあげればOK。エントリポイントではkarintoの起動だ…

簡易的なflash機能つけた

一時的にメッセージを格納したい場合はあると思うので、karinto_sessionにflashという名前で値を保存すると次に取り出したときにその値が自動的に破棄されるような仕組みを用意した。flashメソッドを用意してもよかったのだが、本来多用されるべきではない機…

CookieStoreの問題点

karintoのkarinto_sessionはCookieStoreベースなセッション管理を行うことができるが、Cookieに値を保存するので気を付けなくてはいけないことがいろいろある。 値はユーザーが閲覧可能 見られたら困るデータは入れない 過去のCookieを保存しておけばセッシ…

関数を起動する方法

karintoの関数起動でいろいろやったけど、どうもReflectionFunction::invokeの引数にオブジェクトを渡しても参照渡しにならないみたい。参照渡しにしたい場合は明示的に&を引数の先頭に付けないとダメなようだ。この辺の使い勝手はcall_user_func_array関数…

karinto_sessionはCookieStoreになりました

思い立ったうちに、ということでkarinto_sessionはPHPのセッションの仕組みから逸脱してCookieStoreベースになりました。これでレンタルサーバーでも心置きなくセッションが使えるよ!ソース: http://code.google.com/p/karinto/source/browse/trunk/karinto…

CookieStoreなセッションの試み

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復活

思うところあってkarinto_session復活させました。数ページの管理画面とか作ろうとした場合にやっぱりセッション使うよな、と思ったので。http://code.google.com/p/karinto/source/browse/trunk/karinto.php?r=36

karinto_responseのメソッド名短くした

karinto_responseクラスのメソッドを短い名前に。具体的には: render_text → output render_template → render fetch_template → fetch redirect_to → redirect status_code → status やっぱりmoonyと同じ命名になった…。そして気付くとCatalystと同じような…

karinto_session廃止した

というわけで紆余曲折しましたがkarinto_sessionクラスとkarinto_request::sessionメソッドを廃止しました。レンタルサーバーでセッションとか普通使わないと思うし。どうしても使いたい場合はPHPなら$_SESSIONとセッション関数で十分だと思うよ(karinto_se…

karinto_sessionやっぱり廃止するかも

自分で使わなさそうということもあり、karintoのsessionクラスをやっぱり廃止しようとか考えたり。すっぱり廃止してしまうかもしれません。PHPでセッションを扱う場合、memcacheとかDBにデータを乗せるケースがほとんどで、実際問題単純なsession関数のラッ…

マジックメソッド使ってる

moonyでは意図的にマジックメソッド使わないようにしてたんだけど、karintoではむしろマジックメソッドがあればいいやとか思いはじめてる(__setとか__getとか__issetとか__unsetとか)。 session(true); $session->name = $req->nam…

1ファイルでできてる理由

今のところkarintoが1ファイルでできてるのは(クラス全部入り)、レンタルサーバーとかに放りこみやすいように。ファイルをロードするコストを考えて、というのはあまりない。PHP5からautoloadが導入されてその辺はあまり意識しなくてよくなったし、そもそ…

メインはkarinto

年越し前にひとつ決定。moonyの開発をしばらく停止して、しばらくkarintoだけ開発する感じにします。いちいち宣言するようなことでもないけど一応区切りとして。バグとか見つけたら直しますけど。手っ取り早さという意味でmoonyは中途半端になっていたし、ち…

karinto_session作った

セッションは扱わないと言った舌の根も乾かぬうちにkarinto_sessionクラスを作ってみたり。補助的に使えるのはありかなーと思いまして。 session(true); $user_id = $session->user_id; } なんかクラス増えてきたのでファイル分割するかどうか悩む(今は全部…

セッションは扱わない

karintoではセッションを管理するクラスとか作らない。レンタルサーバだとセッションとか使いづらいというのもあるし、勝手にsession_startするような仕様だとsession_set_cookie_paramsみたいなセッション開始前に実行しなければいけない処理をどこでフック…

karinto作りはじめた

あ、そうそう。何か作りはじめましたよ。 http://code.google.com/p/karinto/