書き置き。

ほぼ勉強の記録みたいなもんです。

Spika の MySQL 対応を見てみた

Spika-Server の MySQL対応が終わったということなのでコードを見てみた。

cloverstudio/Spika-Server at develop

MySQL対応 の関連処理

  • init.php
    • MySQLの接続設定をdefineしている
    • クラウドに置くことを想定してか、$_ENV に設定があればそれが使われるようになっている
  • src/Spika/Db/MySql.php
  • 【追記】DB接続まわりは Doctrine/dbal が使われている。
    • 一部のメソッド createUseraddContact等で SQLではなく配列を渡してINSERT文を発行している。

雑感

DB関連

  • お仕事や個人プロジェクトでも、DBを使うときはORMやクエリビルダ的なものを使うことが多かったので、SQL文を直書きしているのが(自分にとっては)斬新だった。
    • それが悪いという意味ではなく、SQLでぱっと見何をしたいメソッドなのかわかりやすかったので、これはこれで良いと思う。
  • DBアクセスを1ファイルに集約
    • 今後ファイルが肥大化して管理が大変そう。
    • 見通しも悪くなってしまう。

その他

  • クラスやメソッドのコメントが殆ど無い
    • 特に個人プロジェクトで、集中して一気に作っているとやってしまいがち。
    • とはいえ数カ月後の自分にグーパンチされないためにも、(オープンソースで公開するならなおさら)コメントはできるだけ書いたほうが良いと思う
  • インデントがバラバラ クラス毎、メソッド毎というわけでもなく、1行の中でタブとスペースのインデントが混在しているのは、統一したほうが良い
  • PHPUnitのインストールが重複
  • composer を使ってインストールするのであれば、Vagrantfile に書かれたセットアップ用シェルスクリプトに書かれている pear でのインストール処理は無くても良さそう
  • インストーラー画面ができてる、イイネ!

初期のサーバー側ソースコードが酷くて話題になってたプロジェクトだけど、その後のフレームワーク導入やMySQL対応、インストーラー作成など、対応早い。この調子で頑張って欲しい。手伝えるとこあったらPR送るかも。

昨日、布団の中で見つけてgithub上でソースコードを眺めながら寝落ち、今会社でお昼休みに書いてるのでまだ動かしてみてない。今晩時間が取れたら動かしてみよう。

[メモ]

Spika 作者の @cloverstudio1 さんにこのブログが見つかってツイートされてた。大したこと書いてないのに申し訳ない、、、、。