PECL

php-mecab 0.5.0

拙作php-mecabがMeCab 0.99でビルドできなかったり、PHP 5.4でビルドできなかったのを修正した。 MeCab 0.99に対応するため、構造体の変更によって互換性が失われた関数を無効にしている。今後の開発はPHP 5.3.0以降とMeCab 0.99以降のみサポートし、MeCabの…

PHPエクステンションのリポジトリ始めました

長らく放置しておりましたブログとPHP拡張のメンテをぼちぼち再開します。 で、復活第一弾のエントリはPiece Network 3のテーマとして、PHP 5.3のサポートとGitHub/PEARチャンネルの公開をしましたので、そのご報告をば。 現時点ではよく使われているっぽいM…

php_iovm-0.6.0

php_iovm-0.6.0.tgz Io-2008-01-20で動作確認。 IoVectorクラスをチューニング、SPLへの依存を廃止。 ArrayAccess, Countableをimplementする代わりに独自のハンドラを実装。 []で要素を追加できるようになった。 RINIT_FUNCTION, RSHUTDOWN_FUNCTIONが値を…

RSKit 0.2.0: RSKit, Scope, Klosure

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拡張モジュールの作り方の連載をはじめます

gihyo.jpでPHP拡張モジュールの作り方の連載をさせていただくことになりました。このエントリの執筆時点ではまだ公開されていきませんが、今日から隔週で掲載予定です。 まず第1回はCodeGen_PECLとautotoolsをインストール、第2回はHello, World!を表示する…

php_yaml-0.3.0: 品質向上

php_yaml-0.3.0.tgz PHP6のUnicode文字列対応を改善。

php_unichar-0.3.0: 品質向上

php_unichar-0.3.0.tgz PHP6用コードを改善。 ZTSモードでの不具合を修正。

php_tokyocabinet-0.3.0: Tokyo Cabinet 1.1.x対応(専用)

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: t()とかpt()とか

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: SenContext::recv()を修正

php_senna-0.2.0.tgz id:tasukuchanに「sen_ctx_recv()のSEN_CTX_MOREは意味があるので連結しちゃダメ」と教えてもらったので修正。 SenContext::recv()は結果を連結せずに、最初に返ってきた結果だけを返す。 SenContext::has_more()で結果に続きがあるかを…

php_rskit-0.1.0: PHPでMix-in

php_rskit-0.1.0.tgz 新作。PHPでクラスをMix-inするRSKit::mixin()等のユーティリティクラス。詳細はあとで追記します。追記: バージョン0.2.0に関するエントリに使い方を書いています。

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…

php_iovm-0.5.0: IoVector対応

php_iovm-0.5.0.tgz PHP6のUnicode文字列対応を改善。 IoのVectorオブジェクト互換のPHPクラスIoVectorを追加。 32bit浮動小数点数のベクトル演算を扱うクラス。(SIMD対応) IoStateとは別に単独で使用可能。 PHPの変数とIoの変数の相互変換にも使われる。 Io…

php_epeg-0.2.0: 某所より引っ越し

php_epeg-0.2.0.tgz PHP 5.3/6.0に対応。 必要最低限以外のJPEGマーカーを削除するコードを修正。

php_continuation-0.2.0: PHP6対応

php_continuation-0.2.0.tgz PHP6に対応。 未定義のクラスが指定された場合は__autoload()を使うように変更。

php_calias-0.1.0: __autoload()対応

php_calias-0.1.0.tgz 未定義のクラスが指定された場合は__autoload()を使うように変更。 実行時にCG(class_table)を参照していたのをEG(class_table)を参照するように修正。

PHP拡張モジュールの歳末大放出

溜まりに溜まっていたのをまとめてリリース。それぞれの詳細は個別のエントリで。 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.…

Speedy HTML Template Utilities 0.1.0

php_speedy-0.1.0.tgz 瓢箪から出た駒というかなんというか、Speedyエクステンション正式リリース。 speedy関数はstdClass以外のオブジェクトもコンテキストとして受け付けるようになり、また、speedy関数の実行によってコンテキストが汚染されなくなりまし…

php_tokyocabinet-0.2.0

php_tokyocabinet-0.2.0.tgz Tokyo CabinetのPHPバインディングを更新しました。変更点は以下の通りです。 データベースを閉じるcloseメソッドを実装。(0.1.0ではIDLで指示されていないし、明示的に閉じなくてもデストラクタで閉じられるので実装していなか…

speedy: 37 lines of the fastest PHP template engine (joke)

唐突に、PHP用のテンプレートエンジンを4+1行で実装してみる。 方針: ふつうのPHPファイルをテンプレートとして使う。 は面倒なので と書けるようにする。 はもっと面倒なので と書けるようにする。 ついでにXML宣言も .... とかけるようにする。 4+1行…

calias: クラスのエイリアスを登録するエクステンション

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

php_tokyocabinet-0.1.0.tgz Tokyo CabinetのPHPバインディングを作ってみました。 インストールは phpize; configure --enable-tokyocabinet; make; sudo make install と、いつもの手順ですが、configure内でpkg-configを使います。Tokyo Cabinetはバージ…

晩秋のPECLまつり

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向けにビルドできなくなったのを修正…

php_iovm 0.3.0 について

http://blog.xole.net/article.php?id=625 で紹介していただいたphp_iovm 0.3.0ですが、10/16のエントリの影響をモロに受けるので、PHP 5.3/6.0ではコンパイルできません。来月中にはこの点の修正と、名前空間をサポートした0.4.0を出す予定です。 あとIoSeq…

Core Graphicsでサムネイル作成

php_cgthumbnail-071023.zip php_cgthumbnail-071025.zip Photoshop出力で落ちるバグを修正。 Core GraphicsではQuickTime Imageフォーマットは読み込み専用だったので、出力フォーマットから除外。 オプションのパージングにいくつか問題があったのを修正。…

php_iovm 0.3.0

php_iovm-0.3.0.tgz説明を書く前にバージョンアップしてしまいました。 ビルドにはIoの最新版、Io-2007-10-03かgitの開発版が必要です。IoStatePrintCallbackの引数が変わったのでIo-2007-05-28ではビルドできません。 変更箇所は下記のとおりです。 PHP/Io…

php_iovm-0.2.0: IoでのPHPサポートを強化

php_iovm-0.2.0.tgz説明は後で書く予定なので概要だけ。 IoでPHPのクラス定数、スタティック変数、スタティックメソッド、インスタンス変数、インスタンスメソッドが利用できるようになりました。(少々ダサい使い方になりますが) 逆にPHPでIoObjectのスロッ…

php_iovm-0.1.1: echoが要らない子に

php_iovm-0.1.1.tgz Ioは組み込み指向の言語であるわけで。ということは出力用コールバック関数が定義できて当たり前なわけで。 IoState_printCallback_でphp_body_writeのラッパーを指定するようになったので、PHP echoは、ほとんどの場合において不要にな…

php_iovm-0.1.0: PHPとIoの連携を強化

php_iovm-0.1.0.tgz ポインタ、intptr_t、longの大きさが異なる環境でも使えるようになった IoからPHPの定数・変数・関数が利用できるようになった IoからPHPの"echo"が利用できるようになった IoStateクラスにメソッドを追加 IoからPHPの定数・変数・関数を…