Home > PHP

PHP Archive

CakePHP勉強会@福岡に参加します

この記事の所要時間: 10

3/13(金)に福岡が行われるCakePHP勉強会@福岡に参加します。

■開催日時
2009年3月13日(金) 18:30〜

■会場
勉強会会場 : 福岡市NPO・ボランティア交流センター「あすみん」会議室
福岡市中央区大名2-6-46 福岡市立青年センター5F

http://www.fnvc.jp/access.html

CakePHP勉強会@福岡

今回は「PostgreSQL勉強会@九州」との合同開催だそうです。日頃からCakePHP(PHP)+PostgreSQLを使ってる自分にはど真ん中ストライクな内容なだけに嫌が応にも期待が高まります:-D

せっかくなのでLTで発表してきます。CakePHPからPostgreSQLとpgpool-II、Slony-Iを組み合わせたDB構成を利用する際のポイントを話そうと思ってます。(まあ5分なのでざっくりですが。。。)

まだ若干参加枠があるようなので、ご都合がつく方は参加してみてはいかがでしょうか。

参加申込はhttp://events.php.gr.jp/events/show/69からどうぞ。

Python関西勉強会に参加しました&発表資料

この記事の所要時間: 39

大阪で行われたPython関西勉強会に参加してきました。

初のPython勉強会参加&発表でしたので、とても新鮮でした。

完全アウェイな感じかなと思っていたのですが、CakePHP関西勉強会でご一緒した方が何人か来られていたり、そもそもPython関西の雰囲気自体が馴染みやすいものだったので、ホームな気分で楽しかったです。(体調さえ良ければ・・・)

Pythonによる業務事例紹介

  • 中西さん
  • Pythonの事例は是非聞いてみたかった。
  • MonotaRO [http://www.monotaro.com/]
  • ECは全部Python!基幹系も60%がPython!
  • Java => Python CGI => mod_python
  • Python Servletってあるんだ。Javaだけかと思ってた。
  • psp?Python Server Pages : JSP/ASPを参考
  • 全行にコメント!
  • Frameworkとコーディング規約を厳密にすることで外注やオフショアに対応。ドキュメントは図を多用する。
  • Pythonは結構習得しやすい

bakerがDjangoに出会ったぁ

  • shin1x1
  • dai_yamashitaさん、お誘いありがとうございました。
  • CakePHPの紹介とDjango体験記、CakePHPとDjangoの比較をつらつらと
  • Python&Djangoは一番自分が良く分かっていないので逆に楽でした:-D
  • 増田さんに色々教えて貰いました:-D(ありがとうございましたm(_ _)m)
  • djangoPHPはもう少し詰めると使えるような気もする。
  • せっかくの勉強会なのに、朝から謎の頭痛で辛かった。。。

LT1: 第1回 Pythonお泊まり会

  • 次はハンドル名で、jun-gさん
  • お泊まり会のご案内
  • こういうの参加してみたいが、泊まりは中々難しい。。。

LT2: CodeIgniter

  • 幹事のdai_yamashitaさん(お疲れ様です!)
  • 幹事して、司会して、発表しては結構大変ですよね:-D
  • PythonからPHPの世界に来てのあれこれ
  • 1,700万PV/m
  • PHP勉強会でCodeIgniterのお話お待ちしてます。

NEW in Django 1.0

  • 増田さん
  • 少しかじっているのでDjango話が楽しい:-D
  • Django1.0の新機能を解説
  • フォーム周りの表現力が強化されている
  • Controller(views.py)でFormをゴリゴリ書いていくのは意外
    views.pyは一般的なControllerとは違うのかな?
    HTML_QuickFormと似た雰囲気。
  • formtoolsの画面遷移制御が面白い
  • Djangoはフォーム要素をオブジェクトで表現するに向かっている印象。
    CakePHPはもっとシンプルというか、ここまで面倒見てくれない。このあたりの制御は全て自分でやる。
  • adminがモジュールが触れるようになったのが大きい

冒頭でも触れましたが、Pythonの勉強会ということで正直少し身構えていた;-)のですが、明るい雰囲気でとても楽しかったです。勉強会の他にもお泊まり会(hackathon)やごはん会(飲み会?)などもあるようなので機会があれば参加してみたいと思います。

Pythonに興味がある方は気軽に参加してみてはいかがでしょうか。

今回は発表をするということでPythonやDjangoについて下調べしていったことで他の方の発表をより楽しむことができました。発表するというのはこういう効果もありますね。

Python関西の皆さん、お疲れ様でした&ありがとうございました。

phshをPHP5.2系で使うパッチ

  • 2008-12-22 (月)
  • PHP
この記事の所要時間: 150

Python関西勉強会に向けてちょろちょろPythonを触っていて思うのが、インタラクティブシェル環境があることの利便性ですね。ちょろっと書いてぱっと動かせるのは学習にはもってこいです。

で、PHPといえば「php -a」があるのですが、さらに便利なphshをふと思い出し、使ってみることにしました。

動作環境はPHP5.2.8のソースインストールです。

ダウンロードして起動するとE_STRICTなエラーがもろもろ出てきました。

PHP Strict standards:  Non-static method PEAR::isError() should not be called statically, assuming $this from incompatible context in /home/shin/src/phsh.org on line 71
PHP Stack trace:
PHP   1. {main}() /home/shin/src/phsh.org:0
PHP   2. PHSH->main() /home/shin/src/phsh.org:204

phshはPHPで書かれているのでソースを見てみると、いちおうE_STRICTをdisableするコードが書かれていたのですが、ここが上手くE_STRICTフラグを落とせていないようでした。

手元の環境では、error_reporting=E_ALLだったので、E_ALL ^ E_STRICTすると逆にE_STRICTが有効になってしまいます。という事でこれを修正するパッチを作りました。

あとついでにvariables_order = “GPCS”な環境用に$_SERVERを$_ENVに格納する処理もくわえています。

— phsh.org 2008-12-22 18:34:38.000000000 +0900
+++ phsh 2008-12-22 19:14:38.000000000 +0900
@@ -2,7 +2,10 @@
google先生に聞いてみても誰もこの現象にぶち当たっていないようなので、phsh使う人はE_STRICTを有効にしてるという事でしょうね。。。:-D

# phshはとっても便利に使わせて頂いてます。ありがとうございますー。

phsh(PHPでシェル)を公開します – ベイエリア情報局

追記 [2008/12/23]:

phshの最新版はcodereposにあるようです。(させざきさ、情報ありがとうございました。)こちらはE_STRICTの件は修正されているようです。

http://coderepos.org/share/browser/lang/php/misc/phsh

Python関西勉強会で発表してきます

この記事の所要時間: 114

12/23に大阪市内でPython関西勉強会が開催されます。

開催日時
2008/12/23(火)13:30 〜17:00まで

場所
■場所:大阪産業創造館 D会議室(30名まで収容可能)

■日時:12月23日(火)祝日です。 13:00〜17:00まで使用可能
準備がありますので、13:30〜開場に致します。

第1回Python関西勉強会(おやつ会) ‎(梅.py : 梅田 Python ごはんの会‎)

なぜPythonの勉強会で発表?なわけですが(w、中の方からお誘いをうけて発表することになりました。

発表内容は「PHPで全然問題無いですよ」と言って頂けたので、Pythonの「パ」の字も出ない発表にするつもりだっだったのですが、せっかくの機会なので今Djangoのチュートリアルをやっています。

なので、多分「Python」の単語くらいは出てくると思います:-p

予定では、bakerがDjangoを触った印象なんかを話せれば良いかなとか考えています。

まだ参加枠には余裕があるそうなので、Pythonユーザ(私以外の発表はバッチリPythonの内容なのでご安心を:-D)はもちろんですが、PHPしか使ったことないよ、な方も関西で他言語・他フレームワークに触れる良い機会ですので是非ご参加下さい!

参加申込みは第1回Python関西勉強会(おやつ会) のサイトからどうぞ。

CakePHP 1.2RC3はPluginの仕様が一部変わってる?

この記事の所要時間: 317

以下の記事は思い違いしている箇所があります。

slywalkerさんのblogに解説記事があるので、そちらも合わせてご覧下さい。(slywalkerさん、ありがとうございます!)

思い違いしていた点は以下。

  1. [変更点:1] コントローラ、モデルの命名規則
  2. Plugin名を先頭に付けるのはシステム的な強制だと思い込んでいました。book.cakephp.orgにもありますが、これは強制ではなく、推奨ですね。

    そもそもの勘違いはアクセスURLでした。↓の例だと「/admin/users/index」で、自動でadmin_users_controller.phpが読み込まれると思い込んでいました。(Routing.adminと同じノリで)なので、フレームワークがコントローラを探す際はURLから自動的にPlugin名を補完しているかと思っていました。

    ここがそもそもの間違いで、アクセスURLが「/admin/admin_users/index」であれば納得です。

    ということで、ここは従来のままでokということですね。

  3. 名前の競合
  4. 名前の競合を防ぐために、plugin名を先頭に付けるという方法が推奨されているという事でした。

昨日の勉強会で話題になっていたPluginですが、1.2RC3では仕様が変わっているようで、従来の方法で構築したPluginは動作しなくなっているようです。

変更点を調べてみました。

[変更点:1] コントローラ、モデルの命名規則

これまではPluginのコントローラ・モデルは、ファイル名とクラス名にPlugin名を先頭に付ける必要がありました。

しかしRC3の仕様では、Plugin名を付けてはいけません。

Plugin名が[admin]の場合は以下のようになります。

  • 従来
app/plugins/
  + [admin]
       + [controllers]
            + admin_user_controller.php (AdminUserControllerクラス)
       + [models]
            + admin_user.php(AdminUserクラス)
       + [views]
            + admin_user/index.ctp
  • RC3
app/plugins/
  + [admin]
       + [controllers]
            + user_controller.php (UserControllerクラス)
       + [models]
            + user.php(Userクラス)
       + [views]
            + user/index.ctp

[変更点:2] コントローラ、モデルの親クラス

さらにこれまではPluginのコントローラ・モデルの親クラスとして、%Plugin%AppController、%Plugin%AppModelクラスを定義する必要がありました。

しかしRC3の仕様では、任意となり、通常のAppController、AppModelクラスを継承してもokになりました。この場合は%plugin%_app_controller.php、%plugin%_app_model.phpを設置しなくても良いです。

もちろん従来どおり基底クラスファイルを設置して継承するのもokです。基底クラスファイルはフレームワークが自動で読み込んでくれます。

  • 従来

app/plugins/
+ [admin]
+ admin_app_controller.php <== 必須 + admin_app_model.php <== 必須 + [controllers] + user_controller.php (AdminAppControllerを継承) + [models] + user.php(AdminAppModelを継承) [/code]

  • RC3

app/plugins/
+ [admin]
+ admin_app_controller.php <== 任意(なくてもok) + admin_app_model.php <== 任意(なくてもok) + [controllers] + user_controller.php (AppController or AdminAppControllerを継承) + [models] + user.php(AppModel or AdminAppModelを継承) [/code]

名前が競合

仕様変更の影響ですが、まず従来の仕様で作られているPluginは当然ながら動作しません。

あと気になるのは、コントローラやモデルのクラス名からPlugin名が省かれたことにより、アプリケーション側や別のプラグインのコントローラ・モデルと名前が競合する可能性が出てきました。

複数のコントローラを一度のHTTPリクエストで読み込むことは少ないかもしれませんが、モデルに関しては十分に考えられます。あとさらに問題なのがViewテンプレートです。

app/plugin/%plugin%以下にviewsディレクトリを作る場合は問題無いのですが、app/viewsにPluginのViewテンプレートを設置したい場合は、コントローラ名がアプリケーションと競合すると、お互いが同じViewテンプレートを読み込む事になります。

@see: CakePHP1.2RC3 Plugin使用の際のViewについて – 忍び歩く男 – SLYWALKER

Pluginを作る時は競合しないようなクラス名を付ける必要がありますね。(PHP5.3ならnamespaceが使えますが。。。)

ドキュメント化されていない

この変更がいつ施されたかは追いかけていないのですが、RC3ではこのような挙動になっています。

残念ながら[2008/12/13]現在は、book.cakephp.orgのドキュメントも従来の仕様のままです。ドキュメントどおりに作ってもRC3では動作しませんので、ご注意を。

ただWebにはあまりにもこの事についての情報が無いので、ここの人が追試して「使い方間違ってるよ」的な指摘をしてくれるのを願っていたりもします。

CakePHP アプリケーション実行の流れをシーケンス図で書いてみた

この記事の所要時間: 041

CakePHP関西勉強会での発表のためにアプリケーション実行の概要をシーケンス図で書いてみました。

具体的にはDispatcher#_invoke()[cake/dispatcher.php]が、コントローラ・コンポーネント・ビュークラスの各メソッドを呼び出す流れです。これを見るとアプリケーション側の各メソッドがどの順序で呼び出されるかが分かります。

なお図にあるUserControllerとUserComponentは、アプリケーションで定義しているものです。

勉強会での発表資料に解説があるので、そちらも参考にして下さい。
@see CakePHP関西勉強会終了しました&発表資料


cakephp_dispatcher__invoke_sequence.pdf

CakePHP関西勉強会終了しました&発表資料

この記事の所要時間: 229

CakePHP関西勉強会が無事に終了しました。

東京で第一回CakePHP勉強会を行ってから1年経過して、ついに関西で開催することができました。一つの節目を迎えたようで感慨深かったです。

今回ははじめて勉強会の幹事をやってみました。たいして幹事らしいことはできませんでした(・・・)が、例によってやってみると色々と考えないといけないことがありました。勉強になりました。

以下、つらつらと。

1. CakePHP アプリケーションの流れを追う

  • shin1x1
  • フレームワークがどう動くかを大枠で発表しました
  • 全体の流れが上手く伝われば嬉しいです:-D
  • 技術解説は難しい。。。まだまだ表現を考えないと。
  • デモを交えると良かったかも。
  • Dispatcher#_invoke()のシーケンス図はまた上げます。上げました。
  • Componentは是非活用してみて下さい。
  • 第1回Python関西勉強会参加者募集中です
  • ありがとうございましたー

2. フォームメールを生成するプラグイン

  • 腰が気になる(w slywalkerさん
  • Pluginの解説は少ないので、とても役立ちます!
  • 懇親会でもPluginに興味を持った人が多かったですね:-D
  • デモとソースを交えた分かりやすい発表でした。
  • $_schema()を書き換える方法は、Model#schema()をオーバーライドしてもok。
  • Controller/Modelを配置するディレクトリを分ける目的でPlugin使うと、Viewディレクトリが分離するのが悩み。。。

LT1. 開発事例と失敗談

  • keisonさん
  • 初のプレゼン!でも落ち着いてましたね:-D
  • かなり多くの案件でCakePHPを実用されていました。
  • 事例はほんと参考になります!
  • 失敗談は皆が通る道ですね><

LT2. CakePHPと私(仮)

  • m-takagiさん
  • CakePHPが一切出てこないネタ:-)
  • 湯布院旅行記(w
  • LL温泉の写真なのに、写っているのは食べ物とカメラばかり:-D
  • 今回も期待を裏切らない楽しいLTでした。さすがです。

懇親会

  • PHP関西勉強会の懇親会と同じ韓国料理屋さん
  • 岐阜から参加された方が!
  • PluginとComponentの話が飛び交ってました
  • スピーカー候補の方多数!(よろしくお願いしまーす)
  • m-takagiさんは次回LTに向けて食べ物の写真を例のカメラで撮影(w
  • あちこち移動して色々な方とお話できました。楽しかったです!

勉強会や懇親会ではネタっぽく話していましたが、是非発表する側へ回って欲しいというのは今回運営を行ったみんなが思っていることです。はじめはLTからでも良いので、是非手を挙げてみて下さい。

次回は春頃には何かやりたいですね。

参加された皆さん、発表・運営を行ったみなさん、お疲れ様でした!

CakePHP関西勉強会を開催します

この記事の所要時間: 126

12/12(金)に大阪でCakePHP関西勉強会を開催します。

■内容
CakePHPに関する発表(Tipsや事例紹介等)と質疑応答を行います。

■概要
日時: 2008年12月12日(金) 19:30~
会場: 扇町インキュベーションプラザ(メビック扇町)
URL: http://www.mebic.com/outline/
MAP: http://www.mebic.com/access/
費用: 200円~500円程度(会場・機材費を参加者で頭割り)

events.php.gr.jp – CakePHP関西勉強会

これまで東京を中心に行われてきたCakePHP勉強会ですが、いよいよ大阪で行います。

以前からCakePHP勉強会を関西でやってみると面白いのでは?という声は聞いていたのですが、なかなか実現することができませんでした。

CakePHPカンファレンス以降さらに熱気が加速したのもあり、いよいよ開催となります。(先日のPHP関西勉強会でもbakerな方が半数以上でした!)

内容としてはセミナー形式でCakeに関する発表(私も発表します-)+質疑応答を行います。その後会場を移動して懇親会(という飲み会)へ、という流れです。

日頃CakePHPを使っているけど、話をしたり聞いたりができない人という方にとっては、そうした話に触れられるまたと無い機会だと思います。是非ご参加ください!

# 関西でのPHPコミュニティを盛り上げようという一環でもあるので、Cake自体をあまり知らない方も是非是非!

参加には事前受付が必要ですので、以下から参加申込みを行って下さい。

参加申込み

PHP関西勉強会で発表してきました&発表資料

この記事の所要時間: 248

大阪で開催されたPHP関西勉強会で発表してきました。

開催決定から開催までわずか4日(募集開始からは3日)というある意味ゲリラ的なイベントだったのですが、なんと定員が埋まるという驚きの結果になりました。

開催までは以下な感じで。

11/4 1:00? IRCでkunitさん、m-takagiさん、shin1x1で開催決定
=> まあ最悪3人でやろうか、くらいのノリ
11/4 blogやらwassrやらtwitterやらで告知
11/5 eventsで募集開始
11/7 勉強会

東京なら勉強会も多いのでこんなのもアリでしょうけど、関西のPHP系勉強会は最近あまり開催されなかったので、そもそも人が来るのかなあと思ってました。

良い方に予想外でした。やはり関西のPHPerはイベントに行きたくてウズウズしてたんですね:-D

今回は発表もあったので簡単にメモを。

PHPUnit + SeleniumRCなお話

  • 開催にご尽力頂いたkunitさん
  • PHPUnit + Testing_Selenium + Selenium RC
  • 資料ナシのプレゼン!(これは真似できません。。。)
  • Selenium IDEで作ったテストケースを、PHPUnitのテストケースに変換するツール
    => を、デモする予定だったけど間に合わず。。。
  • 考えたら今週kunitさんイベント出まくりで、そのどれもで発表してる!
  • 今後公開されるとの事なので期待!
  • Seleniumのテストは個人の環境でちょろっとやっていた程度なので、テストサーバで一元的にやってしまおうという発想は面白かったです。

私とCakePHP

  • shin1x1
  • 必死のぱっちで資料作りました。。。
  • 思いのほかbakerが多くてビックリ!
    => もっと濃いネタ用意しとけば。。。続きはCakePHP関西勉強会で:-D
  • Smartyユーザが結構多いのも意外でした
  • とにかくガーと話し続けた感じでした。でも皆さん真剣に聞いて頂いて、とても話やすかったです:-D。ありがとうございましたー。

PHPScraping2008

  • 東京から急遽参加のさせざきさん
  • プロジェクタに画面が上手く映らないトラブルが
    => 発表前のトラブルは焦りますね><
  • Zend Frameworkをフルに活用したスクレイピング
  • 図があるのは分かりやすくて良いですね。
  • せっかくなんでいろいろデモが見たかったですー

ざざっと片付けて、懇親会へ

懇親会

  • 予想外(!)にキレイな韓国料理屋さんで
  • 正直寝不足で半分くらいボーとしてました。。。
  • Cakeの話とか、Pieceの話とか、勉強会の話とか
  • ITEMANさんとkunitさんの話は聞いてるだけで勉強になる
  • 翌日KOFで発表するはずの2人は4:00頃まで飲んでたらしい

kunitさんの関西愛(wから始まった今回の勉強会ですが、突発的にも関わらず盛り上がりました。

せっかく火を付けていただいたところなので、この火を細々でも絶やさないようにしていきたいですね。(来月あたりにCakePHP関西勉強会を行いますので、是非!)

何から何までお膳立て頂いたkunitさん、m-takagiさんにホント感謝感謝です。

参加された皆さんお疲れ様でした!

第2回設計勉強会に参加しました

この記事の所要時間: 36

第2回設計勉強会に参加してきました。

設計やテスト、ドキュメンテーション(これの話は無かったですが)は最近の悩みどころだったので、かなり勉強になりました。

例によって詳細なレポートはshimookaさんが詳しいので、ざくっとメモを書きます。

「クイズ研」開発上の設計判断とその結果

  • クイズ検のtwkさん
  • Googleの「クイズ」で1位!
  • PHP5 + strict + コードジェネレータ嫌 => ZendFrameworkを選択
  • 会場内で(少しでも)使ってたことがある人は、1/3くらい
  • require_onceよりautoloadで
  • mysqli関連で不具合がある[http://framework.zend.com/issues/browse/ZF-2659]
  • twkさんのアイコンがいつも気になる:-D

レイヤー切り分けてる?

  • お会いしてみたかったhataさん
  • レイヤについて
  • 粒度とか、どこでレイヤを切るか、どのレイヤに処理を書くか、が悩み所
  • 分けた方がテストはやりやすそうだけど、開発工数は上がりそう
    => バランスが大事
  • 自分も「キレイに分けたい」時期があったけど、今は少し泥臭くても構築しやすい形に落ち着いているかな。
  • DBコネクションはシステムで誰かが一元的に管理して、Daoがそれを使えればそれほどキッチリ考えなくても良いかなとか。
  • 「どこに何を書く問題」は社内でも良く話しが上がるので、良い勉強になりました!
  • Hermitに期待!

結局Webのアーキテクチャーって?

  • kunitさん
  • めちゃくちゃ分かりやすいプレゼン!
  • 「hataさんのプレゼンであった」×4 😀
  • 基礎だけど大事なWebシステムのレイヤを再確認
  • Webシステムでほとんど間違いなく、この構造
  • Symfonyでの問題点を解説
    => Cakeならどうなのか考える
  • 金曜日・土曜日も楽しみ!

懇親会

勉強会会場にてそのまま懇親会に突入しました。

  • ディノさん自慢の自社(ビア)サーバ:-D
  • テストの話とか
  • 某携帯キャリアの話とか
  • 携帯話は苦労話しか出てこないとか
  • PHPコミュニティーとデザイナさんコミュニティともっと近づくべき
    => 特にCakePHPに関しては強く思う
  • Smarty vs PHPのビューテンプレート話とか

弊社サービスの場合の設計

すっかり出来上がった雰囲気の中でshimookaさんのプレゼン開始

  • 飲んで発表とか、かなり良いかも
  • お酒飲んで、場も盛り上がっているので、議論も活発に
  • 実案件を例にした発表は分かりやすい!
  • コードまで見ると理解度がグッと上がる
  • コアロジック(ビジネスロジック)はフレームワークから切り離しておく
  • flash-seleniumはリポジトリからcoする

いやあ今日はやられました。普段ボヤッとしてたところを刺激されたというか、掘り起こされた感じで、かなり楽しかったです。

特にハタさんのレイヤーを分ける話はJavaをやっていた時はかなり意識していたのですが、最近は自分なりのざっくりとした方法ができてしまい、それに慣れきっているなあ、と再認識しました。

テストも含めてもう一度しっかり考え直す良い機会になりました。

なんか最近モヤモヤしていることが少しずつ晴れてくるような、答えに繋がってくるような気がしてます。

ディノさん、shimookaさん、NEKOGETさん、LINDさん、素晴らしい勉強会 & 懇親会をありがとうございました-。

と、言ってる間に明日の金曜日は関西勉強会なのです。すっかり感化されまくりなので、この方面で話そうかな。

ホーム > PHP

検索
フィード
メタ情報

Return to page top