php

PHPカンファレンス2011 でLTしてきました

「闇鍋的PHP魔改造」という中二臭ぷんぷんするタイトルで、オレオレPHPを作ったよという内容のことを話してきました。 20110910 闇鍋的php魔改造 View more presentations from do_aki 以下、より突っ込んだことを。

php のソースコードを眺めていたときの雑多な流れ

php

前記事 「php 5.4 リポジトリに舞い戻ってきたクロージャの $this サポート - do_akiの徒然想記」 を書くきっかけとなった経緯とか、その周辺の調べたことを、備忘録的に書き記しておく。乱文だし、尻切れトンボな感じだけど、せっかく調べたならオープンな…

php 5.4 リポジトリに舞い戻ってきたクロージャの $this サポート

php

php 5.3 beta の時は使えていたのに、stable リリース時には消えていた クロージャ( 無名関数 ) の $this サポート。 これが、php 5.4 のブランチで再びコミットされ、 php5.4 alpha1 で利用可能になっている。 とはいえ、ただそのまま移植されたわけではな…

phpでTDD&CI ワークショップに参加してきた。

TDDやCIを php で実施する方法をワークショップ形式で学ぶ勉強会に参加してきました。 場所は六本木のグリー本社。主催は [twitter:@tsuyoshikawa] さん。 前半は座学で、後半はTDD組とCI組に分かれてのワークショップという形式でした。 その感想記事です。

php memcached クライアントにおける memcached injection について

shibuya perl mongers テクニカルトーク #14 に参加してきました。そのなかで、 memcached injection というタイトルで発表がありました。ざっくりと簡単に言えば、 key に改行(CR LF)を含む値が渡された場合、ライブラリの実装によっては、意図しない動作を…

Xdebug にパッチを送ってみた。

PHPのデバッグのお供には Xdebug が定番です。Xdebug を導入するだけで、 var_dump はHTMLでハイライトされ、例外やエラーが発生したときは見やすく彩られたバックトレースが表示されます。また、適切な設定と eclipse (vimでも可能らしい)があれば、ソース…

php 5.2系のセッションID 生成に任意のハッシュアルゴリズムを利用する

前回、php のセッションID と エントロピーソース で書いたとおり、php5 では、セッションID の生成アルゴリズムを設定によってある程度カスタマイズできます。session.entropy_file と、session.entropy_length については前回説明したとおり、セッションID…

php のセッションID と エントロピーソース

php のセッションID についてのお話。 php5 以降、セッションID の生成アルゴリズムを設定値によって、ある程度制御できるようになっています。

利用しているphp組み込み関数の一覧を列挙するワンライナを書いてみた

「PHPの小文字から始まる関数が4405個もあってびっくりした件」という ブログを見て、 ふと、自分のコードでは標準関数をどのくらい利用しているのだろう? と思い、 調べるスクリプトを書いてみた。

PHP と MySQL と サーバサイド プリペアードステートメント

少し前のお話なのだけど、せっかくなので書いておくことにする。MySQLのクエリログを見ていたら、 prepare に相当するログが一切流れていないことに気づいたので、PDO(mysql)でサーバサイドプリペアードステートメントが利用されていないんじゃないか疑惑が…

モダンなPHPでのベンチマークの取り方

php

pear にも Benchmark というライブラリがあるのですが、使うのがやや面倒。せっかく php5.3 で無名関数が利用できるので、 perl のBenchmark::timethese っぽく、簡単に実行できるようなベンチマークを作ってみた。

namespace と utf-8 の微妙な関係

php5.3になって 名前空間が利用できるようになったのですが、 namespace キーワードの前には declare 文以外を置いてはいけない という決まりがあります。 ( http://www.php.net/manual/ja/language.namespaces.definition.php )ところが、namespace の前に…

モダンPHP - 名前空間に関する注意点

昨日行われたモダンPHPの懇親会で id:Fivestar さんにもお話したのですが、__autoload に渡ってくる名前は完全修飾されたクラス名となり、基本的には 先頭にバッスラがつかない、グローバルからの名前空間+クラス名 が渡されます。

モダンPHP - ちょびっとIteratorに関する考察

php

モダンPHP勉強会に参加してきました。 名前空間のお話と、SPLのお話。名前空間については、現在作っているFWでどうしようか悩み中なので、 PHP Standards Working Group の存在を知ったメリットは大きかった。できる限り標準に合わせたいしね。 とはいえ、そ…

クロージャの使える配列関数

php

PHP5.3 を使っていて、無名関数が利用できるので配列操作が非常に便利になったのですが、 自前で実装するよりも、ネイティブで用意している関数を利用する方が早いので、どんなものがあるのかまとめてみた。それにしても、array_map の挙動はキモイ……。

memcached の無期限キャッシュを取得する方法

memcached に expire を 0 で値を set すると、メモリから溢れるまで消えることはない。 この、無期限にキャッシュされた値を取得する方法が必要になったので調べてみた。