gallu’s blog

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

あえての「WAF(FW)使わない」PHPサイトの開発(副題: でなきゃ定期的にバージョン上げろ)

微妙暴言のお時間でございます*1
いやまぁ昨今、サイト作るのにWAF/FW(Web Application Framework で Framework の略な)を使わない、って選択肢も稀かなぁと思っております。
……いやまぁ「うちのFWはSmartyです」とか言われた頃が(うっすらした殺意と共に)懐かしいのですが、昨今はそーゆー事もなく、Laravelとかチョイスされる事は多いんじゃないかと思います*2

でまぁ、別にFWがLaravelでもCakePHPでもSlimでもSymfonyでもYiiでもPhalconでもZend FrameworkでもFuelPHPでもCodeIgniterでもBEAR.Sundayでも ちいたん でもKonahaでもEthnaでもMojaviでもPiece Frameworkでもいいのですが*3 *4
割と気になるのが「そのFWのサポート寿命」と「メジャーバージョンアップにおけるハードルの高さ」。

勿論理想としては「FWのバージョンアップに合わせてこまめに調整とリファクタをしてちゃんとついていく」事で、それが出来るんならどのFW使ってもよいかと思うんですよ……次点は「FWのサポートが終了する時」で、その時に「どうするの?」ってあたりがちゃんとしているんなら。

ただ、割と見かけるのが
・FWのバージョンアップはしない(マイナーとメンテナンスは上げるけどメジャーは上げない、とか、メンテナンスは上げるんだけどマイナーメジャーは上げない、とかも含む)
・FWが「新しいバージョンのPHP」に対応していないからPHPのバージョンを上げない
ってスタンス。

いや別に「3ヶ月で終了するサービス」ならよいんですよ?
ただ、それが「年単位でビジネス上の計画も立っている」ような、それなりに末永いサイト(になるといいなぁ)である場合、ちょっとそれは「どうなんだろう???」と。

ちなみに最近「ローンチのタイミングですでに"Security fix期限が切れている"バージョンのFW*5をお使いになりやがってらっしゃる」ケースとかを以下検閲削除。
……じゃぁそれが「珍しい話か?」と問われると「割と見かける」んですよねぇ……… 勘弁してくれ orz

そーゆーのを数見てしまうと。
ふと「FW使わないで作ったほうが、PHPのバージョンはコンスタントに上げる事が条件だけど、より安全に回せるんじゃなかろうか?」とか思う事があったりするのですよ。
……いやまぁ「PHPのバージョンをコンスタントに上げる」事自体のハードルが高いんだろうけど……多分……高いかなぁ?……おいちゃんのやり方だとあんまり高くないっていうかマジでコンスタントに上げてるけど困った事ないし……そのうちその辺のノウハウ書こうかしらん? おいといて。
下手にFWに「振り回されて」「FW都合で"バージョン上げられません」って言うくらいなら「plainなPHPで開発してみたら?」とか思う事はまぁ、あったりするわけでございます。
まぁ「FWがやってくれていること」を全部自前、なので、相応のハイスペックスキルが求められますけどねぇ……*6 *7

とまぁ色々と考えたりするので。
ナニが言いたいかっていうと「運用までちゃんと想定して開発しようず、選択しようず」って話なんだけど、その辺、割と浸透してないような気がするんですよねぇ……という、「気付いて欲しい」ネタ。

ちな、Laravelは「LTS単位で乗り換えるとよいのかしらん?」って思ってたら、Laravelに熟達している複数人から「やめとけ。コンスタントにこまめに上げるのが一番楽」って言われたので、そーゆーもんらしいす。
おいちゃんは最近、Slimがお気に入り(自前のFW、どうしましょうかねぇ???)。

Slim、3から4へは「まぁまぁ書き換えがいる」んだけど「coreロジックは多分ほとんどいらない」ので……ニーズがあるんなら「Slim 3から4への移植方法」とか、どこかで書いてもよいのかも、って感じでございます。

……って話が、もうちょっと活発に行われるとよいんですけどねぇ。
PHPカンファレンスとかでしゃべれば?」ごもっともでございます orz *8

*1:いつものこと、って気がせんでもないんだが、まぁ

*2:個人的には嫌いですが、まぁ

*3:順不同

*4:色々微妙だったり懐かしかったりするんだが気にしちゃいけない

*5:えぇLaravelでございましたともさ

*6:古参だと割といけそうな気もするが

*7:……思い返すに「絶対無理だろう」と思われるメンツも相応にいらっしゃるので以下検閲削除

*8:なんとか参加は出来そうですが、ちょい前まで、参加できるかも微妙だったのですよ orz