Home > PHP
PHP Archive
PHPカンファレンス関西2012を開催します
PHPカンファレンス関西2012を5/12に開催しますよ!
すでにご存知の方も多いかと思いますが、昨年盛り上がったPHPカンファレンス関西をまたまた開催します。
イベントの概要と現在募集している内容をご紹介します。
PHPカンファレンス関西2012
今年はゴールデンウィーク明けの5/12(土)に開催します。会場は昨年と同じく大阪産業創造館(産創館)です。
カンファレンス公式サイトを公開しています。今後、参加者申込やセッション発表などイベントに関する情報を公開していきますので、こちらも見てみて下さい。
・名称
PHPカンファレンス関西
・開催日時
2012年5月12日(土)10:30-16:40(10:00開場)
・開催場所
大阪産業創造館 4Fイベントホール 6F会議室(A・B)
http://www.sansokan.jp/
・テーマ
「好きやねんPHP!」
・参加費用
無料
・定員(予定)
250名
PHPカンファレンス関西2012の特徴を3つ。
1. テーマは「好きやねんPHP!」
今回のテーマは「好きやねんPHP!」です。
このイベントが何のイベントなのか、という原点に立ち返って、とにかくPHPが好き!という思いを全面に出していきます。
2. 会場が2会場、マルチトラックに
会場は、昨年開催した「イベントホール」に加えて、「6F会議室」の2会場となります。
会場が増えたということで、マルチトラックが可能となり、セッション数も大幅に増えます!
マルチトラックの利点はセッション数の増加だけではありません。大事ななのは参加するセッションを選択できる、ということです。同じ時間に開催される2セッションのうち、参加したいなあと思う方を自由に選ぶことができます。
どちらも聞きたい!ということになりそうですが、「選べる」というのは嬉しいですね。
3. セッションを公募に
そしてそして最後にここにつながります。
今年は LT だけではなく、本セッションについても公募を行います。
もちろん昨年同様、どなたかにセッションをお願いすることも考えていますが、公募による本セッションを行います。
発表内容はPHPに関するものなら何でも ok です。エンジニア向けだけではなく、デザイナー向け、オペレータ向け、初心者向け、なんでも来いです。
今回のテーマもマルチトラックにしたのも、全てこのセッション公募を実現するためです。ぜひバラエティに富んだセッションを開催したいと思うので、皆さんからの応募をお待ちしています!
募集しています!
現在、PHPカンファレンス関西2012では、以下の内容を募集しています。
セッション発表者募集
上記でも書きましたが、セッションで発表して頂ける方を募集しています。
まさにこれが今回のイベントの肝です。ここ関西で開催されるカンファレンスで発表してみましょう!
発表に興味はあるけど、勇気が出ないという方には、この言葉をオススメします。
「君の当たり前に僕らは感嘆させられるんだ」
セッション発表者募集に関する詳細は下記からどうぞ。
セッション発表者を募集しています。 – PHPカンファレンス関西2012
スポンサー募集
PHPカンファレンス関西2012に協賛頂けるスポンサー企業を募集しています。
関西はもちろんのこと、関西外からもPHPユーザが数多く集まるイベントです。これまでこういったイベントへの協賛をされていない方も大歓迎ですので、お気軽にお問い合わせください。
スポンサー募集に関する詳細は下記からどうぞ。
スポンサーの募集を開始しました – PHPカンファレンス関西2012
スタッフ募集
イベント運営をお手伝いして頂けるスタッフを若干名募集しています。とくに今回は会場が増えたので当日にお手伝い頂ける方をお待ちしています。
イベントは参加するだけでも楽しいですが、運営に関わるとまた違った視点でイベントを見ることができます。個人的にはスタッフをやっていて好きなのは、参加している人たちの笑顔ですね。とくに懇親会の最後に壇上から見ると、ほんとみんな良い表情をしてるんですね。そうした光景を見ると「あーほんとにイベントやって良かったなあ」を感じます。
一緒に参加している人を笑顔にしてみませんか?
スタッフ募集に関する詳細は下記からどうぞ。
スタッフを募集しています – PHPカンファレンス関西2012
5/12は大阪産業創造館へ
5月開催ということで、まだ少し時間がありますが、まずは5/12の予定を確保してお待ち下さい。(遠方の方も今なら飛行機の早割も間に合いますよ:D)
今後、準備が整い次第、参加者募集などを開始していきますので、公式 Twitter(@phpcon_kansai)、Facebook(pcon.kansai)をフォローして下さいね。
では、今年もPHPカンファレンス関西をよろしくお願いします。5/12は大阪産業創造館でお会いしましょう!
- コメント (Close): 0
- Trackbacks: 1
PHPUnit テストケースで書き換えた値を復帰する
- 2012-02-09 (木)
- PHP
PHPUnitのテストケースで書き換えた値の復帰について。
テストケースでテストを記述する際に、スーパーグローバルやクラス変数を書き換えることがあるのですが、これらの値を書き換えたまま、別のテストを実行すると書き換えられた状態でテストが実行されるので、それらの値に依存した処理があるとテストが通らないことがあります。
PHPUnitでは、そういったテストをまたがって影響を及ぼすであろう値の保存、復帰を自動で行なってくれる機能があります。
スーパーグローバル
デフォルトでは、各テストメソッドを実行する前に、スーパーグローバル変数($_ENV, $_POST, $_GET, $_COOKIE, $_SERVER, $_FILES, $_REQUEST)の値をが保存されており、テストメソッド終了後にそれらの値がスーパーグローバル変数へ復帰されます。
これらの処理はsetUp()/tearDown()の外側で行なわれており、setUp()の前に値の保存、tearDown()の後に復帰されるので、スーパーグローバル変数については値の保存と復帰を自分で書く必要はありません。
下のソースでは、テスト開始前にスーパーグローバルの内容を保持しておき、実際に値の復帰が行われているかを確認しています。
なお、以下のいずれかの方法で、この機能を無効にすることもできます。
- phpunitコマンドで「–no-globals-backup」を指定
- アノテーションで「@backupGlobals disabled」を指定
- テストケースのインスタンス変数「$backupGlobals」にfalseを指定
また、インスタンス変数$backupGlobalsBlacklistに値の保存、復帰したくない変数名を連想配列で記述するとその変数だけ保存、復帰を避けることができます。
しかし、この機能を無効化するとテスト内で書き換えたスーパーグローバルの値が別のテストでも使用されてしまい、実行結果に影響を及ぼしてしまう可能性があるので、通常はデフォルトのまま有効にしておく方が良いでしょう。
クラス変数
PHP5.3以降の環境では、テスト実行時にユーザが定義しているクラスのクラス変数についてもスーパーグローバル変数と同様に値の保存、復帰を行うことができます。
ただし、デフォルトでは有効となっておらず、以下のいずれかの方法により有効となります。
- phpunitコマンドで「–static-backup」を指定
- アノテーションで「@backupStaticAttributes enabled」を指定
- テストケースのインスタンス変数「$backupStaticAttributes」に true を指定
この機能を用いると、これまでテストが困難だと思われていたSingletonパターンのクラスについて別のテストケースの影響を受けることなくテストすることができます。
下のソースでは、Sigletonで実装したクラスのクラス変数(private)の値が復元されているかを確認しています。
この処理は GlobalStateクラス(PHPUnit/Util/GlobalState.php)の backupStaticAttributes メソッドで実行されます。値の保存、復帰には Reflection が使われており、protected/private な変数についても setAccessible(TRUE) を実行して値をアクセスしています。
Reflection を使って値を取得するには分かりやすいサンプルになっているので、興味がある方はソースを読んでみて下さい。
PHPUnitは奥深い
PHPのxUnitツールとしてはデファクトスタンダードとなっているPHPUnitですが、実に多くの機能があり、まだまだ把握できていません。
全ての機能を使わずともテストは書けるのですが、今回のスーパーグローバルやクラス変数の保持、復元のように知っていればより勘弁にテストが書ける機能があります。
こういった機能を知って、より簡単に楽にテストが書けるようにしていきたいですね。PHPUnit勉強会でもやろうかな。
- コメント (Close): 0
- Trackbacks: 0
PHP Advent Calendar jp 2011 まとめ
- 2011-12-28 (水)
- PHP
PHPer の年末を彩る PHP Advent Calendar jp 2011 が今年も無事に終了しました。
今年は12/1から12/26まで、全26回に渡って全国の PHPer が PHP に関するエントリを投稿しました。今年は見事に登板日を超す人もいなくて、無事に完走できました。(焼肉奢りの人はいませんでした><)参加された皆さんお疲れ様でした!
エントリ内容
今年もPHP言語についてやライブラリ、フレームワークなど多岐に渡る内容が投稿されました。昨年も様々な記事がありましたが、あえて違いをあげるなら PHP5.4 に関する記事が登場したことでしょうか。
PHP 関連では 5.4 や各フレームワークなど内容を絞った Advent Calendar も開催されていたので、PHP Advent Calendar jp については、普段 PHP を使っていて気になること、つまづいたところ、もっとこうした方が良いよ、といった Tips 的が多く、PHP を使う多くの方に参考になる記事が多かったと思います。
他にも、PHP自体のソース解説やフレームワーク論、プロセス制御、hiphop phpなど中級者〜上級者向けのコアな内容や、資格試験、イベント報告、そして退職報告に絡めたエントリなど、盛りだくさんではあるのですが、とてもバランスが取れたラインナップとなりました。
電子書籍化
今年は技術評論社さんのご協力により、Advent Calendar の記事を電子出版して頂ける予定です。せっかくこれだけの記事が集まったのですから、まとめて読めるのは嬉しいですね。
価格は無料で、2012/1 or 2 月頃に提供頂けるようです。みなさんお楽しみに:D
PHP Advent Calendar jp 2011 エントリ
=
- コメント (Close): 0
- Trackbacks: 1
PHP5.4 ビルトインサーバで CakePHP を試食する(CakePHP Advent Calendar 2011 4日目)
PHP5.4のビルトインサーバで CakePHP を動かしてみました。
CakePHP Advent Calendar 2011 の 4 日目です。
いよいよ PHP5.4 の正式リリースが近づいてきました。5.3 からのマイナーバージョンアップとはいえ、Trait や Short syntax for arrays、Array Dereferencing など興味深い機能が追加されています。
そんな新機能の中から注目のビルトインサーバを使って、CakePHP を動かしてみました。今回は CakePHP1系と2系の両方を試しています。
PHP5.4RC2をインストール
まずは現時点での最新版 PHP5.4RC2 が動く環境を作ります。
手順は以前書いたエントリ「 現状のPHP環境はそのままで、PHP 5.4 を試す 」を参考にして下さい。
上記エントリではとりあえず 5.4 環境を作るという内容でしたが、実際にアプリケーションを動作させる場合は、./configure で利用するオプションを指定する必要があります。今回は下記のようにオプションを指定しました。
$ ./configure --with-mysql --with-pdo-mysql --enable-mbstring --with-pgsql=/opt/local/lib/postgresql90
ビルトインサーバを起動
ビルトインサーバは PHP5.4 で実装された新機能です。CLI 版 PHP のオプションとして実装されており、コマンドラインから Web サーバを起動して、その上で PHP を実行することができます。これを使えば Apache のような Web サーバが無くても CakePHP を実行することができます。
では先ほど構築した PHP5.4RC2 環境でビルトインサーバを起動してみましょう。
CLI 版 PHP に「-S」を付けるとビルトインサーバが起動します。「-S」の後ろは HTTP リクエストを待ち受ける IP とポートを指定します。下記例では local:8111 で待ち受けます。なお、ここでは既存の PHP の ini ファイルを利用したいので、「-c」で php.ini のパスを指定しています。
$ sapi/cli/php -S localhost:8111 -c /path/to/php.ini PHP 5.4.0RC2 Development Server started at Sun Dec 4 15:38:15 2011 Listening on localhost:8111 Document root is /path/to/docroot Press Ctrl-C to quit.
起動したらブラウザで「http://localhost:8111/」にアクセスするとページが表示されます。
Ctrl-C を押すと、ビルトインサーバが停止します。
-t で DocumentRoot を指定
デフォルトではコマンドを実行したカレントディレクトリが DocumentRoot になります。「-t」を付けると任意のディレクトリを DocumentRoot に変更できます。
$ sapi/cli/php -S localhost:8111 -t /path/to/docroot
.htaccess は無効
.htaccess はビルトインサーバ上ではただの1ファイルにしかすぎず、mod_rewrite などの制御は働きません。
しかし、ビルトインサーバではリクエストファイル名に「.」が含まれておらず、該当ファイルが存在しない場合は、index.php もしくは index.html を起動する仕様になっているようなので、CakePHP のように index.php からフレームワークが起動するアプリケーションでは問題無く実行することができます。
詳細はPHPマニュアルに
さすが PHP ということで、すでにビルトインサーバについては PHP にマニュアル解説があります。詳細はこちらをどうぞ。
PHP: ビルトインウェブサーバー – Manual
CakePHP2 を試す
では実際に CakePHP2 をビルトインサーバ上で動かしてみましょう。今回動かしたのは 2.0.4 です。
手順は簡単で、CakePHP2 の app/webroot を DocumentRoot に指定して、ビルトインサーバを起動するだけです。
$ sapi/cli/php -S localhost:8111 -c /path/to/php.ini -t /path/to/cakephp2/app/webroot
ブラウザでアクセスすると見事におなじみの画面が表示されます。
本格的なアプリケーションは実行していませんが、ざっと見た感じでは、PHPソースを変更することなく、そのまま実行することができました。
CakePHP1 を試す
次は CakePHP1 をビルトインサーバ上で動かしてみます。今回動かしたのは 1.3.13 です。
$ sapi/cli/php -S localhost:8111 -c /path/to/php.ini -t /path/to/cakephp1/app/webroot
ブラウザでアクセスするといつもの画面が表示されますが、いくつかエラーが出ています。
エラーメッセージは以下。
Strict Standards: Redefining already defined constructor for class Object in /path/to/cakephp1/cake/libs/object.php on line 54 Strict Standards: Non-static method Configure::getInstance() should not be called statically in /path/to/cakephp1/cake/bootstrap.php on line 38 Strict Standards: Non-static method CakeLog::getInstance() should not be called statically, assuming $this from incompatible context in /path/to/cakephp1/cake/libs/cake_log.php on line 290
E_STRICTエラー
PHP5.4 からエラー出力レベル E_ALL に E_STRICT が含まれたため、E_STRICT に引っかかった箇所がエラーとして表示されてます。
CakePHP ではフレームワーク自身が error_reporting() でエラー出力レベルを上書きしてしまうので、E_STRICT を除外するように変更する必要があります。(display_error=off でエラー表示を抑制する手もありますが、開発環境では表示しておいた方が便利です。)
この問題についてはビルトインサーバ上でなくとも、PHP5.4環境では同じく発生します。
修正箇所は github に commit してあるので、こちらをどうぞ。
Commit 9cbc30101c7d43221b88ea0d9fa66c2cfaa4f1d1 to shin1x1/cakephp – GitHub
URLパス生成の問題
「http://localhost:8111/a」など存在しないコントローラにアクセスするとお馴染みのエラー画面となるのですが、CSS が効かずにテキストのみが表示されます。画面下の画像も表示されていません。
これはフレームワークのURL生成に問題が発生しているためで、HTMLのソースを見ると CSS のパスが「/index.php/css/cake.generic.css」のように頭に余計な内容が入っています。
<link rel="stylesheet" type="text/css" href="/index.php/css/cake.generic.css" />
この対応として、app/webroot/index.php に以下の記述を追加します。
+ if (php_sapi_name() == 'cli-server') { + $_SERVER['PHP_SELF'] = '/'.basename(__FILE__); + } if (!include(CORE_PATH . 'cake' . DS . 'bootstrap.php')) {
これで「http://localhost:8111/a」でアクセスすると CSS が効いて、いつもの表示になります。
他にも FormHelper が生成する URL など各所で同じ現象が発生しますが、上記修正で対応ができます。
ユニットテストもちゃんと通りました
ちなみに CakePHP1 系で作ったとあるアプリケーションの alltest を通すとビルトインサーバ上でもちゃんとテストが通りました。これで 5.4 上でも動作することが分かりました:D
ビルトインサーバで手軽に試す
ビルトインサーバの利点はなんといっても「手軽さ」です。
新たに環境構築が必要な場面で、いちいち Apache に VirtualHost を追加したりせずともビルトインサーバを使えば、すぐに任意のディレクトを DocumentRoot にして Web サーバを起動することができます。
ビルトインサーバは CLI 版 PHP ではデフォルトで組み込まれるので、拡張等無しで多くの環境で利用できるのが良いですね。
ぜひ PHP5.4 ビルトインサーバでお手軽に CakePHP を試してみて下さい。
明日の CakePHP Advent Calendar 2011 5 日目は、@kashioka さんです。お楽しみにー。
- コメント (Close): 0
- Trackbacks: 5
PHPerの悩みを解決する arry を作ってみた(PHP Advent Calendar jp 2011 Day 2)
- 2011-12-02 (金)
- PHP
PHP Advent Calendar jp 2011 2日目です。
はい、PHPer王子です。
前日の @cakephper さんになんだか妙な名前を付けられました が、今年も PHP Advent Calendar を実施することになりました。管理人がなぜか 2 日目という変わったスタートとなりましたが、なんとか12/25の最後日まで駆け抜けたいと思います。参加されたみなさんよろしくお願いします!
ちなみにまだ数日空きがあるので、いっちょ書いてみよーという方の参加お待ちしてます:D
PHPerにおける連想配列の悩み
王子らしくPHPerの悩みを解決したい!ということで、連想配列にまつわるお悩みを。
普段PHPを書いていて何とも悩ましいのが、array関連の関数です。PHPerなら、もう何度となく聞いたことがあるであろう「引数に統一感が無い」というやつですね。
一例をあげると、コールバック関数を受け取る array_filter, array_map, array_reduce などの関数の場合、引数として受け取るのはどれも対象の連想配列とコールバック関数の2つです。普通に考えれば、どの関数でも同じ順序で引数を受け取れば良いように思うのですが、下記のように array_filter/array_walkは第1引数が array になっているのに対して、array_map は第1引数がコールバック関数となっています。
array array_filter ( array $input [, callback $callback ] ) array array_map ( callback $callback , array $arr1 [, array $... ] ) bool array_walk ( array &$array , callback $funcname [, mixed $userdata ] )
実際のコードで書くと違和感はさらにつのります。引数が違うという点もそうですが、array_mapの無名関数の後に連想配列を指定するのがなんとも気持ち悪いですね。
arryなら!
ということでもっとシンプルに書けるように arry というライブラリを作ってみました。
これを使うとこんなにすっきりと書けます。
メソッドチェイン
各メソッドはインスタンスを返すので、メソッドチェインもできます。
実行すると以下のようになります。
200 180 160 140 120 100 80 60 40 20
メソッドチェインを繋げていく
上手く繋げて行くと、array を追加して、各配列について計算した結果を追加して、ソートして、出力する、ということが一気に書けます。
実行すると悲しき今シーズンの結果が表示されます。
1. Dragons 75 59 0.560 2. Swallows 70 59 0.543 3. Giants 71 62 0.534 4. Tigers 68 70 0.493 5. Carp 60 76 0.441 6. Baystars 47 86 0.353
キーがあるかどうか
PHPでハマりがちな isset() / array_key_exists() も exists() メソッドで指定したキーが連想配列に存在するか確認できます。
PHP5.4なら
5.4ならarray()の代わりに[]が使えるので、さらにすっきりとなります。
実はこの arry という名前は、5.4 以降では array() を使わなくだろうから、この名前にしています。今は紛らわしいですが、5.4 が当たり前になったころにはこのライブラリ以外で array() と書くことはなくなるかもしれません:D
本当はSPLで
そんな arry ですが、array系関数の代わりとして使うにはまだまだ実装が足りません。
実はこれを書いた理由は SPL でこういった実装が欲しかったからなんですね。ArrayObject もありますが、実装メソッドが少なく、完全に連想配列をメソッドで操作するというわけにはいきません。
arry を膨らませていっても良いのですが、PHP 標準の SPL でこういったクラスが欲しいですね。
さて PHP Advent Calendar jp 2011 3日目は、AWS の貴公子 @tottokug さんです。どんなネタが飛び出すか楽しみですね!
- コメント (Close): 0
- Trackbacks: 0
あらためてPHP5.3 – 第2回関西PHP勉強会
11/24に大阪市内で第2回関西PHP勉強会を開催しました。
平日夜の開催ながら多くの方に集まって頂き、本当にありがとうございました。
今回は「あらためて5.3、こんにちは5.4」をテーマに、PHP5.3, 5.4に関するセッションが2つ、ライトニングトークが飛び入り含めて7つとなり、終了時間ギリギリまでめいいっぱいの内容となりました。
あらためてPHP5.3
「あらためてPHP5.3」ということで、PHP5.3ならではの機能について発表してきました。
登場からもう2年半経つPHP5.3ですが、環境としては使いつつも、5.3ならではの機能を使っている人はまだ少ないように感じます。そこで5.3の代表的な機能である「namespace」「クロージャ」「LSB」を取り上げました。
とは言うものの、実は「namespace」に関する内容がほとんどになっています。実は資料を作っている段階では namespace だけで発表時間(40分)を超過する内容になってしまってました。あれこれと削ったのですが、半分以上が namespace に関することになりましたね。(PSR-0 のこととか autoload のこととかも話そうと思ったました:D)
namespace は一見すると地味な機能で、名前競合などを経験して実際に困った人でないとメリットが見えづらい機能です。ただ今後普及していくであろう5.3フレームワーク(Lithium, Symfony2, ZF2, FuelPHP等々)ではフレームワークに namespace が利用されているので、フレームワークを利用する側も使い方くらいは知っておく必要があります。
初歩的な部分や実際に使ってみたハマリどころなどもご紹介していますので、これから5.3の機能を触る方は参考にしてみてください。
- コメント (Close): 0
- Trackbacks: 1
PHP Matsuri is Awesome!
PHP Matauri 2011 が終了しました。いやあ楽しかった。
大きな問題もなく無事にイベントを終えることができました。関西の方はもちろん、大阪開催にも関わらず、多くの方に関西外からお越し頂き、みなさん本当にありがとうございました。
個人的にも昨年参加できなかった PHP Matsuri にようやく参加できました。色々と感じたことなどをつらつらと書いていきます。
PHP Matsuri はどんなイベント?
参加前
- 昨年の PHP Matsuri は参加できず。
- まあ運営はいつものメンバーなので、後で聞いてみよう。
- みんな「とにかく楽しかった」しか言わない。。。
- 「カンファレンス」「ワークショップ」「ハッカソン」「開発合宿」「アンカンファレンス」が合わさったイベント?
- それぞれ参加したことあるし、魅力的なラインナップ、確かに楽しそうなのは分かる。
1日目終了
- カンファレンス、ワークショップは納得の内容。
- TDDワークショップでちょろっと講師。参加された方、ありがとうございました!(FizzBuzzでPHPUnitを体験)
- 翌日のライトニングトーク大会に向けてハッカソン開始するが、細々したことばかりやって今ひとつ手につかず。
- まあ雰囲気楽しいし、翌日の発表は今回はもういいかなーと思いつつ、3:00頃に就寝。
2日目午前終了
- チェックアウトぎりぎりの10:00前にようやく起床(同室の@itemanさんに起こしてもらったm(_ _)m)
- みんな頑張って作業してるのに触発されて、慌てて作業開始。
- そもそもテーマすら決めてなかったから、なかなか決まらず。
- ようやくあれこれやりだした頃にライトニングトーク大会締め切りが来て、エントリ出来ず。
- ただ頭のどこかでは「まあ間に合わなかったら別にいいか。」と思っていた。
2日目ライトニングトーク大会開始
- あ!!!そういうイベントか!!!
- ようやくイベントの核に気づく。
- 発表しない PHP Matsuri なんて、クリープの無いコーヒー、炭酸の無い RedBull やん。。。
PHP Matsuri はどんなイベント?
まず参加前に思っていた「「カンファレンス」「ワークショップ」「ハッカソン」「開発合宿」「アンカンファレンス」が合わさったイベント」は確かにそのとおり。それぞれが単体でイベントできる内容でかつ、わずか30時間の間に同じ場所で一気に繰り広げられるから、濃度が半端無く濃い。それだけに参加した人には強烈な印象(疲れも)が残ります。
ただそれだけじゃなく、参加して分かったのは、実は一番大事なコンテンツは2日目午後の「ライトニングトーク大会」だということ。そもそものコンセプトである「アウトプットする」を実践する「ライトニングトーク大会」こそがイベントで一番のコンテンツであり、@yandoさんが書かれているとおり、まさに「参加者の皆さん自身こそが目玉コンテンツ」ですね。
それを理解した頃には、まさに「後の祭り」なわけで、次回は発表するようにします!
PHP Matsuri を関西で開催したということ
多くの方に参加頂いたわけですが、関西以外からの参加者の方が多く、わざわざ関西に来てもらえて嬉しい気持ちでいっぱいでした。PHPカンファレンス関西の時もそうでしたが、イベントのために来阪してもらえるということはありがたいことですね。
一方で、関西からの参加者が少し少なく寂しい気持ちも若干ありました。
そもそも関西スタッフである自分のアピール不足が原因でもあるので、そこは反省するとして、ただこういった機会はそうは無いので迷っていた方には、できたら参加してもらいたかったなあという思いが残っています。
イベントに参加したからと言って、次の日から人生がバラ色になるとかそういうことはありません。イベントで高ぶった気持ちも翌日からの日常で徐々に落ち着いていき、いつもの日々に戻ります。
ただ確実に心のどこかでは何かが変わります。
上手く伝わるか分かりませんが、自分の中では、日常で徐々に積もっていく閉塞感というか、勝手に自分が創りだした心の壁のようなものを打ち砕くような効果があります。あと、なんとなくですが、スタッフ、スピーカー、参加者に関わらず、参加した人同士の結びつきも感じます。通常のイベントでもこういった感覚はあるのですが、一夜を共にした仲というのは(男女間に限らず)特別なものを感じます。
今後、関西でもイベントを開催していきたいので、次回こそはみなさん参加をお待ちしてます!
次回は?
会場でも次回開催を期待する声が多く、私自身もまた参加したいと思うのですが、いかんせん有料+宿泊イベントということで運営負荷も大きいので、まだどうなるかは未定です。
突然ですが、最後にイベント中のとあるシーンが写真に残っていましたので、ご紹介します。
左から、マイクを持って何かを言っている@shin1x1、真ん中で不敵に笑う@yando、何かを決意したような@k1low。
次回が楽しみですね。みなさん、おつかれさまでしたー。
one more thing…
イベントの翌々日にCakePHPコアデベロッパーの@predominantさんと夕食に行くことができました。
身振り手振りにGoogle翻訳を駆使し、Air に入れていた自社フレームワークのコードを見てもらったり、MotoGP の話をして、とても楽しい時間を過ごすことができました。こういった機会に巡り会えたもの PHP Matsuri のおかげですね。
ありがとうございましたm(_ _)m
- コメント (Close): 0
- Trackbacks: 0
5分でわかる最近のPHP – 2011夏
ここ最近のPHP界隈では、興味深いニュースが続いています。最近PHPを追っかけていない人へ少しづつご紹介。
近頃、PHP界隈でホットなニュースを5つ、つまみぐいして見てみましょう。
1. PHP5.4.0-alphaリリース!
PHPの次期バージョン、5.4.0-alphaがリリースされました。
まだ alpha1 ですが、すでに Traits や Array dereferencing support など様々な機能追加が行われています。
特に Traits は面白い機能で、いずれはこれを利用したフレームワークの登場が考えられます。ぜひ使ってみたい機能ですね。
今後、正式リリースに向けてさらなる新機能が追加されていくようなので、目が離せません。
2. Short syntax for arrays を PHP5.4 で採用!
PHPでおなじみの連想配列を、array()ではなく、JavaScriptのように [] で定義できるシンタックスが採用されました。
$array = [1, 2, 3]; $array = ['foo' => 1, 'bar' => 2];
これは、そもそも2008年に @rsky さんが提案されていたもので、議論に上がる->リジェクトされる or 放置されるを繰り返して、3年越しでようやく実現となりました。@rsky さんの行動がPHPを動かしたわけです。おめでとうございます!
もう array() と書くのは過去の遺産になっていくでしょうね。(次は配列がオブジェクトになって、あの関数群がメソッドにまとまってくれたら。)
3. Built-in web server を PHP5.4 で採用!
PHP5.4 から CLI 版に簡易 Web サーバーが組み込まれるようになりました。
この機能はmoriyoshitさんが作られたものです。すばらしい!
PHPは Apache に組み込んで(mod_php)で利用されることが多いので、そもそもこういった機能は不要では無いか、という議論もあったようなのですが、httpd.conf 等の設定を変更することなく、コマンドラインからすぐに動作確認ができるサーバを起動できるのは非常に便利です。
実は昔、CakePHPにこういった開発サーバを組み込もうと思って、さわりだけ作ったりしたのですが、それが PHP でサポートされるようになりました。
普段の開発もそうですが、新たなライブラリやフレームワークを試す時にも便利ですね。
4. CakePHP2.0 Betaリリース!
CakePHPの次期バージョン、2.0のBeta版がリリースされました。
こちらはPHP5.2.6以降が対象バージョンとなっています。5.3以降ではなく、あえて5.2を範囲に入れているあたりが、1系でPHP4 & PHP5両対応を行っていたcakeらしいです。(個人的には5.3以降を対象にして、namespaceに対応して欲しかった感はありますが。)
alpha版を少し触ってみましたが、フレームワークのクラス構造が一新しており、ソースも前より洗練されている印象です。1系で懸念点であったパフォーマンスについてもbeta版の時点で改善されているようです。
今後の正式リリースに向けて期待が膨らみますね。
- CakePHP 1.3.11 and 2.0.0-beta released | The Bakery, Everything CakePHP
- CakePHP 1.3.11 と 2.0.0-beta のリリース(訳) – 24時間CakePHP
5. Symfony 2.0.0 リリース!
Symfonyの次期バージョン、Symfony2がついに正式リリースされました。
個人的にはPHP5.3フレームワークでは本命だと思っており、これを機に5.3の本格利用がようやく進むのではないでしょうか。日本のSymfonyコミュニティも盛り上がってるので、今後Symfonyがぐいぐい来そうですね。
PHPは止まらない
PHPは、独自の歩みながらどんどん前に進んでいっています。昔の知識のままで語らず、進化を続ける今のPHPに触れてみて下さい。
- コメント (Close): 0
- Trackbacks: 1
Google+ 非公式 API で情報を取得するPHPライブラリを使ってみた
まだ登場していない Google+ の API ですが、非公式な API を利用して情報を取得するライブラリがあったので使ってみました。
Google+のストリーム で教えて頂いた php-googleplusapi というライブラリで github で公開されています。
はじめは README に従って、MySQL の設定などしたのですが、Google+ から情報を取得するだけなら、DB の設定は不要です。
付属のサンプルソースだと色々な処理が入っているので、直近10件の投稿を取得する単純なサンプルを書いてみました。
実行すると以下のように投稿を取得できます。
$ php gplus_fetch_posts.php
他にはプロフィール情報が取得できました。(そもそも、↑のサンプルソースはプロフィール情報に含まれている投稿を出力しています。)全部は見ていないので興味ある人は他に何が取れるか試してみて下さい。
通知系が取れると面白かったのですが、まだこのライブラリではできませんでした。
まあ、こういった内容なら API を使わずともスクレイピングで取得できるのですが、いちおう Google+ から JSON でデータを取得しているので、API の雰囲気は味わうことができます:D 早く正式版の API が登場してほしいですね。
- コメント (Close): 0
- Trackbacks: 0
FizzBuzzではじめるテスト – 第1回関西PHP勉強会
7/22に大阪市内で第1回関西PHP勉強会を開催しました。
4月にPHPカンファレンス関西を開催して以来、3ヶ月ぶりにPHPの勉強会を開催しました。
参加頂いたみなさんありがとうございました。また発表を快く引き受けていただいた皆さん、本当にありがとうございました。
イベント名に「第1回」と付けたのは、今後も継続して開催していきたいという気持ちの表れです。PHPを軸に色々なテーマで開催していきたいと思うので今後もよろしくお願いします。
スイーツタイム
勉強会をやるときは、休憩時間にみんなで食べるおやつを用意するのですが、今回は @msng さんに色とりどりのマカロンを用意してもらいました。見た目も鮮やかですし、適度な甘さで好評でしたね。(たしかに美味しかったです!)
昨今「スイーツタイム」が話題になっていますが、会場で飲食が可能なら実施することに賛成です。
単純に勉強会で発表を聞くだけでも疲れますし、特に平日夜の勉強会だとお腹が空く時間帯でもあります。そんな時に甘いモノをみんなで食べると自然と笑顔になります。
運営側としてもおやつを配るという行為を介して、参加している方と軽く言葉を交わしたり交流ができます。参加している方同士も「おいしいですねー」と隣の方と一言二言だけでも話ができるきっかけになります。
この効果は意外に侮れません。何度かこのおやつタイムをやっていますが、おやつタイム後のセッションは明らかに空気が変わります。それまで見知らぬ者同士で張り詰めていたような空気が和らぎ、みんなで一緒に聞こう空気に変わります。(もちろん、その固い空気をほぐすのが司会者の役割でもあるのですが、未熟なだけにおやつの力は絶大です)
このおやつタイムは、まっちゃだいふくさんが勉強会でいつも美味しいスイーツを出されているという話を聞いてから始めました。まっちゃだいふくメソッドとも呼ばれるこの手法はかなり有効なので、まだご存知無い方は、まっちゃだいふんさんの発表を見てみてください。
FizzBuzzではじめるテスト
今回はテーマを「テスト」にしたのですが、まずはテストの導入として、FizzBuzzを題材にテストを行う内容で発表しました。
テストの基本の考え方から、Selenium IDEとSimpleTest+CakePHPで、FizzBuzzをテストする内容になっています。
サンプルソースと資料は以下になりますので、これからテストをやってみようかなーという方は参考して下さい。
テストを動かす時の補足です。
P.13 / Selenium IDE デモ
サンプルソースの app/tests/selenium/account.html がデモ用ファイルなので、 Selenium IDE で開いて実行して下さい。
FizzBuzz の実行
基本は CakePHP の設置方法と同じです。一例としては、サンプルソースをダウンロード+展開して、app/webroot を document_root に設定して下さい。
P.27 / Selenium IDE で FizzBuzz をテスト
サンプルソースの app/tests/selenium/fizzbuzz.html がテストケースなので、 Selenium IDE で開いて実行して下さい。
P.29 / SimpleTest(CakePHP) で FizzBuzz をテスト
http://localhost/test.php にアクセスして、model/Fizzbuzz のテストケースを実行して下さい。テストケースは、app/tests/cases/models/fizzbuzz.test.php 、テスト対象の Fizzbuzz モデルは、app/models/fizzbuzz.php です。
参加された方からのフィードバック
- コメント (Close): 0
- Trackbacks: 1
ホーム > PHP
- 検索
- フィード
- メタ情報