読者です 読者をやめる 読者になる 読者になる

とあるエンジニア系ライダーの日常

Webエンジニアの話、バイクの話

phpとslim3で汎用掲示板を作ってみた

ふとしたきっかけからphpslim3を使って汎用掲示板を作ってみました。

ライセンス表記とか全然してないけどオープンソースなので、

プルリクもらえると嬉しいですw

github.com

Slim3について

phpのマイクロフレームワーク

Slim Framework - Slim Framework

ORマッパーとか機能は全然ついてなく、

後からComposerでvendorに追加していく感じ。

CakePHPみたいに規則も厳しくなく、設定ファイルも簡単なので、

いろいろ組み合わせて作っていくと案外いいかなと。

ただ、リクエストをさばくのがroutes.phpだけなので、

機能が増えるとこれがかさばって可読性下がりそう。

routes.phpから完全にそれぞれのページのパラメーター関係のロジックを

抜き出して、そこに全部渡せばすっきりするかな?

今回の構成について

こんな感じで、バリデーションとCSRFはComposerでありものを突っ込んだ。

やっぱり車輪の再開発はしたくない。

で、routes.phpではそういったパラメーターの処理だけさせて、

あとはapp/src/usecaseの中のロジックでDBとかの処理をしている感じ。

これだけでローカル試せます

実はscotch-box(LAMPvagrant box)を入れているので、

vagrantとvirtual boxがインストールしてあれば、

cloneしてvagrant up、

MySQLddl.sqlのユーザー作成とテーブル作成をして、

Document Rootを/public(index.php)があるにすれば動くはず。

PHPで開発するならローカルのエディター使いながら随時確認できる

scotch-boxおすすめ!

Scotch Box ♥ A Vagrant LAMP Stack That Just Works

TODO:やりたい、やりたかったこと

- ほんとはDDDで作りたかったので、

時間があったらusecaseからmodelとrepositoryを切り出して、

もっと柔軟性を持たせたいかな。

- DIとnamespaceを適当にやってしまった所をちゃんと定義

したいかなと。

- エラーハンドリングとかトランザクションが適当なので、

もっとしっかりしたいなと。usecase内でトランザクションがはれる様なイメージ。

まとめ

Slim3自体は簡単かつすっきりとした小規模システムをつくりたい、

リクエストのハンドリングとテンプレートエンジンとかだけ使えれば十分。

あと、そういった作りにしておいてロジックを分離することで、

今後フレームワーク間の載せ替えや

バージョンアップも簡単になるんじゃないかなと。