メニューを閉じる

テクノデジタルグループ

メニューを開く

2015.09.28

プログラミング

FuelPHP使いがRuby on Rails(4)を使ってみた

GTラボ坂東です。

FuelPHPで作ってたものをRuby on Railsで作り換える事にしたのでメモを共有します。
なぜ換えるかと言うと、私の拠点の徳島県は自治体がRailsが好きで発注要件にRubyが入っていてPHPerは差別を受けている感じがするのと、エンジニアのコミュニティに入れなくて寂しくなったからです。
世界的にはPHPが人気なのにガラパゴスですね。特にFuelPHPは素晴らしいです。必要最小限で速い。余計な物がないほぼ生PHPだからフレームワークが2013年からろくに更新されて無くてもへっちゃら。
PHPerの私がRailsの取っ掛かりになった事を書きます。Rails歴は10hぐらいなので間違ってたり適当だったりすると思います。

  1. Ruby on Rails のインストール
    私はfuelPHPはパッケージマネージャ使わずzipで解凍する派なんですけれど、railsはパッケージマネージャが優秀だそうなのでできるだけ使いたいと思います。
    レールから外れると色々不都合があるとも聞いています。
    ここの通りに構築しました。
    http://qiita.com/s_makinaga/items/570fc7e83b53e8408422
  2. とりあえず動かしてみる
    nginxでFuelPHPを動かしている開発機にRailsを同居させたいので、Railsの標準サーバーではなくUnicornというものを使ってnginx経由で動かすようにします。
    ここのとおりに構築しました。
    http://qiita.com/Salinger/items/5350b23f8b4e0dcdbe23
  3. Railsで新しいページを作るときの作法
    FuellPHPは/app/classes/controller の下を見るだけで大体分かりますよね。「http://hoge/ama/zarashi/」というページを追加したかったら、「controller/ama/zarashi.php」を置けば動いちゃう。
    でもRailsは「/config/routes.rb」にルーティングを書きます。面倒。
    http://techracho.bpsinc.jp/hachi8833/2014_02_17/15665
  4. コントローラーの作り方
    「/app/contlloers/ama/zarashi_controller.rb」を「新規作成」するのは間違い!
    Railsは「できるだけコードを書かない」という思想があるらしく、コントローラーを作る「rails generate controller」とかいうコマンドを叩く。私はEclipse使いなのでいちいちターミナル開くの面倒です。
    http://www.rubylife.jp/rails/ini/index4.html
    generateするとヘルパーとかcoffeeとかmigrationとかファイルがいっぱい作られるんですが、Railsは「不要なものはあとから消す」という文化だそうです。コレが面倒じゃなくて「rails destroy controller」ってやると一括で消してくれるんです。便利!
    でもFuelPHPにもgenerateあったんですね。知らなかった…
    http://fuelphp.com/docs/packages/oil/generate.html
  5. マイグレーション
    私はマイグレーションは生SQLで書くのが好きなんです。MyPHPAdminなんかでテーブル作ってエクスポートしてそれを貼り付け。あとクエリビルダーだと書けなかったり複雑になることも。
    Railsのマイグレーションについてはこちら。
    http://www.rubylife.jp/rails/model/index7.html
    型が「integer」とか「string」とか大雑把だなあと思ったら、「tinyint」なんて細かい指定はできないんですって。となるとPostgreSQLの変な型は使えないだろうしfuel以上に生SQLがいいのかなと思います。
  6. ビュー
    「<?」→「<%」と一括置換したらだいたい動きました。
    あと私はよく「<? isset($a) ? ‘enable’ : ”; ?>てのを埋め込んでるんですけど「isset」→「defined?」って一括置換したら動きました。
    fuelPHPの生テンプレートエンジン使ってるなら移植は楽ですね。

 

あとまだ手を付けてないんですけれどRailsにはこんな特徴があるらしいです。

  • 大体のものはgemで用意されている
    例えば、ファイルアップロードを自力実装するなんてもったいない、まずは「gem ファイルアップロード」で検索するべき。
  • Railsのアップデートに困りそう
    PHPに比べるとフレームワークのバージョンアップが頻繁で、仕様も結構変わるとのこと。しばらくはWarning出しながら動くそうですけど、リプレースが多くなりそうですね。PHPの下位互換と「implodeの歴史的理由」の雑さなんて私は好きなんですけれど。

 

開発効率良さそうなんで、しばらくはRailsで色々作っていきたいと思います。

おわり。


【記事への感想募集中!】

記事への感想・ご意見がありましたら、ぜひフォームからご投稿ください!
  • こんな記事が読んでみたい、こんなことが知りたい、調べてほしい!という意見も募集中!
  • いただいた感想は今後の記事に活かしたいと思います!

感想フォームはこちら


【テクノデジタルではエンジニア/デザイナーを積極採用中です!】

下記項目に1つでも当てはまる方は是非、詳細ページへ!
  • 自分でアプリを作ってみたい
  • ITで世の中にワクワクを生み出したい
  • 使いやすさ、デザインにこだわったWebサイトを開発したい

採用情報の詳細はこちら


Qangaroo(カンガルー)

  • 徹底した見やすさと優れた操作性で、テストの「見える化」を実現。
  • テストの進捗が見える。開発がスマートに進む。
  • クラウド型テスト管理ツール『Qangaroo(カンガルー)』

【テクノデジタルのインフラサービス】

当社では、多数のサービスの開発実績を活かし、
アプリケーションのパフォーマンスを最大限に引き出すインフラ設計・構築を行います。
AWSなどへのクラウド移行、既存インフラの監視・運用保守も承りますので、ぜひご相談ください。
詳細は下記ページをご覧ください。

https://www.tcdigital.jp/infrastructure/

最近の記事