PECL
拙作php-mecabがMeCab 0.99でビルドできなかったり、PHP 5.4でビルドできなかったのを修正した。 MeCab 0.99に対応するため、構造体の変更によって互換性が失われた関数を無効にしている。今後の開発はPHP 5.3.0以降とMeCab 0.99以降のみサポートし、MeCabの…
長らく放置しておりましたブログとPHP拡張のメンテをぼちぼち再開します。 で、復活第一弾のエントリはPiece Network 3のテーマとして、PHP 5.3のサポートとGitHub/PEARチャンネルの公開をしましたので、そのご報告をば。 現時点ではよく使われているっぽいM…
php_iovm-0.6.0.tgz Io-2008-01-20で動作確認。 IoVectorクラスをチューニング、SPLへの依存を廃止。 ArrayAccess, Countableをimplementする代わりに独自のハンドラを実装。 []で要素を追加できるようになった。 RINIT_FUNCTION, RSHUTDOWN_FUNCTIONが値を…
php_rskit-0.2.0.tgz RSkit::mixin()で任意の数のクラスを一度にMix-inできるようにしたり、ScopeクラスにcallメソッドとcallWithArgumentsメソッドを追加したほか、実験的な抽象クラス“Klosure”を追加しました。 また、Scopeクラスでinclude_pathが指定でき…
我が家から直線距離にして約500km離れたサイボウズ・ラボでPHP拡張勉強会が行われている最中、Twitterとかid:shimookaさんの実況中継とか尾藤さんのUstream(主に音声)だけでは飽き足らず、自分も書いた。 PHPの配列操作関数は破壊的なものばかりなので、非…
gihyo.jpでPHP拡張モジュールの作り方の連載をさせていただくことになりました。このエントリの執筆時点ではまだ公開されていきませんが、今日から隔週で掲載予定です。 まず第1回はCodeGen_PECLとautotoolsをインストール、第2回はHello, World!を表示する…
php_yaml-0.3.0.tgz PHP6のUnicode文字列対応を改善。
php_unichar-0.3.0.tgz PHP6用コードを改善。 ZTSモードでの不具合を修正。
php_tokyocabinet-0.3.0.tgz Tokyo Cabinet 1.1.0で加わったAPIを実装。 TCHDB::setcache() TCBDB::range() TCBDB::rangefwm() IDLに合わせてTCBDBクラスのメソッドを名称変更。古い名前も残しているが、非推奨。 putdupall→putlist, outall→outlist, getall…
php_speedy-0.2.0.tgz HTMLタグを生成する関数を追加。 string t(string $name[, string $content[, array $attributes[, bool $close]]]) タグを生成する。 void pt(string $name[, string $content[, array $attributes[, bool $close]]]) タグを出力する。
php_senna-0.2.0.tgz id:tasukuchanに「sen_ctx_recv()のSEN_CTX_MOREは意味があるので連結しちゃダメ」と教えてもらったので修正。 SenContext::recv()は結果を連結せずに、最初に返ってきた結果だけを返す。 SenContext::has_more()で結果に続きがあるかを…
php_rskit-0.1.0.tgz 新作。PHPでクラスをMix-inするRSKit::mixin()等のユーティリティクラス。詳細はあとで追記します。追記: バージョン0.2.0に関するエントリに使い方を書いています。
php_mecab-0.3.0.tgz PHP 5.3/6.0に対応。 PHP6のUnicode文字列とC文字列の相互変換をするエンコーディングを指定するためのphp.iniディレクティブmecab.internal_encodingを追加。 指定できる値はICUが対応しているエンコーディング名で、デフォルト値はUTF…
php_iovm-0.5.0.tgz PHP6のUnicode文字列対応を改善。 IoのVectorオブジェクト互換のPHPクラスIoVectorを追加。 32bit浮動小数点数のベクトル演算を扱うクラス。(SIMD対応) IoStateとは別に単独で使用可能。 PHPの変数とIoの変数の相互変換にも使われる。 Io…
php_epeg-0.2.0.tgz PHP 5.3/6.0に対応。 必要最低限以外のJPEGマーカーを削除するコードを修正。
php_continuation-0.2.0.tgz PHP6に対応。 未定義のクラスが指定された場合は__autoload()を使うように変更。
php_calias-0.1.0.tgz 未定義のクラスが指定された場合は__autoload()を使うように変更。 実行時にCG(class_table)を参照していたのをEG(class_table)を参照するように修正。
溜まりに溜まっていたのをまとめてリリース。それぞれの詳細は個別のエントリで。 php_calias-0.1.0.tgz php_continuation-0.2.0.tgz php_epeg-0.2.0.tgz php_iovm-0.5.0.tgz php_mecab-0.3.0.tgz php_rskit-0.1.0.tgz php_senna-0.2.0.tgz → php_senna-0.2.…
php_speedy-0.1.0.tgz 瓢箪から出た駒というかなんというか、Speedyエクステンション正式リリース。 speedy関数はstdClass以外のオブジェクトもコンテキストとして受け付けるようになり、また、speedy関数の実行によってコンテキストが汚染されなくなりまし…
php_tokyocabinet-0.2.0.tgz Tokyo CabinetのPHPバインディングを更新しました。変更点は以下の通りです。 データベースを閉じるcloseメソッドを実装。(0.1.0ではIDLで指示されていないし、明示的に閉じなくてもデストラクタで閉じられるので実装していなか…
唐突に、PHP用のテンプレートエンジンを4+1行で実装してみる。 方針: ふつうのPHPファイルをテンプレートとして使う。 は面倒なので と書けるようにする。 はもっと面倒なので と書けるようにする。 ついでにXML宣言も .... とかけるようにする。 4+1行…
php_calias-0.0.1.tgz この前のKOF2007の打ち上げ兼Piece Network 1の打ち合わせで出た話を元に、PHP 5.3/6.0の名前空間とは異なる、既存クラスのエイリアスを登録するエクステンションを書いてみました。PHP 5.2以降対応です。 Application Sever SAPIもし…
php_tokyocabinet-0.1.0.tgz Tokyo CabinetのPHPバインディングを作ってみました。 インストールは phpize; configure --enable-tokyocabinet; make; sudo make install と、いつもの手順ですが、configure内でpkg-configを使います。Tokyo Cabinetはバージ…
php_continuation-0.1.1.tgz php_iovm-0.4.0.tgz php_opendogs-0.6.1.tgz php_senna-0.1.2.tgz php_tokyocabinet-0.1.0.tgz php_unichar-0.2.0.tgz php_yaml-0.2.0.tgz 溜まっていたものをまとめてリリース。PHP 6.0/5.3向けにビルドできなくなったのを修正…
http://blog.xole.net/article.php?id=625 で紹介していただいたphp_iovm 0.3.0ですが、10/16のエントリの影響をモロに受けるので、PHP 5.3/6.0ではコンパイルできません。来月中にはこの点の修正と、名前空間をサポートした0.4.0を出す予定です。 あとIoSeq…
php_cgthumbnail-071023.zip php_cgthumbnail-071025.zip Photoshop出力で落ちるバグを修正。 Core GraphicsではQuickTime Imageフォーマットは読み込み専用だったので、出力フォーマットから除外。 オプションのパージングにいくつか問題があったのを修正。…
php_iovm-0.3.0.tgz説明を書く前にバージョンアップしてしまいました。 ビルドにはIoの最新版、Io-2007-10-03かgitの開発版が必要です。IoStatePrintCallbackの引数が変わったのでIo-2007-05-28ではビルドできません。 変更箇所は下記のとおりです。 PHP/Io…
php_iovm-0.2.0.tgz説明は後で書く予定なので概要だけ。 IoでPHPのクラス定数、スタティック変数、スタティックメソッド、インスタンス変数、インスタンスメソッドが利用できるようになりました。(少々ダサい使い方になりますが) 逆にPHPでIoObjectのスロッ…
php_iovm-0.1.1.tgz Ioは組み込み指向の言語であるわけで。ということは出力用コールバック関数が定義できて当たり前なわけで。 IoState_printCallback_でphp_body_writeのラッパーを指定するようになったので、PHP echoは、ほとんどの場合において不要にな…
php_iovm-0.1.0.tgz ポインタ、intptr_t、longの大きさが異なる環境でも使えるようになった IoからPHPの定数・変数・関数が利用できるようになった IoからPHPの"echo"が利用できるようになった IoStateクラスにメソッドを追加 IoからPHPの定数・変数・関数を…