Life, Education, Death

プログラミング以外でも思ったことをつらつらと書きたい

PHP

クロージャーの使い方を少し聞かれたので調べてみた

まとめ useで変数を指定する際に&をつけないと無名関数内で書き換えができない useは面倒だけど、トラブルが減るので悪くない気がする はじめて、PHPの無名関数を使っていたけど、意外と簡単に出来た PHP5.3系からcreate_functionがなくても無名関数が作れる…

iCal形式のデータをパースしてみる

File_IMCというPearにあるライブラリを使えば一発っぽいので試してみました。 pear instal File_IMC-0.4.3 とやってインストールして require_once('File/IMC.php'); $text = file_get_contents('iCalのデータ'); $parse = File_IMC::parse('vCalendar'); $p…

pearコマンド起動しなくて困った

二回もハマったので、メモメモ。MAMPをインストールして一息ついたところで、pearコマンドを打ったら下のようなエラーが出てきて、??? Notice: unserialize(): Error at offset 267 of 1141 bytes in Config.php on line 1050 ERROR: The default config …

ZendFrameworkを使ってみてハマったのでメモ

Amazon APIを使いたかったので。。。 http://framework.zend.com/manual/ja/zend.service.amazon.htmlZendFrameworkを入れると使えるようになるそうなので、インストールしてみてサンプルコードを動かしてみて http://d.hatena.ne.jp/boto/20070923/11904821…

PHPだって非同期処理できるもん!

フレームワークを考える際には、何か具体的なアプリケーションを考えるといいらしい

↓のようなことを2年前からずっと言ってて全然作業してないし、忘れてた。 すでにこんなのがあるわけですが http://booklog.jp/users/zzzでも自分でフルスクラッチでつくりたーい[要求定義] ・本を簡単に管理したい ・特に出先で確認したい ・簡単に検索して…

FusionCharts Freeでカッコイイグラフを表示する

できること http://www.fusioncharts.com/free/gallery/を見ての通り、フリー版でも十分に様々なグラフを表示できる。アニメーションもするのでちょっとかっこよさを注入したいときにも便利。グラフはflash側で描画するタイプのライブラリなので、単にパラメ…

FusionCharts Freeでカッコイイグラフを表示する

できること http://www.fusioncharts.com/free/gallery/を見ての通り、フリー版でも十分に様々なグラフを表示できる。アニメーションもするのでちょっとかっこよさを注入したいときにも便利。グラフはflash側で描画するタイプのライブラリなので、単にパラメ…

ようするにMSSQLでPDOでODBCなんてしちゃいけないんだ

まず http://bugs.php.net/bug.php?id=365612年くらいほって置かれているバグ。このおかげで、PDOのメインの機能(だと思っている)プリペアドステートメントが使えないようだ。 どんなデータでも""つけて文字列として値をセットしてしまうようなエラー文に…

PHPでSQL Serverに接続したい

前提 SQL Serverと別にLinuxのWebサーバーがいて、その中のPHPからDBに繋ぎたい How-to: Linux talks to Microsoft SQL Server by PHP Data Objects (PDO) その2 Memory Over:Connecting to SQL Server 2005 via unixODBC - livedoor Blog(ブログ) を主に…

PHPの仕様なのかバグなのか不明

PHP

サンプルコード 通らないコード function hoge( $foo, $bar ){ var_dump($foo, $bar ); } 通るコード function hoge( $foo, $bar ){ var_dump($foo, $bar ); } PHPは通常、全角スペースがあるとパースエラーで落ちるが 残念ながら、関数の引数の宣言のあたり…

Web上で使えるPHPのコンソールが欲しい

PHP

きっかけ 今書いた新しいクラスのメソッドを仮のパラメータを入れて動くかどうかだけ知りたいときがあって ブラウザの上で実行したい!って思ったのが始まり。 現状 とりあえずtextareaにtabキーでスペースが4つ挿入されるエディタになりました。 今までは e…

PDO -There is no active transaction-

謎のエラーThere is no active transaction ググってもいまいち出てこない上に、PDOExceptionのerrorInfoプロパティの中身がNULL。 詳細不明の変な状況に陥った。 原因 fetch時にFETCH_CLASSを指定するかfetchObjectを実行するときに渡すクラス名がその時点…

memcachedとphp-libmemcachedのインストール

他のマシンでもインストールするときに便利なようにメモしておく。 CentOS 5にて動作確認。最後のphp.iniに書き込むところだけは個々に設定が必要かなと。 #!/bin/bash wget http://www.monkey.org/~provos/libevent-1.4.9-stable.tar.gz tar xzfv libevent-…

memcachedとSmarty

はじめに Smartyは遅い。そこでSimplateを使おうと話になった。 SimplateはSmarty互換でシンプルなPHP拡張実装。実装がCなのでとても早いという評判なので早速使ってみた。 Simplateを試す 公式のインストールの項目の通り、ソースからインストールした。こ…

PHPのインクリメント・デクリメント演算子をベンチしてみた

ちょっと気になったので実行してみた。 使っているPHPのバージョンは5.2.5 実行コード $hoge = 0; $start = microtime(true); for($i=0; $i<10000000; $i++ ){ $hoge++; } $end = microtime(true); echo 'hoge++ time : '.($end - $start).'<br>'; $hoge = 0; $s…

AspectPHPを構想する

AspectJとAspect指向を知った。そして、考えを改めた AspectJ - Wikipediaという言語がある。 そしてアスペクト指向プログラミングというものがある。この方法では絶対に、コードが書いてある通りに実行されているように見えなくて混乱を招くと思う。だから…

PDTのテンプレートでsetterとgetterを楽して入力する

PDTのテンプレートを活用する setter*1 public function set${name}( $$${variable} ){ $$this->${variable} = $$${variable}; } getter public function get${name}(){ return $$this->${variable}; } こうすると、二箇所書くだけでかける。本当は自動生成…

PDOを使っていてPHPDoc形式のコメントを書いている

PHP

最近やっとPHPEclipseからPDOへ移行しようと腰を上げました。 PHPDoc形式のコメントを書くようにしているのですが、ガンガン定型文は補完してくれるとうれしいなぁと思い、色々設定を調べているところ。 やっとauthorの挿入方法がわかったのでメモしておくー…

array_walkなどでコールバック関数を使いたいときに、クラスメソッドを指定したい

PHP

array_walkなどでcall_back型を指定するときには文字列で関数名を渡せる。 そのときにクラスのメソッドを指定したいときはarray($this, "hogehoge")というような引数を渡すと、うまく実行される。引数の説明のページにしっかり書いてあった。コールバックに…

PHPのクラスの怪

PHP

class TestBase{ function test1(){ $this->hoge = "hogehoge"; } } class TestA{ private $hoge; function test2(){ } } $testA = new TestA(); $testA->test1(); こんなコードだとhogeがTestAでprivateなのでtest1がエラーで落ちるってい罠。 納得のいくよ…

DOM XMLでHTMLの一部だけを入力して一部だけ出力したい

PHP

という悩み。テンプレートとかを使っていると、完全でないHTMLを使いたくなる。そこでDOMDocument::loadHTMLをして、saveXML(node)とするとnodeの部分が出力されるがHTML内のコメントアウトがCDATAになってしまう。(このせいでFirefoxでscriptタグが読めずJ…

dirname( dirname(__FILE__) ) VS dirname(__FILE__)."/../"

PHP

自分の位置から上のディレクトリかファイルへのパスが欲しいときにdirnameを重ねる人を今日はじめて知ったたので、どっちがいいか比較してみた 実行するphpからみて、../../../sample.xmlがあると仮定 function bench( $func, $num ) { $start = microtime(t…

PHP ウィジェットフレームワークを妄想してみた

そもそもGWTが好きであぁJavascriptレスで色々簡単に出来るなんてステキなんて;;; *1 そんなことをPHPで出来たらなぁーってことです。 基本コンセプト WidgetのPHPコードからコンパイルしてtemplateのHTMLと混ぜてうまいHTML+JSになっているファイルを出…