PHP

第4回 闇PHP勉強会レポート

ちょっと遅くなってしまいましたが、スライドを公開します。 オレオレPHPのつくり方 from Ryusuke Sekiyama スライドだけでなくて壁にマーカーで書いたり、ソースコードを参照しながら発表させてもらいました。 ミックスイン 今回の発表の目玉(?)でもあっ…

よみがえるQIQ

別エントリで実装等について書く前に、これまでの経緯のまとめ。 以前のエントリ で↓のように書いていたのだが、 Scalaライクなミックスイン はエイプリルフールネタです。申し訳ない。 本気で取り組みたいですが、なかなか難しいですね。 求む、フルタイム…

PHP 5.4.1の新機能: Scalaライクなミックスイン

2012年4月1日にリリースされたPHP 5.4.1では、マイナーバージョンアップにも関わらず言語仕様が拡張されるという、PHPクォリティ全開の変更があったので紹介しよう。 実体化時ミックスイン (Mix-in instantiation) クラスをインスタンス化する際にuse文でト…

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 5.4におけるZend APIの変更点

16日目の@yohgakiさんに続いて、2回目のPHP5.4 Advent Calendar 2011 エントリです。 今回はヘッダファイルの差分を見てPHP 5.3からPHP 5.4のZend APIにどのような変更があったのかを見てみましょう。バイトコードに対する処理が書かれているzend_vm_def.hと…

PHP 5.4 の配列Tips

PHP5.4 Advent Calendar 2011 4日目です。3日目は@ooharabucyouさんでした。 2日目の@yohgakiさんの記事で紹介されたように、PHP 5.4から [] で配列を定義できるようになります。大変めでたいですね。 この記事ではその他の配列まわりの変更を紹介したいと思…

KQ on PHP

祭りレポートを書く前に@nvsoftsさんのプログラミング言語KQのPHP版を作ったので紹介してみようと思う。(→GitHub) KQ自体がBrainf*ckの方言なので、オリジナルの移植ではなくて以前に作ったBF処理系の焼き直し。ただしトークンをすげ替えただけでなくて、…

PHP Matsuri 2011に行ってきた(予告編)

10/15,16と大阪で開かれたPHP Matsuri 2011に参加した。 やったことはMac OS XでMakeGoodを使うとEclipseがクラッシュする問題の調査・修正とかOpenCLを使ってマンデルブロ集合を描画するPHPエクステンションの習作。 詳細はまた後で。

PHPカンファレンス関西の懇親会でLTしてきました

関西で初のPHPカンファレンス!これは参加せねばなるまい!ということで、PHPカンファレンス関西に参加してきました。 このところ仕事が忙しかったこともありLTの準備もできていなかったのですが、 id:cocoiti のウノウラボ記事にインスパイアされて「Brainf…

QRコード生成モジュールを更新

共通の変更点 igaさんのご指摘により英数字モードの変換テーブルを修正。 PHP版の変更点 PHP 5.3に対応、PHP 5.2未満のサポートを廃止。 ダウンロード PHP版: PEARチャンネルより Python版: GitHubより

Pirumを使ってみた

先日から公開を始めたPEAR(PECL)チャンネルでは、チャンネルサーバーの管理にPirumを使っています。 元々はChiara_PEAR_Serverを使おうとしていたのですが、インストール後のスクリプトがうまく動かずにコードを追っかけていたところ、@iteman 先生に「PHPUn…

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

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

Piece_ORMでSQLite3を使ってみる

Piece_ORMはPiece Frameworkのプロダクトのひとつであり、単体でも使えるO/Rマッパです。非常に使いやすく、Piece_Unityを使わない人にもおすすめです。使い方は公式サイトのほか、くまっち先生のブログでも紹介されています。(http://hatotech.org/kumatch/…

QIQエクステンションを更新

php_qiq-0.6.0.tgz PHP 5.2.6RC1に対応。 無名関数のシンタックスシュガー $(($arg){ return $result; }) を廃止。*1 連想配列のキーと値の区切り文字にコロンを使えるようにした。*2 *1:また復活するかも。 *2:=> との混在もあり。そうできないように制限す…

QIQの設計と実装

QIQエクステンションがやっていることについて。 PHPというかZend Engineでは、コンパイラとエクゼキュータが関数ポインタになっており、それぞれファイルの内容から実行コードを生成するzend_comiple_file、文字列から実行コードを生成するzend_compile_str…

続々・Zend Engine Hack (クロージャもあるよ) (拡張モジュールもあるよ)

PHP

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やe…

続々・Zend Engine Hack (クロージャもあるよ)【予告編】

PHP

php-5.2.5-rsky-080216n.patch (PHP 5.2.5用パッチ) php-5.2.5-rsky-080216-win32.zip (Windows用バイナリ) ※このパッチ・バイナリでは下記の機能の一部は利用できません。 Windows版はid:shimookaさんのhttp://www.doyouphp.jp/inst/inst_win_vcxe.shtmlを…

php_iovm-0.6.0

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

TextMateでPHPプログラミング(PHP勉強会 at 大阪 発表資料)

いつもながらイベントのレポートが遅くて恐縮です。PHP勉強会 at 大阪の発表資料を公開します。 今回もSlideShareにはねられ、handsOutにもはねられたのでPDFの直DLです。CIDフォント(ロダン)は使わず、OTFとTTFだけ(ヒラギノ角ゴ Pro + Myriad Pro + ア…

今日のPEARニュース (1/31)

PHP

DB_DataObject 1.8.8とHTML_Template_Flexy 1.3.0がリリースされました。DB_DataObjectはバグ修正のみ、Flexyは新機能も追加されています。 New Features #7609 - support user defined compilers as compiler object #11741 - getOptions / clearOptions - …

qiq: immo quo

PHP

PHPの壁に当たったとき 素直にそこは代わりのものを使うのがよく訓練されたぺちぱー よーしおじさんextension書いちゃうぞーとなるのがぺくらー 本体へのパッチを書くのが僕 パッチがスルーされて切ないのも僕 ならば既成事実を作ってやろうとコンパイラを差…

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の配列操作関数は破壊的なものばかりなので、非…

TextMateネタでLT希望

1月31日木曜日、大阪の心斎橋でPHPの勉強会をやってみたいと思います。id:ku-sukeが中心となり参加者と発表者を募集しています。初回なのでPHP初級者や他の言語を普段利用してるプログラマの方、 デザイナの方を主な対象に考えています。 2008-01-20 Event E…

Pannus iactus est.

PHP

件のパッチをRFCとしてphp.internalsに投げました。(高木さん、チェックありがとうございました) php.internals: [RFC] Square brackets shortcut php.internals: [RFC] Anonymous functions さて、どうなることやら...

gihyo.jpでPHP拡張モジュールの作り方の連載をはじめます

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

Piece Network 1 資料公開

PHP

かなり遅れてしまいましたが、Piece Network 1 の発表資料を公開します。 順番を差し換えたり、会場では紹介できなかったSPLのクラスの記述も追加しました。書き上げてから「単なる一覧で、解説のトークがないと分かりづらいのでは?」と思ったけど後の祭り…

TCHDBServerを修正

大晦日のエントリでPUTのリクエストエンティティ取得が遅いと書きましたが、原因はサーバの実装がRFC 2616/HTTP 1.1に準拠していなかったことでした。つまり全面的に僕が悪かった、と。orz pecl_http (というかcURL) はPUTメソッドのリクエストを送信すると…

PHPでTokyo Cabinetハッシュデータベースサーバを作ってみた

Tokyo Cabinetのデータベースは書き込みモードで開くと排他ロックがかかるので、Apache2 (prefork)+mod_phpやCGIのようなリクエストごとにPHPのプロセスが分かれているWebアプリケーションでTokyo Cabinetを読み書き両用で使うのは苦しいものがあります。(コ…

その道は私が一月前に通った道だ!

PHP

shimookaさんとこ経由で知ったのですが、僕がゆっくりしている間に(実際はいろいろあったわけですが)PHP 5.3に無名関数やらクロージャやらを実装する話が進んでいた模様。 ループで使えないとかopcode cacheとの相性が悪いとか言われていたので、拙作パッ…