PHP
内部用のAPIを作ろうと思ったときに、データが多い場合のことを考えると面倒だったりする。 offsetでページ切り替えするか?とか。 で、基本に返ってストリームから少しずつデータを取得すればいいんじゃないか、というC言語の初歩的なやつをPHPで。 put.php …
今更ながら、目から鱗。 明示的にリソースを解放しない場合はHTTPコネクション切断後、つまり リクエストシャットダウン時に解放されます。 明示的にリソースを解放した場合、HTTPコネクションがある状態、つま りユーザーにページを送っている最中にリソー…
昨日 *1 の続き。 https://github.com/nishimura/Tsukiyo Joinの条件指定が欲しい、or検索が欲しい、テーブル名指定のjoinが欲しい、ということで機能追加。ほぼS2JDBC。 段々コードが見づらくなってきたかも。 OR検索 orやandが予約後なので、苦肉の策で変…
O/Rマッピングライブラリを自作した。 ずっと前から自作ORMを作り替えたいと思っていて *1 、S2JDBCのようなものが作りたいからどうせならJavaやるかと思ってJavaをやり始め、やっぱりJavaよりPHPがいいと思ってPHPに戻ってきて、そうしたらまたORMに不満が…
今までPHPで何かを作るときはLaizを使っていたわけだけれども、レンタルサーバー的な構成だと使いづらい。 数ページのフォームとかだとPATH_INFOに対応するためにApache設定ファイルにAliasMatchを書いたりフレームワーク設定ファイルを書いたりするのが面倒…
元ネタはJavaなのでGWTでやろうと思ったけど画面遷移がないのでRPCを使ったとしてもうまく仕様に合わせられない。MVPで途中まで書いたがイマイチに終わり…代わりにPHPで。 仕様はこれ。 足し算プログラム 計算結果は、別画面に遷移し出力する。 submit時にリ…
今更ながら。 バリデーターを書く場所について悩んでいる。 バリデーター(or フィルター) アクション ビジネスロジック という階層があるとき、ビジネスロジックで何らかのエラーがあった場合はエラー画面を出したい。 具体的には、 +----------+ |ユーザ…
サブドメインをまたいだらセッションがクリアされて、色々試していた。 どうも異なるホストだとクッキーを共有できないような動きになっていた。 原因はsuhosinパッチ?extension?だった。 入れたつもりはないけれどaptで自動で入っていたみたい。 オプショ…
cryptはdesがどうのこうのでダメだという話がよくあるが、cryptとmd5やsha1やhashの違いがよくわからない。
http://d.hatena.ne.jp/shimooka/20100422/1271905286これ凄いな。 今のプロジェクトで測ってみると、20000:4000だった。0.2倍…。 バグを出せない数値計算系しかテストしてないからなんだけど、、普通は何倍もテストコード書いてるのかな。普通ってアレだが…
オートロード関数を登録する。 動的にネームスペースを生成してクラスを定義してオブジェクトを生成する。
Maple再起動で振り返る国内PHPフレームワーク戦争の歴史 – この先生きのこるには ここにフレームワークの歴史が。 今もここの第3世代のまま進んでる感じなんだろうか。もう何年も前の記事だけれども。 xFrameworkPX コアの開発は一人だったような…たしか。 h…
キャッシュ機構が欲しいけれどmemcachedまでは要らないかな、と思ってaptitude searchを眺めているとxcacheというのがあることに気付いた。 aptitude install php5-xcache使い方は検索しても全然出てこない。どこもインストールと速度調査の記事ばかり。 apt…
lennyにパッケージでインストールするには、sources.listに以下の行を追加すればいいらしい。 deb http://php53.dotdeb.org lenny all deb-src http://php53.dotdeb.org lenny all それから、PHP5.3の新機能を使ってコードを書くにはマニュアルや解説記事を…
少しだけ使っていたLaunchpadはやめてGithubに変更。 Launchpadってmixiみたいに段々見にくくなってるような…。 http://github.com/nishimura/laiz 取り敢えずローカルのリポジトリとLANのリポジトリとgithubとこんがらがりながら使ってみている。 もともと…
class ${1:`(replace-regexp-in-string "^_+" "" (mapconcat #'identity (split-string ((lambda (a) (substring a (let ((case-fold-search nil)) (string-match "\\\\(/[A-Z][a-zA-Z0-9]+\\\\)+$" a ) )) ) (file-name-sans-extension (buffer-file-name))…
(require 'yasnippet) ;; yasnippetのsnippetを置いてあるディレクトリ (setq yas/root-directory (expand-file-name "~/dev/yasnippet/snippets")) ;; 自分用スニペットディレクトリ(リストで複数指定可) (defvar my-snippet-directories (list (expand-fil…
http://d.hatena.ne.jp/n314/20091113/1258119022 これの続き。 個人仕様だけどGitの練習のために上げてみる。 http://github.com/nishimura/minimal-yasnippet-php-mode 見よう見まねなのでフォーマットには自信ない。 11ファイルだけなので、個人的にはhg…
http://d.hatena.ne.jp/n314/20090919/1253353885 の続き。 動作確認まで point/ /point2.xml /hs/ /point2/ point2.xmlを書いてひな形生成。 <extension name="point2" version="1.1.2"> <function role="internal" name="MINIT"> <code> </code> </function> </extension>
http://d.hatena.ne.jp/n314/20090918/1253256703 の続き。 CodeGen_PECLをインストール。 pear install -a CodeGen_PECL作業ディレクトリ作成。 mkdir point cd point mkdir hs Haskellのコードを書いてコンパイル。 cd hs emacs point.hsmodule PhpPoint w…
ソースをダウンロード。 apt-get source php5 cd php5-5.2.0+dfsg/ext ./ext_skel --extname=haskelltest cd haskelltest/comfig.m4 のコメント解除。 PHP_ARG_ENABLE(haskelltest, whether to enable haskelltest support, Make sure that the comment is a…
PHPでベイジアン。ソースを見ながら動作をメモ。参考:http://castor.s26.xrea.com/blog/2008/02/18 パターンの登録 train: 文章から分類用のデータを登録する。文章をトークンに分割してupdateWord、その後saveReference。 updateWord: {カテゴリ、単語}…
foreachで少しだけ表示を変えたい、イテレータのcurrentを表示のために少しだけ変えたい、という場合。 単純にイテレータを継承すると関係がややこしくなるので外部から書き換えたい。 というときのためのクラス。 callback = $callback; } pu…
何度かネットで調べてるんだけれども迷う。 ソースを見る機会はC言語が多かったので途中returnが普通な感覚になってる。 でも例外があるんだから例外を使った方が分かりやすいのか…とか。 色々読んでたらPHPで考えることじゃない気がしてきたのでやめる。 HT…
最近、ディレクトリを役割別で分けたりインターフェースを使ってみたりしていて思ったこと。コードを書く速度が極端に落ちる。 かと言って品質が上がっているかは微妙。 前は一つのディレクトリに大量にファイルを置いていて、それを今回は分けるようにして…
アクションクラスとかその他諸々のクラスで、引数のタイプヒンティングを見てインスタンスを自動生成するようにしている。 こうすると
templateDirを複数指定したい場合はどうすればいいのか…独自にfile_existsで調べていってファイルが存在したディレクトリをtemplateDirに指定すればいいのか…とか色々考えてたけど、ソースを見たら元々複数指定できるようになっていることに気付いた。なんて…
随分前に速度とかissetとかの絡みで話題になってた。 include_pathを考慮しない読み込み系の関数(っていうかfile_exists)のために自分でinclude_pathを調べてたけどやめることにする。 includeやrequireで使うのはよくないっぽい記憶があったので、それはf…
http://php.net/ref.sqlite のコメント。 pragma table_info(tablename); を使うらしい。 tablenameは select name from sqlite_master; で。
Laizを軽く修正したらいけるかなーと思ったけど既存システムがそのまま動くように変更するのは無理だった。それならいっそのことゼロから作り変えてしまおうかと…。 最近のフレームワーク事情はさっぱり分からなくなってしまった。symfonyが流行ってるのかね…