phpとslim3で汎用掲示板を作ってみた
ふとしたきっかけからphpのslim3を使って汎用掲示板を作ってみました。
ライセンス表記とか全然してないけどオープンソースなので、
プルリクもらえると嬉しいですw
Slim3について
Slim Framework - Slim Framework
ORマッパーとか機能は全然ついてなく、
後からComposerでvendorに追加していく感じ。
CakePHPみたいに規則も厳しくなく、設定ファイルも簡単なので、
いろいろ組み合わせて作っていくと案外いいかなと。
ただ、リクエストをさばくのがroutes.phpだけなので、
機能が増えるとこれがかさばって可読性下がりそう。
routes.phpから完全にそれぞれのページのパラメーター関係のロジックを
抜き出して、そこに全部渡せばすっきりするかな?
今回の構成について
- FrameWork
http://www.slimframework.com/ - bootstrap3
http://getbootstrap.com/components/ - DB
http://phpocean.com/tutorials/back-end/workouts-with-slim-3-database-with-pdo-and-eloquent/51 - VALIDATION
http://respect.github.io/Validation/docs/install.html - CSRF
http://log.deprode.net/logs/2015-10-01/
こんな感じで、バリデーションとCSRFはComposerでありものを突っ込んだ。
やっぱり車輪の再開発はしたくない。
で、routes.phpではそういったパラメーターの処理だけさせて、
あとはapp/src/usecaseの中のロジックでDBとかの処理をしている感じ。
これだけでローカル試せます
実はscotch-box(LAMPのvagrant box)を入れているので、
vagrantとvirtual boxがインストールしてあれば、
cloneしてvagrant up、
MySQLでddl.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自体は簡単かつすっきりとした小規模システムをつくりたい、
リクエストのハンドリングとテンプレートエンジンとかだけ使えれば十分。
あと、そういった作りにしておいてロジックを分離することで、
今後フレームワーク間の載せ替えや
バージョンアップも簡単になるんじゃないかなと。