知の壺は管理人「もとやん」がたまに書きたくなったことを書いているノートです。大体誰かに宛てて書いています。2019.10.062000年代後半ぐらいからは、ウェブ開発の際には何らかのフレームワークを使用するのが当たり前になっていたと思います。(まぁJava界隈で言えば90年代からStrutsとかありましたけども、Web屋的にはRails以前/以降的なエポックがあると思います。)私もご多分に漏れずサイトの規模の大小を問わず、何らかのフレームワークを使って開発していましたが、最近のパッケージマネージャ(PHPの場合はComposer)とライブラリ整備具合の進歩もあって、10ページ未満ぐらいのウェブサイトならフレームワーク使わずに書いたほうが楽なんじゃねーの?と思ってきました。最近だとごく小規模なサイトを作るためのマイクロフレームワークとして存在するLumenを採用したこともあるのですが、微妙にLaravelと挙動が違うせいでハマったり(特にセッションが使えないとか)、フレームワークのバージョンアップで挙動が変わるのに追随するのが面倒で・・。最近組んでいるサイトでは必要なライブラリだけ取り込んで、基本ピュアPHPでいいのではないか?という構想で制作しています。composer.jsonは以下のような感じ。関連記事GuzzleWebAPIたたくときに使用。file_get_contentsとかcurlで処理するのが記述性低いのと、エラー処理が面倒なのでguzzle推奨。idiormライトなORM。PDOだけでも十分何とかなるとは思うが、DBまわりあれはあれでお約束的に書かないといけないことが多いので、DB周りの記述が増えてくるとしんどい時がある。将来的にでかくなりそうなシステムであれば、DBラッパーだけはしょっぱなからもっとしっかりした足回りのを使ってもよい。Doctrineとか。twigテンプレートエンジン。個人的には長い間「PHP自体がテンプレートエンジンなんだよ!」派でしたが、いや、やっぱ記述量多くなるわ。ことで数年前にテンプレートエンジン要る派に回帰しました。今だとtwigかbladeが良いと思います。個人的にはbladeのほうが洗練されていると思いますが、twigのほうが広く使われているので、チームの習熟度に応じてチョイスしてください。phpdotenv設定ファイルを切り出す重要なライブラリ。DBのパスやWebAPIのキー、エンドポイントなどを設定ファイル(.envファイル)に分離でき、しかも.envをgitignoreにぶち込んでおけば、DBのパスがGit経由で漏れちゃう心配もなくなる優れもの。fast-routeルーター。URLから処理部へのマッピングを担当。要はマイクロフレームワークって、小さなルーターにいくつかの標準ライブラリをくっつけたものなので、ルーターさえあればあとは何とでもなるともいえる。ルーターを自作しても大した手間ではないが、面倒なので既存のルーターを見繕ったところこれが比較的使いやすかったので採用。嫌なところがないでもないが、私にとっては許容できるレベル。valitronシンプルなバリデーションライブラリ。バリデーションエンジンは自作するのは難しくないが、ひたすら記述量が多くなるので自作したくない度が高いやつ。スターが多いものをいくつか検討してみましたが、比較的小規模なバリデーションの中ではvalitronが一番設計の筋が良いように思いましたので、こちらを採用しています。その他あとはそのタイミングタイミングでいろいろとチョイスしてく感じですね。PHPUnitとかは鉄板として、日付計算系のCarbonなども入れる率超高いです。関連記事ノリでコンピュータ将棋を開発し始めた。コメントをキャンセルメールアドレスが公開されることはありません。views試して分かった。Appsの無料版がなくなったので、無料で使えるメールサーバのニーズが個人的に上昇。ドメインたくさん持ってるので、一つのアカウントで複数ドメイン+複数アカウントを管理できるように作りこみました。無料で履歴書が作れたりするサービスなんです。これが不思議と意外に使われているっぽい。アドセンスは全くクリックされないんだけれども。views試して分かった。Appsの無料版がなくなったので、無料で使えるメールサーバのニーズが個人的に上昇。ドメインたくさん持ってるので、一つのアカウントで複数ドメイン+複数アカウントを管理できるように作りこみました。無料で履歴書が作れたりするサービスなんです。これが不思議と意外に使われているっぽい。アドセンスは全くクリックされないんだけれども。Twitter@calcsさんのツイートタイトルとURLをコピーしました。