CakePHP勉強会第4回@Tokyo:参加レポート

CakePHP饅頭

第4回CakePHP勉強会@Tokyoに参加してきました。

第4回CakePHP勉強会@Tokyo
cakephpstudy on USTREAM: . Conference

今回、勉強会としては初めて懇親会まで参加できたのですが、帰りの電車がやばくなってきたのでLTを全部聞き終えたところで退散しました。ただ、もともと興味があったところや、全く知らなかったノウハウなんかも満遍なく聞く事ができたので有意義な時間を過ごさせてもらいました。

「レポート書くまでが勉強会」って事で、メモをちょっとだけリライトして書いてみます。(長いよ)
※リンク等はあとから補足します。

candycane(yandodさん)

第4回CakePHP勉強会@Tokyo無事終了 - yandodの日記

いきなり「秘密の饅頭」配布w

candycane
    クリスマスの飴が由来(Cakeから連想で)
    誰でも使えるBTSを作りたかった

redmine(RoR)からの移植
    始めは忠実に移植していった
    CakePHPらしさも取り入れつつ

簡易調査(redmineって知ってる?)
    グー :redmine使った事ある
    チョキ:redmine知ってる
    パー :redmine知らない
    グーとチョキがほとんど。認知度高い

最近、日本で人気沸騰
    でも、Railsインストールしないといけない
    そもそもBTS自体が小難しい
    →PHPで作ってみようジャマイカ

PHP化すると
    インストールが簡単
    Railsいらない
    ビギナーでも設置して使えるBTS
    BTSのキラーアプリになる!?
    CakePHP製の代表的なアプリケーションになれるのでは?

Tracも認知度が高い
    世界では、Trac優位。だけど未だにMantisとか人気
    ロシアでもredmine人気

candycaneをどうしたいか
    WordPress、Pukiwiki、XOOPS、phpMyAdmin
    これらの共通項は・・・
        インストール簡単
        PHPバージョンや拡張に依存しない
        他の手段があっても便利だから使ってしまう。
        PHP以外の言語のユーザーも使ってしまう(Railsユーザが全員tDiaryつかってるわけではない)

誰にでも使える課題管理システム
    コマンドなしでインストール
    PHP4でも動かす
    Redmine+オリジナル
    Pukiwiki記法をサポート(yandodさんがそうしたかったw)

歴史
    2009/02/某日:yandod思い付き、iogi名前を決める
    2009/03/01:開発合宿準備
    2009/03/21:thechaw.comへ最初のコミット
    2009/04/某日:開発合宿

メンバー
    yandod
    halt(アカウント、認証)
    k-kishida(チケット更新系)
    akiyan(チケット参照系)
    nazo(プロジェクト関係)
    hnw(wikiモジュール)
    kaz29(ニュースモジュール)
    suzuki(管理画面系)
    shin1x1(チケットのサマリ画面)
    i_ogi(ゴットファーザー)

開発合宿
    2泊3日 18000円
    15名
    合計6時間くらいしか寝てない。地獄・・・
    コミット量すごい

やってみて
    Rubyのmix-in
    redmineの積み重ねて来た更新で統一性ない
    国際化はGlocを使っていた→gettextに移行?

ロードマップ
    フェーズ1
        基本機能
    フェーズ2
        リポジトリ
        プラグイン
    フェーズ3
        普及期
        要望とか

αテスター募集
    画面のURLなどはなんとなく自重
    ここで饅頭の謎が明らかに!!

デプロイ
    capistrano使っている
    gitリポジトリからアップデート→本番に上げるとかを自動化
    デプロイの実演も成功

コード本体も近日公開します。

▼Q&A

ソースはいつ見れますか?
    認証付きのリポジトリにあるのでまだみれない
    公開と同時にアクセスできるようになるはず

仕事でTracは使っているし、Redmineも調査目的でインストールして触ってみたけど、どちらもインストールの難易度という意味ではかなり敷居が高いんですね。
BTS(ITS)は実はリテラシーの低い人や新米プログラマーにこそ使ってほしかったりするのですが、その辺の敷居の高さがネックになる事は良くある事です。

本当にcandycaneはヒット間違いなしとみているので期待しています。
アーンド、テストサイトも教えてもらったのでちょっと触ってみようと思います。

Ktai Library(MASA-Pさん)

【CakePHP】第4回CakePHP勉強会@Tokyo無事終了! | ECWorks Blog

携帯サイトを高速開発するためのライブラリの話

自己紹介
    フォーラムとかにも良く顔出してます
    SmartyView, Tplcutter
    CakePHP歴:1年半
    10月に会社をおこすらしい(パチパチ)

Ktai Libraryとは
    「どのキャリアでも一つのビューで表示する。」(重要)
    必要コード・ビューが減り開発期間短縮
    SEO的に有利になる(かもしれない)(→根拠は?)

メリット
    ビューが少なくなるので更新漏れがなくなる
    確認作業時間も確実に減る
        実機確認は減らないがそれ意外の確認作業がへる

Ktai Libraryで何が解決できる?
    各キャリア対応で問題になる4大要素
    セッション/絵文字/画像/メール

セッション
    ドコモはクッキーに対応していない
    リダイレクトでセッションが切れたり
    paginate等でnamed paramを使うとSIDが自動付加されない

絵文字
    絵文字コードが各キャリアでバラバラ
    文字エンコーディングを切り替えると文字化ける
    エンコーディングをまたいでも大丈夫
    afterRenderのあとの出力をまとめて変換するオプションもある
    TypePad画像絵文字を取り込むこともできる

画像
    SBの高解像度携帯で画像が小さくなってしまう(VIELA携帯とか)
    絵文字が存在しない場合に使う絵文字画像も小さくなってしまう。
    スクリーンサイズが小さい機種でも不具合
    HTMLHelper::imageみたいな呼び方でOK

メール
    SBのmailtoをurlencodeするとか
    iPhoneのmailtoは\r\nだけurlencodeするとか

Ktai Libraryのインストール
    チュートリアルはブログで公開されている
    cakeのフォルダに入れるだけ

app/config/routes.php
    named parameterを「:」から「~」に変えた

app/controllers/app_controller.php.ktai
    app_controller.phpを設置
    既存のapp_controllerがある場合はオーバーライド部分だけをコピペ

app/controllers/*_controller.php
    Ktaiコンポーネントを呼び出すだけ

view
    CakePHPの標準関数のような感じで呼べる
    ktai->image()
    ktai->link()

今後
    メール関連強化(デコメール、空メール)
    IP制限機能とか

ドコモのブラウザ仕様変更(!)
    javascript対応
    COOKIE
    ・・・
    困ってます

期待のKtai Libraryを、出来る事から使い方まで説明されていました。
ボクも楽したい・・・から携帯開発ではうまく使っていきたいなぁ。

極める routes.php(akiyanさん)

極める routes.php (CakePHP 1.2) : akiyan.com

akiyan
    akiyan.com

スライドは公開されるのでメモしなくてもOK
    いえいえ、メモりますとも

URLを自由に作れるようになれます!

routes.php
    ルーティングするもの
    app/config/routes.php
    記述順で上から検索してURLパターンマッチした設定が適用される

基本:静的
    :action
    アクション名が代入される
    paramsルーティング(akiyan命名)
    /member/:user_id/:action/
    /member/:user_id/
    URLは完全に一致する必要があります。

応用
    パラメータ制約
    第3引数に正規表現で制限をかける(数字だけとか)
    静的パラメータをセットできる
    パラメータのデフォルト値として使える
    (この辺は別途サンプル必要だな・・・)

逆ルーティング
    コントローラー/アクションからURLがわかる
    routes.phpに書いてる設定をそのまま渡す感じ
    完全一致が原則

逆ルーティングするときに静的パラメータを追加できる(!)

Paginatorにパラメータ付ける
    pagnation に options を付ける(重要)
    key-valueでセット
    マニュアル未掲載(うそーん!)

ルーティングを色々変えていたらいつのまにかマッチしなくなった(あるある)
    他のルーティングに先にマッチしまっている事が多い
    * とかで設定されているrouteを疑う
    制約をかけていない paramsルーティングも疑う

routes.phpのデバッグ
    pr($this->params)が便利

冒頭でakiyanさんが
「rewrite使わないで、routes.phpだけで自由にURL作れますか?」という質問をされていたけど、このプレゼンの内容を把握していれば本当に大体のURLパターンは網羅できそうですね。パラメータのデフォルト値をセットできるという裏技も発見できたし(ただ、これは普通につかっちゃうとコントローラー側で、URLにパラメータ渡してないのになんでこうなる?みたいな事にならないか?)

あと、パフォーマンス面ではrewrite使うのとroutes.php使うのではどちらがいいんでしょうね。
つまりApacheモジュールにやらせるのか、PHPにやらせるのかって問題だと思うのだけど・・・超大規模システムでなければ気にするレベルの話じゃないのかもしれないけど。

LT: CakePHP1.3(cakephperさん)

cakephp勉強会@tokyo #4で発表してきました - cakephperの日記(cakePHP1.2ベース)

SQL Explain Component開発してます

CakePHP1.2
    1.2.3リリースされたばかり
    1.2.1のユーザは要アップデート

CakePHP1.3
    PHP4,5対応

CakePHP2.0
    PHP5,6対応(PHP4からの脱却)

CakePHP1.3の機能
    SQL Explain 機能
    Bakeの改善
    JsHelper
    デプロイツール
    マイグレーション

thechaw.comにソース
    認証鍵が必要なのでブログ参照
    gitでソース落としてくる

JsHelper
    複数のライブラリ使える
    デフォルトJquery→prototypeとかも使える
    自動読み込み

デプロイツール
    コード、DB定義の更新ツール
    議論されている最中

マイグレーション
    Model::deleteに統一とか
    del、removeはなくなる

最近、バッチ系を良く触っているのでBakeの改善とデプロイツールにwktk

LT: PHPUnderControl + CakePHP(miauさん)

CakePHP 勉強会で発表してきました - miauの避難所

特徴的なプレゼン方法で全くメモできませんでしたw
マインドマップ的なツールで目まぐるしく移動する画面…フラッシュ暗算している気分

しかし、PHPUnderControlのレポーティング機能は特に見た目が良い。
視覚化重要だなぁ。

LT: CakePHP+Image Graph(s_yo_koさん)

第4回CakePHP勉強会@Tokyo 感想 - Do you CakePHP はてな

Do You CakePHPはてなの住人です
Do You Cakeはてなの公式(w)姉妹サイト

PEAR::Image_Graph
    go_pear
    手動インストール
    include_path配下におけばいいんじゃね?

普通にrequire_onceして動いた
    空のviewを用意しないとエラー → autorenderをfalseにすればviewいらない(akiyan)

PEARとか外部のライブラリも普通に使えますね。
置き場所とか、呼び出しかたについては最後の新原さんのLTが参考になったり

LT: CakePHP ビヘイビアの紹介(syuhariさん)

CakePHP 勉強会で発表してきました | Sun Limited Mt.

Behavior使ってますか?
    あんまり使われてない

モデルに機能を追加できる

使い方
    $actsAs に ビヘイビア名を入れる

ユーザ情報をソフトデリート(論理削除)
    Soft Deletable Behaviorというのがあった(!)
    beforeDeleteで処理してくれてる
    model::deleteを呼ばないようにfalseが帰るので注意

他にもPublishableBehaviorとか
Bakeryで探そう

そっか、もっとたくさん使えそうなbehaviorは存在していそうだな。
本当にBakeryでさがしてみよう。

LT: プラグイン三段活用(slywalkerさん)

第4回CakePHP勉強会@TokyoのLTで発表してきました! - 忍び歩く男 - SLYWALKER

予想通り(w)時間が押したので、懇親会でお酒が入った後に始まったLT。
関西の方で、東京初プレゼンとおっしゃっていたのですが・・・

紙芝居漫才みたいで面白かったw

内容は、Component/View/Behaviorに機能をまとめていきましょうと、Component/View/Behaviorはどんどんpluginsフォルダにぶち込みましょうというお話で、とても参考になる内容でした。

コピペすると、
「バグの数×コピペファイル数=修正しないといけないソース量」
という事になってしまうのでやっちゃだめ。

LT: 10分でできるApp::import(shin1x1さん)

第4回CakePHP勉強会@Tokyoが終了しました&発表資料 | Shin x blog

こちらも懇親会中のLTだったので、メモできていませんでしたけど。
関西人がトリに来ている場合は100%ネタが仕込んであるんですね、わかりますw

今日は話題のスポット大阪から、豚インフ(ry

App::importはrequireのパワーアップ版みたいなもん
サーチパスは覚えておいた方がよい。

第3引数で実際のファイルパスを指定できる!
Dispatcherをappフォルダ内のオレオレDispatcherに上書き可能!

Dispatcherの書き換えは、Baker騒然って感じでしたね。
自分ではこれが出来る事で便利な事をすぐに思い付かないけど。

まとめ

アンケートの提出でCakePHPバッジをもらいました。カワユス。
CakePHPバッジ

いやー、毎回盛り沢山ですごいですね。
20分枠からLTまでスゴく実践的で濃い発表が多くて大変タメになったと思います。

そして、慣れない懇親会で思ったのは「LTでも良いから発表者で参加した方が良いな」という事。他の参加者が話しかけてくれたりとかして会話がスムーズに進みそう。特に引っ込み思案なオイラは自分から声をかけるのが苦手なので…。

最後になりましたが、会場提供のグリーさんありがとうございました。
また、運営のみなさまお疲れさまでした。

参加者のエントリー

ぐさぎ どっと こむ - 第4回CakePHP勉強会@Tokyoに参加してきました
むしの手記。 » cakephp勉強会第4回に参加してきた
第4回CakePHP勉強会@Tokyoが終了しました&発表資料 | Shin x blog
CakePHP 勉強会で発表してきました - miauの避難所
【CakePHP】第4回CakePHP勉強会@Tokyo無事終了! | ECWorks Blog
CakePHP 勉強会で発表してきました | Sun Limited Mt.
第4回CakePHP勉強会@Tokyoの動画 - おぎろぐはてな
第4回CakePHP勉強会@Tokyo無事終了 - yandodの日記
cakephp勉強会@tokyo #4で発表してきました - cakephperの日記(cakePHP1.2ベース)
cakephp勉強会@tokyo #4 参加報告 - cakephperの日記(cakePHP1.2ベース)
第4回CakePHP勉強会@TokyoのLTで発表してきました! - 忍び歩く男 - SLYWALKER
cakePHP勉強会参加報告 - ふと、気づいたんだ。
第4回CakePHP勉強会@Tokyoに参加してきました - Web、只今勉強中
CakePHPを使った事が無い人は使ってみるべき - ぷぎがぽぎ
第4回CakePHP勉強会@Tokyoに参加した - Hamaco@無職の日記
第4回CakePHP勉強会@Tokyo 感想 - Do you CakePHP はてな
極める routes.php (CakePHP 1.2) : akiyan.com
2009-05-23 - LINDの喜・*・*・楽

CakePHPによる実践Webアプリケーション開発 (単行本(ソフトカバー))
4839930651

同じカテゴリーの記事

このページの一番上に戻る
  • Facebook
  • Twitter
  • Tumblr
  • Instagram
  • miil