第25回PHP勉強会

日曜日は第25回PHP勉強会に参加させていただきました。
会場は椅子が素敵だったオープンドリームさんです。会場提供ありがとうございます。

自分がとったメモのせときます。所々間違ってたらごめんなさいです。

君もまたextensionか&簡単なサービスを作ってみた - shimookaさん

extensionのほう

  • PHP5.1からType Hintingにarray使える。
  • PEAR::PHP_Parse使ってPHPコードからCodeGen_PECL用のspecファイル作成。
  • ところでphpizeってなんて読むの?
    • ぴーえっちぱいず?ぴーえっちぴーあいぜっといー?
    • ぺちぱいずで決定
  • phpize -> configure -> make -> make install -> php実行
    • segfaultキタ!! 朝は大丈夫だったのに!w
  • デモでPEAR::DBのspec生成。
  • 生成したspecの型情報が全部stringになってる。
    • コードだけじゃ型を判断できない。function定義の後ろにdocコメントを書きて型指定。
      • うっ、後ろ??
      • PHP_Parserおかしくね?
      • まあαだからしかたないのかも
  • ん?docコメントだけでよくね?最初からspec書いた方が早くね?という意見は受け付けません。
  • PHP_Parseの構文解析ってphpに投げてるの?それとも自前?
    • 自前。yaccを使ってるぽい。
  • PHP5の構文はspecには反映されないっぽい。privateとか。コメントにて訂正いただきました。

サービスのほう

  • 「スピードハックス」に作業記録を作成する大事さが書かれているらしい。
  • でも例えばExcel開きっぱなしで、作業を細かく記録するのは面倒くさいよね。
  • Web系の仕事してたら、ブラウザは常に開いてるんじゃない?
  • Bookmarkletを使ってクリックしてテキスト1行入力するだけ。はてブ形式でタグも。
  • 半日で作成。すごい!
  • シンプルで記録が楽そう。ちょっと使ってみたいなあ。

正規表現信者の分裂 - shomaさん

  • 最近、正規表現の復習をしたのでshare
  • PCRE Perl互換の正規表現。最近はデフォルトで有効
  • ドキュメント古い?「サポートされません」みたいに書いてるようなことも使えたりするらしい。
  • 修飾詞
    • S
      • で解析をキャッシュ。ループとかで何度も同じものを呼ぶ場合に是非。
        • Perlのoみたいなもの?
    • U
      • 貪欲さの反転。いろいろ便利らしい。
  • [:alpha:]とかPOSIXの文字クラスも使える。
  • 先読み、後読み。(?=式), (?<=式)
    • 否定もできる
  • 再起 ?R
  • 条件もかける (?(条件)真パターン|偽パターン)
  • 詳説 正規表現の第3版(洋書)にはPHPの章があるらしい。おすすめ。
  • 他にも沢山ありました。勉強になるなあ。今度から正規表現書くときの引き出しが増えたかも。

テンプレート管理ツール r3 - ogiさん

  • Y!が最近オープンソースで公開したテンプレート管理ツール
  • 管理システムなのでSmartyみたいなエンジンではない。テンプレのプリコンパイラみたいな。
  • R3からphpとかSmartyのコードを吐く
  • Y!の社内ツールをゼロから書き直し。現在α版。
  • productsとintl。複数のサイトと言語・地域を掛け合わせてテンプレートを生成する。
    • 生成される数 = products数 * intl 数
  • とかとかいうタグが置き換わる。
    • 継承を使って、違うところだけ書き換える。
      • 継承関係は複雑になってくると分からなくなりそう。
  • アプリ側でproductsを選んで、ブラウザのAccept-Languageでintl判断とか。なるほど。
  • Ver1.0でWeb GUIがつくらしい。
  • 国際化することが前提。かなりニッチな仕組み。
  • intlを携帯やPCとかと見立てて使うと便利かも??
  • コマンドが長くて面倒っぽい気がちょっとしました。

PHPの奇妙な8進数&皆様にご相談 - hnwさん

  • round関数大人気w
  • PHP 5.2.1までは、8進数でオーバーフローすると10進数に。5.2.2で修正
    • strtolをつかってfloatに。strtolをオーバーフローするとzend_strtodに投げる。
    • zend_strtodは10進数専用。
    • 「ありのまま今起こったこと話すぜ(ry
  • PHPならDisって良いような空気が流れていて困る。PHPはいじめられっこ
  • PHPのroundはある意味賢い一面もあり。
  • 相談の結果、これからも発見したら書いていくことにw
  • PHP以外の言語のこれどうなの?ってなことを書いても反応薄い。

サービス作成のご相談 - LINDさん

  • ATM検索作ってます。
  • スクレイピングしてgeocodingしてGoogle Maps上にプロット
  • 位置情報をどうやって管理しましょう?
    • MyGIS(MySQL) or PostGIS(PostgtreSQL)というのを使えばいいっぽい。GISを格納できる。
  • Javascript切ってGoogle Mapsを見るといい感じにpngで表示。プロットもしてくれる。
  • Yahoo!電話帳は住所の宝庫
  • ATM検索かなり欲しいです! 携帯で使えるとかなり便利そう。

懇親会

  • 焼肉
  • 周りは自称社内ニートな方々。うらやましいw
  • なんだかんだでC言語C言語はユニバーサルランゲージ!言語を作るC言語は唯一の存在。
  • phpanonymous functionいいよね。試してないけど。
    • でも中身はヌル文字駆使したアレのsyntax sugarだよ?
    • でも見た目がイイ。
  • Windowsの内部の設計は実はかなりイケている?
  • バーコードの設計はかなりイケている?
  • これからはやはり携帯?
  • ノキアすげえ!Mobile Web Server
  • 日本ではphpizeはぺちぱいずに決まりました。
  • 俺たちの職業はダブルクリック。w
  • メイドには癒しを求めている。
  • 流石に添い寝は…
  • 名刺つくらなきゃなあ。すっごく申し訳ない。