PHP

名前書き換えスクリプト

PHP

TAPLのScala版のソースを呼んでいた訳ですが、変数名や型名を自分に合わせて書き換えたかった。 大量にある、ソースコードはIDEのリファクタリング機能を持ってしても手に余るので以下のようなコードがあると便利です。実行する前にバックアップを着実に取り…

型推論

PHP

以下のサイトを参考にhttp://dysphoria.net/2009/06/28/hindley-milner-type-inference-in-scala/hindley-milnerの型推論をPython版をPHPで実装してみました。 Modula2->Perl->Scala->Python->PHP という流れで移植に移植を重ねられています。 洗練されたり…

キレイなイベントの回し方

php

ここのところ、オーダーメイドなカスタマイズでオラオラ回してた訳です。 でも、再利用性が低い問題がありました。 そこで設定で何でも出来ればいいということで、もしもし文を沢山書いた訳です。そして、マクロが嫌いになりました。 さて、そこでオブジェク…

case class on PHP

PHP

入って来たデータを調べて分岐させていくと、だんだんとプログラムは複雑化していきます。 if文とgoto文だけでは、あまり奇麗に書けない。 それを奇麗に書くのに生まれたのが、switch 文。switchを使えば、変数の値によって、 とび先がわかりますよと明示的…

多言語対応のCMS「Ionize」

php

haXeのホームページのように多言語対応なwikiっぽいドキュメントが作れるのかもしれないので 後で試してみます。

Inotify APC Smarty Recompiler

PHP

これは何? PHPの高速化をするにはAPCを使ったりSmartyのオプションを色々変えたりということをすると高速化できます。 特にファイル変更のチェックをはずすと高速化出来ますが、その代わりPHPの利点であるサーバを動かしながら変更を加えるということが 出…

SendaiLockサーバ

どうも、ずーっとプログラムを動かしているとエラーが出るので原因を調べると、 しばらくソケットが使えなくなることがあるそうです。 SO_LINGERとか、setReuseAddressとかを使うことで対応できるらしいので対応してみました。 phpのクライアントもSO_LINGER…

Sendai Lock

複数Webサーバ上でデータを共有する場合は DataBase を使います。 しかしある程度サーバが重くなってくると負荷対策が必要となります。 そこで登場するのがkey value型の高速なメモリキャッシュサーバであるmemcacheです。 memcacheを使えばデータベースにア…

定数畳み込みというか項書き換えシステムっぽい何か。

php

eクラスが式オブジェクトで、phpだと関数名とクラス名は同じもの使えるのでnewを書かなくてすむようにするためだけにe関数があります。 で、evalCompでコンパイル用の定数畳み込みっぽいことをする計算をしてグローバル変数の$chgという書き換えがあったかど…

Excel読み込みできるCSVファイルをダウンロードする

phpでCSVをダウンロードする場合、file put csv mb convert variables ダウンロード php 標準出力 stdout あたりのキーワードで検索して作ります。 でも毎回作るのもめんどいし、まとまって作ってあると便利なので作りました。これで、 h_sakurai php csv で…

OAuthライブラリのストレージエンジンの例の翻訳

php

http://oauth.googlecode.com/svn/code/php/example/SimpleOAuthDataStore.php をとりあえず、翻訳してみたので載せておきます。 ライセンスはMIT ライセンスです。 http://oauth.googlecode.com/svn/code/php/LICENSE.txt

PHPで書いたLISP級マクロ付きインタプリタ

LISP級マクロ付きのインタプリタをPHPで書いてみました。 作る順番は、だいたい決まってきて、必要ない機能はある程度削られてますけど、 一番本質的な部分はつかめると思います。以下ソースです。

ming描画用言語

php

ビューティフルコードていう本に下向き演算子順位解析法 とかの解説があるのでそれ見るとうれしいと思う今日この頃です。 なんか、Compact言語で面白いものをと思って、flash描画言語を作ってみました。 XMLのSVGのヘボヘボバージョンだと思ってもらえれば分…

CSSの構文解析

PHP

言語を弄繰り回したいってことで、構文解析を頑張ってみています。HTML,XMLはできてて,CSSをPHPで再帰下降法を使い構文解析してみました。とりあえず、@importとか@mediaとかの規則は解析していませんが、、、できることはできた。徐々に、分かってきていて…