2017.6.19
0からはじめるPHP#92【生誕25周年記念リファイン計画#1-導入-】
そう、そんなの作ろうとしてるんですよね(笑)
あと1ヵ月わずかで25際という、キリのいい年齢になるんですが、いい機会なのでスパゲッティーコードと化してるうちの日記をリファインしようかなって思ってるんですよね。
リファインって言っても見た目は変えないつもりですけどね。強いてあげるとすれば、URLがちょっと変わる予定です。
どれぐらいスパゲッティーなのかっていうと、このために既存のコードを解読しようとしたら、パッと見て理解できなかった程度にはぐちゃぐちゃです(笑)
日記システムのリファインは過去に一度やってはいるんですが、それよりも多少大規模になります。
具体的には、手続き型だったコードをオブジェクト指向に書き換えます。
というのも、本来オブジェクトの情報として持たせれば引きずり回さずに済んだ、日付などの情報のせいで非常に見づらいコードになっており、また新たな機能追加する際のネックになります。というか実際なってます(笑)
なので、拡張性を持たせるためにコードを整形したい、というのが今回の主たる目的ですね。
一応、研修中にちまちま作ったコードがあるので紹介します。
日記オブジェクトの雰囲気はこんな感じです。
個人開発でいちいちゲッターセッターメソッド作るのがめんどくさすぎるので
ほぼ全てのメンバがpublicという掟破りのクラスを作ってしまったのですが、別に隠蔽する必要ないから許してほしいですね。
この日記オブジェクトが、日記の情報全てを持っているので、こいつをチョメチョメすることで、例えば「いま扱っている記事のタイトルを取得する」とか「いま扱っている記事の日付を参照する」といったことが容易になります。というのも、その辺はコンストラクタで全部登録しているからですね。
あと革新的なのが、さっきURLがちょこっと変わるって話しましたが、いままでそれぞれのファイルでHTMLを書いていましたが、テンプレート化することになりました。
しかし普通にテンプレートにしてもその構造上美しく書けないので、ここでApacheの
Rewrite 機能というものを使い、
クエリパラメータをスラッシュ区切りで実装するという手段をとります。
なので最初にGETを取得しているんですね。
あっ、ちなみにこのコードまだテストとかしてないのでたぶん動かない気がします笑
他にもいろいろ頑張っているんですが、こんな感じのシステムを7月中に完成させられたらなーって思ってます。結局カクテルデータベースもそれ以降に持ち越しですかね。なんで思うように進まないんだろう笑