タグ

ブックマーク / blog.r-sky.jp (13)

  • PHP Memcached Extension をより軽量高速にしてみるテスト | チラシのうら

    php-memcached-dev/php-memcachedをforkしたmsgpack-and-snappyブランチで、シリアライズ方式にMessagePackを、圧縮方式にSnappyを選べるようにした。→GitHub MessagePackを使うにはPECL msgpackをインストールした上で、configureのオプションに --enable-memcached-msgpack を、Snappyを使うにはSnappyをインストールした上で --with-snappy-dir を付ければよい。 MacPortsでライブラリを入れている場合の例: phpize ./configure \ --enable-memcached \ --enable-memcached-msgpack \ --with-libmemcached-dir=/opt/local \ --with-snap

    PHP Memcached Extension をより軽量高速にしてみるテスト | チラシのうら
  • php-mecab 0.5.0 | チラシのうら

    拙作php-mecabがMeCab 0.99でビルドできなかったり、PHP 5.4でビルドできなかったのを修正した。 MeCab 0.99に対応するため、構造体の変更によって互換性が失われた関数を無効にしている。今後の開発はPHP 5.3.0以降とMeCab 0.99以降のみサポートし、MeCabの新たな機能を網羅したい。 GitHub/rsky/php-mecab ダウンロード 他のプロジェクトたちも、とりあえずセーフモードチェックを切る対応をしないと・・・ 追記 OpenDogs PHP extension channelも更新した。 インストール: pear channel-discover pecl.opendogs.org pear install opendogs/mecab アップグレード: pear upgrade opendogs/mecab

    php-mecab 0.5.0 | チラシのうら
    aki77
    aki77 2012/03/06
    5.4対応
  • PHP 5.4 の配列Tips | チラシのうら

    PHP5.4 Advent Calendar 2011 4日目です。3日目は@ooharabucyouさんでした。 2日目の@yohgakiさんの記事で紹介されたように、PHP 5.4から [] で配列を定義できるようになります。大変めでたいですね。 この記事ではその他の配列まわりの変更を紹介したいと思います。 Array Dereferencingの採用RFC: Function Array Dereferencing が取り込まれました。 これまでは配列を返す関数の返り値の一部だけが欲しいときでも、その値を一度変数に格納してから $foo[0] や $bar['baz'] としてアクセスする必要がありました。 Array Dereferencingによって、関数呼び出しの後ろに [] 演算子で配列の要素に直接アクセスできるようになります。 サンプル1function foo($valu

    PHP 5.4 の配列Tips | チラシのうら
    aki77
    aki77 2011/12/06
    5.4
  • PHPエクステンションのリポジトリ始めました - 讃容日記

    長らく放置しておりましたブログとPHP拡張のメンテをぼちぼち再開します。 で、復活第一弾のエントリはPiece Network 3のテーマとして、PHP 5.3のサポートとGitHub/PEARチャンネルの公開をしましたので、そのご報告をば。 現時点ではよく使われているっぽいMeCabエクステンションと Tokyo Cabinetエクステンションを公開しています。他のものも需要がありそうなものから順次追加していきます。 PHP 5.3対応 PHP 5.3から ZEND_BEGIN_ARG_INFO_EX() マクロにstatic修飾子が含まれるようになったため、static ZEND_BEGIN_ARG_INFO_EX(...) としていた箇所が軒並みエラーになっていたので、これを修正しました。 また、php_set_error_handling(), php_std_error_hand

    PHPエクステンションのリポジトリ始めました - 讃容日記
    aki77
    aki77 2010/06/20
  • 続々・Zend Engine Hack (クロージャもあるよ) (拡張モジュールもあるよ) - 讃容日記

    php_qiq-0.5.0.tgz (PHP 5.2用拡張モジュール) php-5.2.5-rsky-080228.patch (PHP 5.2.5用パッチ) php-5.2.5-rsky-080228-win32.zip (Windows用バイナリ) 拡張モジュール版もできました。普通のPHP extensionとしても使えますし、Zend extensionとしてAPCやeAccelerator等より先にロードすればキャッシュも効きます。ただし、ZEND_APIで修飾されていない (dllexportされていない) 関数を多用しているため、Windows向けにはビルドできません。 モジュール名のQIQは「PHPの次」を意味します。読み方はたぶん「くいっく」。「きゅーあいきゅー」でもおk。小文字でPHPと並べると字面が対照的なのが気に入っています。 dvd btb qiq php Win

    続々・Zend Engine Hack (クロージャもあるよ) (拡張モジュールもあるよ) - 讃容日記
  • 続・Zend Engineハック - 讃容日記

    無名関数がかなり使いやすくなりました。高階関数のような記述もできます。 たとえば、これの結果は <?php function($func){ $func('Hello, Anonymous World!'); }(function(){ return function($str){ echo $str, PHP_EOL; }; }()); こうなります。 Hello, Anonymous World!激しく使えるので、英語の壁を乗り越えてphp.internalsに投げたくなってきました。 すべての変更点は以下の通りです。 同じ無名関数を返すステートメントを複数回実行できない問題を修正。 無名関数の生成はコンパイル時の1回だけなのでループ中に書いてもcreate_functionのようにメモリを浪費しない。 無名関数を直接コールできるように改良。 JavaScriptの無名関数のように使え

    続・Zend Engineハック - 讃容日記
    aki77
    aki77 2008/01/29
  • php_mecab-0.3.0: 某所より引っ越し - 讃容日記

    php_mecab-0.3.0.tgz PHP 5.3/6.0に対応。 PHP6のUnicode文字列とC文字列の相互変換をするエンコーディングを指定するためのphp.iniディレクティブmecab.internal_encodingを追加。 指定できる値はICUが対応しているエンコーディング名で、デフォルト値はUTF-8PHPスクリプト内ではini_set()のほか、mecab_set_encoding()関数やMeCab::setEncoding()メソッドで指定可能。 ini_get(), mecab_get_encoding(), MeCab::getEncoding()で現在の値を取得することもできる。

    php_mecab-0.3.0: 某所より引っ越し - 讃容日記
  • PHPカンファレンス2007プチレポート - 讃容日記

    もうあれから6日が経過しようというところですが、遅ればせながら。 PHPカンファレンス2007に参加、「今日からはじめるPHPエクステンション」という演題で喋ってきました。 久々のプレゼンということもあり、すごく緊張していました。もっと滑舌よく、手際よく進められないといけませんね。 定員60名の小会場で立ち見が出るほど来てもらえたのは正直嬉しかったです。 懇親会でも「これなら作れそうだと思った」という感想をいただき、行ってよかったなと思いました。 東京方面の方々と知己を得られたことも大きな収穫です。 ところでプレゼンではCodeGen_PECLのspecファイル(XML)に関数の実装まで記述していましたが、これは限られた時間でCodeGen_PECLとZend API両方の説明をするための策で、実際のPHPエクステンション制作ではspecファイルにはコードは一切書かず関数プロトタイプの記述

    PHPカンファレンス2007プチレポート - 讃容日記
    aki77
    aki77 2007/09/08
    講演資料、CodeGen_PECL
  • Yet-Another YAML parser for PHP - 讃容日記

    php_yaml-0.0.1devel.tgz Yet-Another っていうか LibYAML のラッパに過ぎないわけですが。 しかも emitter は未実装で、parser も基型のみで、複合キーやユーザ定義タグにも非対応。 さらに対応している libyaml バージョン 0.0.1 と svn ではずいぶん中身が変わっていて、将来は全面的な書き換えが必要になるかもしれないという不安要素もあります。 それでも libyaml の出来が良いおかげで、YAML 公式サイトからコピペしたサンプルデータ examples/example[01-28].yaml 程度の簡単な構造なら、(複合キーの example11 を除いて) 期待通りにパースできているようです。日付型が文字列のままという点も含めて。 インストール方法はいつもの通りですが、libyaml が /usr /usr/loca

    Yet-Another YAML parser for PHP - 讃容日記
  • pecl_http の隠し機能? - 讃容日記

    今回は HttpRequest クラスのドキュメント化されていない (っぽい) 機能を紹介します。 なんと、サブクラスのメソッドとして onfinish が定義されている場合、リクエスト終了時に自動でコールされるのです。 onfinish メソッドは引数としてリクエストが成功したか (valid な HTTP Response が返ってきたか) を boolean として受け取ります。 利用例としてはこのようなクラスが考えられます。 <?php class UrlRetrieve extends HttpRequest { private $savepath; public function __construct($url, $savepath, $method = HttpRequest::METH_GET, $options = array()) { parent::__constr

    pecl_http の隠し機能? - 讃容日記
  • 讃容日記 - QRコード生成モジュールの使い方バグフィックス for PHP5

    ドキュメントを書いているときに QRCode::addData() および QRCode::readData() での第二引数 $mode の取り扱いについて想定外の動作になっていたことに気付いたので、修正版をリリースします。 php_qr-0.1.4.tgz 0.1.4 で致命的なバグを加えてしまっていたので、0.1.5 として再度リリースしました。 php_qr-0.1.5.tgz さて題です。前回のエントリで書いたとおり、php_qr の OO-API の使い方をひととおり紹介します。 イントロダクション まず、この拡張モジュールが提供する関数等の一覧を示しておきます。これはコマンドラインで php --re qr として表示されるモジュール情報を少しだけ整形したものです。 Extension [ <persistent> extension #48 qr version 0.1.

    讃容日記 - QRコード生成モジュールの使い方バグフィックス for PHP5
  • 讃容日記 - QRコード生成モジュール

    php_qr-0.1.0.tgz PHP4/5 用の QRコード生成拡張モジュールです。 インストール方法 通常の PHP 拡張モジュール同様にインストールできます。 tar xfz php_qr-0.1.0.tgz cd php_qr-0.1.0 phpize ./configure --enable-qr make sudo make install PHP の GD エクステンションを使った GIF, JPEG, PNG, WBMP 出力を有効にするには --enable-qr-gd オプションを使います。 zlib で圧縮した TIFF 出力を有効にするには --with-qr-tiff オプションを使います。 tar xfz php_qr-0.1.0.tgz cd php_qr-0.1.0 if ! -f /path/to/php-install-dir/include/php/

    讃容日記 - QRコード生成モジュール
    aki77
    aki77 2007/04/28
    PHP4/5 用の QRコード生成拡張モジュール
  • 2005-09-10

    倉って確か5月ごろにもスペンサーに吹っ飛ばされてたような。 そのときは立ち上がることができて、2ちゃんねるの実況板ではみんな「クララが立った!」ばかり。 あまりにも予想通りで爆笑したんだけど、今回は矢野の状態も含め、ちょっと心配。 PHP のマルチバイト正規表現関数には置換にコールバック関数を使えるがもの無いので、作ってみた。 preg_replace_callback() とは微妙に挙動を変えてあり、$limit に負の数を指定したときは、最後から順番に n 番目にマッチした箇所まで置換するようにしてあるんだけど、それができて嬉しい人は極めて稀だと思う。 僕は UTF-8 で preg_replace_callback() を使うのを好むので、もしかするとこれが日の目を見ることはないかもしれないけど、mb_ereg_search_* 系関数の使い方を覚えたのは収穫だった。 functio

    2005-09-10
    aki77
    aki77 2006/09/17
    mb_ereg_replace_callback()
  • 1