Ar-Rihla

旅と写真とあといろいろ

Laravelは開発環境をそのまままとめてアップロードするだけで共用LAMP鯖でも動くから感動する

f:id:kamasho:20160805122142j:plain

お名前.comの共用サーバーに開発中のLaravelプロジェクトをディレクトリまるごとアップしたら普通に動いて身が震えた話。

Javaグラマー歴が長いのでPHPのこういう適当にやって適当に動くところすごいと思う。Cakeでも似たような感じなんだろうか。

Laravel5.1でWEBサイトを作ってる

普段はもっぱらJava(最近はApacheじゃない方のSpark + Jettyとか)でやってるんだけど、たまには他の言語に馴染もうと思って、今回の案件はPHPを採用した。

案件自体はある組織のWikiみたいなシステムを組むというもの。要件だけ満たせばいいのでフレームワークの指定とか特に無し。

最初はプレーンのPHPをガリガリ書いてレガシーすぎるクソみたいなコード量産してたんだけど、旧石器時代めいたウンコードに流石に罪悪感を覚えてフレームワークの導入を決意。

CakePHPとLaravelとPhalconで悩んだけど、世界的にはすでにCakePHPを上回るトレンドらしいLaravelに決定。Phalconは一番レスポンスいいらしくて惹かれたけど、今回のプロジェクトはそこまで大きくないしアクセスもそんなにないと思うので見送った。ちなみにLaravelは遅いらしい。

blog.techstars.jp

データモデル作らなくていいの楽すぎない?

LaravelじゃなくてPHPの仕様だけど、いちいちデータモデル作らなくていいのはすごい楽ね。メンバ変数の宣言すらいらないってどーなっとんねん。

その分コンパイルエラーがないからコーディングの時点でエラーに気づけないとかあるけど、まあその辺りはトレードオフだよね。あとは型がないのが気持ち悪い。

SparkとLaravelを比較してみる

あくまで自分が使ってみた範囲で。いかんせんWEB開発の経歴自体がそんなにないから凄まじく適当。

Spark Laravel
言語 Java PHP
IDE eclipseが有能すぎる Sublime3で十分
コーディング eclipseが有能すぎて楽 普通に楽
デバッグ やりやすい やり方がよくわからん
テンプレートエンジン FreeMarker Blade
DB周り 別途導入 標準装備
デプロイ ビルドして配置して組み込みならサーバーを起動 置くだけ
レンタルサーバー Javaが動くレンタルサーバーは少ない ロリポですら動く

まあそもそもの用途が違うだろうしあんま意味ない比較。Laravelは今まで触った中だとRailsに一番近い気がする。Javaで言えばSeasarかな。

手っ取り早くWEBサービスを組むならかなり楽。でもリファクタリングとかやりにくそうだけど、どうなんだろう。

DB周りも、定義を数行書き換えればすぐ繋がる。DB::table("tablename")->get()でSELECT *が走るし、便利。Sassとかも標準対応だし至れり尽くせり感がある。

お名前.comの共用サーバーに配置してみた

www.onamae.com

最初はcurlでcomposer突っ込んでLaravelインストールしようとしたんだけど、なんか色々足りないしapt-get(もしくはyum)が動かなかったり、そもそも共用サーバーだしで無理だった。

ので、ローカル環境のLaravelプロジェクトをまるごとZIPに圧縮してFTPからアップロード。SSHからunzipして適当なディレクトリに配置。.envを編集してDBの定義を書き換えてみた。

動いた。

えぇ……これだけで動くんか。すごいね。

途中phpMyAdminを突っ込んでdrop table走らせたらWAFにSQLインジェクションだって罵られた上に403しか返してくれなくなったりしたけど、まあその辺は蛇足。

しかしそれにしても色々と楽だ。PHPが流行ってる理由がわかった気がする。

国内じゃまだCakePHPの方が強いみたいだけど、Laravelもおすすめ。(CakePHP触ったことないけどな!)

Laravel リファレンス[Ver.5.1 LTS 対応] Web職人好みの新世代PHPフレームワーク

Laravel リファレンス[Ver.5.1 LTS 対応] Web職人好みの新世代PHPフレームワーク