« Twitter BootstrapでResponsive Designなど | Main | Processingでスーファミ風コントローラを扱う »

2012.03.16

ModelをRuby、ViewをPHPで書く

とあるRubyで書いたサイトにFacebookアカウントによるログイン機能を追加したいのだが、RubyよりもPHPの方が実例が豊富なので、PHPで書き換えたくなった。

とは言っても、フルスクラッチで書き換える根性もないので、既存のModelの部分はRubyのままで、Viewの部分だけPHPにすると楽かな、と考えている。

現在のサイトはユーザから直接見えるのがメイン(index.cgi)と詳細(detail.cgi)の2画面構成。それぞれに裏方としてModelを担当するCGIが動いており、Model部分は某社のAPIと独自DBを組み合わせてJSONで出力するという役割。

 ユーザ → View → Model ( → MySQLと某API)

元々はViewとModelが、そんなにクッキリ分かれていなかったのだが、Androidアプリを書いた時に、

 ユーザ → Androidアプリ → Model

という構成にし、Web版とAndroid版でModelを共用した方が将来的に楽かなと思い、某社のAPIと互換性のあるJSONを出力するModelを作ったという経緯がある。

で、AndroidアプリからModelを叩けるのだから、PHPで叩けないわけもなく、タイトルのようにViewはPHP、ModelはRubyという組み合わせも不可能じゃないのかと。

せっかくの思考実験なので懸念事項を列挙する。

ログ形式が揃わない

RubyではLoggerというライブラリを使っているが、PHPも同じ形式で出力できるものを使うか、もしくは共通で使える方式に切り替えないとログ管理が面倒そう。

StackOverflowでも、そんな感じの質問・回答があったので、そのうち試してみようかと思う。

http://stackoverflow.com/questions/3953217/does-php-have-built-in-debugging-logging-like-ruby-on-rails-logger-info-to-a-d

セッション管理

これは、ちょっと苦労しそう。ModelとViewの話を書いたが、ControlerもPHPに書き換えるのは面倒そうなので、Rubyとセッションを共有できたらいいなと思ったら、これもStackOverflowで議論されていた。ただ、正直よくわからない。

http://stackoverflow.com/questions/3097451/sharing-a-session-between-ruby-and-php

あと、何かあるかな。まあ、すぐに着手するわけではないので、のんびり考えてみよう。

--

PHPで、これと同じようなハンドブックがあるといいんですけどね。

Ruby逆引きハンドブック
Ruby逆引きハンドブック るびきち

シーアンドアール研究所  2009-05-25
売り上げランキング : 115374


Amazonで詳しく見る
by G-Tools

|

« Twitter BootstrapでResponsive Designなど | Main | Processingでスーファミ風コントローラを扱う »