Reports

第11回 PHPで何か作ろうかいに参加しました

 Author:fumiyasac

IMG_0398

以前にブログでも書いた第4回Rubyで何か作ろうかいのPHP版でもあるPHPで何か作ろうかいに今回も参加しました。今回も自分が作っているサービス(ほったらかしになっていたやつ)の続きを構築するために参加してきました。

1. 今回のテーマは何か

今回のサービスは自分がCakePHPで作ろうとしている、自分が東京に来てもうかれこれ8年暮らしている街の「珍しいもの」を紹介するブログの管理画面を構築することにしました。
一応公開予定は今年の夏頃を予定しています。
大塚珍しいもんStore
前回は一応お問い合わせフォーム部分の構築を行ったので、今回は以下の4つを実装してみることにしました。

  1. 管理画面構築の準備
  2. CSVダウンロード機能
  3. Ajaxで管理画面のデータ削除
  4. fancyboxで管理画面のデータ詳細表示

そして今回は@yandoさんがいらっしゃるとの事でしたので、とても楽しみにしていました。
※僕の質問にも丁寧に回答下さりまして本当にありがとうございました。

2. 何げにハマってしまった

今回で想定外だった点は以下の通りです。

  1. CSVダウンロードの部分
  2. Ajax経由での削除処理
  3. 管理画面の設計

CSVの部分は $this->layout = false; がうまく効かずに、テンプレートがダウンロードされてしまうという現象が起きてしまいました。今回はapp_controller.phpで管理画面とブログ画面で読み込ませるレイアウトテンプレートを分ける処理を書いたのですが、そこにレイアウトの表示をさせないアクションに対する記述を書いて対処しました。
※これが良いか否かはちょっとわかりませんが、応急処置と言う事で。

app_controller.php

  1. if(!empty($this->params['control'])){
  2.   //CSV出力の際はレイアウトを使用しない
  3.   if($this->params['action'] === 'control_csvdownload'){
  4.     $this->layout = false;
  5.   }else{
  6.     $this->layout = 'common_format_control';
  7.   }
  8. }

CakePHPは1.3系を今回は使っていたので、RequestHandlerコンポーネントを使って処理をする部分だったり、debugKitが悪さをしていた部分を発見したり等、CakePHP2.x系との違いを痛感させられる部分が多かった様に思います。今回のサービスは取り急ぎは1.3系で構築することにしますが、今後はきちんと2.x系を使います。

また、管理画面の設計が甘かった(HTMLでテンプレートを作っただけ)ので作業は思ったより時間を食ってしまった感じがしました。特にJSが絡む様な処理の部分はデザインの段階でしっかりアタリをつけないと構築段階で迷うんだなと感じました。

3. 今回の振り返り

折角サービスを自分で作るので、これはどんな形で作ったかというのはきちんとドキュメントにまとめて残して行こうと思います。
(あとはテストコードも)

※追記
@honbinさんをはじめ、参加者の皆様本当にありがとうございます。今後も継続的に参加したいと思いますので宜しくお願い致します。