CodeigneiterでAPIのリクエストデータの保存とviewへの出力を行うアプリを作った

前回までに、PHPを使ってTwitterやKintoneのAPIを叩いた。
でも、実際使うときは毎度リクエストを投げていたら攻撃になりかねないので、どっかのタイミングでデータを保存させる必要があるよねって思って、その辺の仕組みを作ってみた。

丁度いい機会だったので、社内に共有できるようにPHPでフレームワーク使ってみるのがいいのかなーと思ってさらっと見てたんだけど、Codeigneiter辺りがいいのかなーと思って触ってみた。バージョンは3.1.4

作ったもの

今回は、KintoneのAPIを叩いてデータを一覧表示できるようにした。

  1. 特定のURLにアクセスするとリクエストが行われて、DBに書き込まれる。
  2. 1.とは別のURLにアクセスするとDBのデータを元に一覧が表示される。

現状ブラウザからアクセスできるうえ、アクセスする度リクエストが飛ぶし、DBへの書き込みも更新じゃなくて追記する形なのでその辺は改善したい。

つまったところ

DBとモデル周りがよく分からなくて止まっていた。
チュートリアルの記述を参考に進めていたんだけど、DBの接続が出来てなかったり、フィールドの型が違ってたりでなかなか進まなかった。

分かってくると楽しい

これまでMVCフレームワークって全然触ったこと無くて、そもそもMVCの考えなんて大学の頃の記憶でふんわりとしか覚えてなかった。

とりあえずチュートリアルやってみたら、ViewからController、Modelでの処理がざっくりわかった。割りと シンプルで分かりやすい 内容。
シンプルなので、こうしたらいいんじゃない?っていうのもやりやすいし役割によってファイルを分けているので見やすい印象だった。

ただ、DBに最初のフィールドを作る所で、「このクエリをコピペするんだ」って感じで書かれてるところがあって、後々自分でやるときに困った。
どうせならマイグレーションスクリプトでやりたいなと思ったんだけど、未だに上手くいってない。この辺も含めてもう少しブラッシュアップしたらGithubにあげようと思う。

おまけ:今回使ってみてよかったもの

  • codeigniter - Atom
    Codeigneiterのスニペット。ciの後にキーワードを打つとコードが展開される。ControllerやModelなんかの毎度書く記述もぱっとだせるし、展開前のキーワードも想像しやすいので良かった。
  • kenjis/codeigniter-composer-installer
    ComposerでCodeigneiterをインストールするためのインストーラー。もともとは対応してないんだけど、これを使えばComposerでインストールして、色んな設定をやってくれる。