ぐらめぬ・ぜぷつぇんのはてダ(2007 to 2011)

2007年~2011年ごろまで はてなダイアリー に書いてた記事を引っ越してきました。

PHP

guesswork、イカス。

PHP

Akelosにつきあうのに少し疲れたので、guessworkを見ることで気分転換を図る。多分PHP4のFWとしてはかなり共感できるコンセプト。 一方で、シンプルさを保つためにデータベースアクセスやユーザー管理などの機能は一切備えていません。これらの機能はPEAR等…

DboSource::query()がご丁寧にも勝手にfromのテーブル名を返り値の配列のキーにセットしてくれる件

CakePHP 1.1.19 です。ようやく以下のようなコードで、「さて、どんな構造で返ってくるか・・・。」と試すことが出来ました。 $ds =& ConnectionManager::getDataSource(CAKEAPP_SHOP_ENV); $sql = "select * from hoge where id = " . $ds->value('1'); $re…

Modelを全く扱わないControllerの中で明示的にConnectionManager::getDataSource()で "Fatal error: Class‘ConnectionManager’ not found"エラー発生。

ついに根負けしてCakePHPタグを作ってしまった・・・。えっと、つまり

CakePHP、自分の肌に合わない。

単に自分の感想を述べてるだけなので、CakePHP専用のカテゴリは作りません。以下は生産性0の私的感傷エントリ。

PHP5でphp_mysql.dllをロードしようとすると"指定されたモジュールが見つかりません。"

よく見かけるエラーらしく、Googleに訊くとまぁ一杯出てくること。 要するにlibmysql.dllが見つからなくてロードできなくなってるようです。でまぁ大概は PHP4 : {PHP4_DIR}\dlls\libmysql.dll PHP5 : {PHP5_DIR}\libmysql.dll をPATHの通っているところに置…

クロージャpatchのWindowsバイナリキタ━━━━━━(゚∀゚)━━━━━━ !!!!!

PHP

無名関数 / function(){ echo "Hello, Anonymous World!\n"; }(); クロージャ / function get_closure($foo) { return static function(){ static $foo; echo $foo; }; } get_current_function_key() / function($n) { $f = get_current_function_key(); …

過去の自分の亡霊と久しぶりに対峙して、死にたくなった。

2004年とか、まだまだPHPに関して甘ちゃんだったころの自分が作ったWebサイトがありまして。 なんだかんだで結構長く使われてます。で、暫くぶりに改造依頼がありまして、自分のPCにソースやDBダンプファイルを落として環境構築してたんですが。 動かないの…

sessionのデフォルトファイルハンドラとflock

PHP

PHPでのflockについてこの前調べた。で、PHPはセッションデータをどのように永続化するのかについてモジュール化できるようになっている。これをセッションハンドラモジュールと呼称しておく。PHPはファイルに保存して永続化するファイルモジュールと、ユー…

初心者のあなたにお勧めするPerl

学校でJAVAだのCだのやっているから、家では休日にさくりとwebアプリを作りたいと思ってPHPの勉強を始めようと思った途端、「PHPはヘボい」と言われる。 ... 心優しいみなさんが初心者のことを思って話してくれてるのはわかります。ただ、それでもこ…

PHPと内部統制対応におけるExcelレガシー問題

こないだのPHPdisブームの中で、PHPとExcelマクロ(VBA)の相似性が語られたシーンがあった。 「初心者にやさしい言語(技術、方法論)の開発」→「本質的な問題の隠蔽と関係者の人口増加の同時進行」→「問題の拡散」というパターンはこれまで何度も繰り返されて…

flock(), fcntl()

Xhwlayとか、YakiBikiで使おうと思ってたチケットトークンの扱いで気になってたものの一つに、flockの範囲の扱いがあった。つまるところ、ファイルをどうロックしてどこでアンロックするのが良いのか?という話。

愛されてるぜ、PHP。そして、此度の祭りももうすぐ終わる。

PHP

まさかこんなことになるなんて、予想していなかった。 もちろんPHPが好きだから。あばたに見えるえくぼも、えくぼに見えるあばたもひっくるめてPHPを使うから "諸君、私はPHPが大好きだ" - ぐらめぬ・ぜぷつぇんのはてダ を書いた。だけど、自分以上にこれほ…

"諸君、私はPHPが大好きだ"

PHP

ついカッとなってやってしまった。後悔はしないことはないだろう。 諸君 私はPHPが好きだ 諸君 私はPHPが大好きだ PHP/FI2が好きだ PHP3が好きだ PHP4が好きだ PHP5が好きだ PHP6が好きだ PEARが好きだ PECLが好きだ Smartyが好きだ PHPマニュアルが好きだ P…

Pseudo_Blockの発表資料

10月だかのPHP「懇親会」で発表した資料です。SlideShare使ってみて便利でしたのでこの際こっちにもぺたり。 | View | Upload your own

Pseudo_PerlのPHP勉強会発表資料

一日遅れですみません、第30回PHP勉強会で使用したPseudo_Perlの資料をSlideShareにて公開します。 | View | Upload your own後半あがっちゃったり、実際に動かすところでソース開こうとしてぐだぐだしたり、声が小さかったりしてよく聞こえない方もいらっし…

もうちょっと考えた。

PHP

id:Yudoufuさんからのコメントを返信し終わって、食器洗いをしながらぐるぐる考えてたら、ExcelVBA, BASICとの対比で気づいた点がある。言語仕様とそれに対する周囲の反応、歴史、使われ方。ともに良くPHPと似ている。いずれも初心者に学習しやすく、初心者…

あらら、叩かれてる・・・。

PHP

Matzにっきで発見。 I am so tired of people defending PHP. ... PHP is terribleNeed proof? Here it is, broken down by category: http://mindblind.net/2008/01/24/attacking-php/ 以下、私見。"Language Features": "==="については正直しゃーない、と…

PHPコード読書会かー。

PHP

で、PHPコード読書会の話*1から話がそれて、PHP拡張やxdebugの読書会とかという話が出てきた。 PHP拡張勉強会を考えてみる - おぎろぐはてな 全然空気読めてないの承知で恥をさらしますが、自分、数年前こんなコンテンツを作りかけたことがあります。「PHP/…

PHPのマニュアル検索をしたい?さあ,Firefoxを使おう!(ちょいめんどい)

大人げなく反応してみる。「PHPのマニュアル検索をしたい?さあ,Operaを使おう!」 http://d.hatena.ne.jp/sotarok/20080123/1201055928但し、Firefoxではさすがに↑のようにGUIだけで簡単にはいかない。ちょっと手数を踏む必要がある。また、基本原理はFire…

Pseudo_Perlをリリース。

第30回PHP勉強会用のネタ、Pseudo_Perlを含む、Pseudo_Block 0.1.1 をリリースします。 Now we release 0.1.1 which include "Pseudo_Perl" new class which invokes perl interpreter with embedded perl script in php script. You may think it is nonsen…

array_flipベンチマーク追記

PHP

id:uunfoさんが先日の日記を受けてさらなる検証をしてくれました。ありがとうございます。 しかしこのように同じ配列に対して何度も検索をかけるといった状況はそうあるものでしょうか? 実際のソース中のin_arrayをarray_flipを使ったものに置き換えること…

array_flip()ってこう使うのか・・・!!!

PHP

今、事情によりPukiWikiのソースコードを眺めています。で、lib/link.php の links_add() 関数で、 $rel_auto = array_flip($rel_auto);という部分がありました。array_flip()というのは http://jp.php.net/manual/ja/function.array-flip.php にあるとおり…

配列要素の OR, AND をちょっとBenchmark取ってみた。

YakiBikiでは、特に検索処理において、ArrayのAND/OR演算を行います。自分では結構重い処理になると踏んでます。 で、実際どんなものか試してみました。==== YakiBikiでは、AND, ORを(単純化すると)次のように実装してます。 OR演算: function array_or($ar…

とか思ったらきちんとPHPマニュアルに書いてあったし・・・!!

PHP

自分、アホですね。 グローバル変数と静的変数のリファレンスPHP4を駆動するZend Engine 1では、 リファレンス変数の修正子 static および global を実装しています。 例えば、関数スコープ内にglobal 命令により実際にインポートされた真のグローバル変数は…

今更ながら、PHP4でのSingletonデザパタで参照絡みで思いっきり嵌った。

。゚(゚´Д`゚)゚。PHP4の参照機構で嵌ったの、何度目でしょう。 もうね、こうね、本当にね、 PHP4の参照機構って(自主規制) だと思うの。 いや、reference counterのオーバーフローがどうのとかじゃなくて、なんかもう、 特に代入時の言語仕様として「( ´゚д゚`)…

PEAR::Error_Stackについて復習

GroupのTXのテストケースを書き始めて、いよいよエラーハンドリングについて抜き差しならない状況に追い込まれつつある。 というのも、TXの性格からして、内部で context userのroleやownerの判別をする。当然。となると、ファイルが壊れたとか以外の、論理…

私が求めるPHPのネ申はここにいた。

PHP

無名関数がかなり使いやすくなりました。高階関数のような記述もできます。 続・Zend Engineハック - 讃容日記 わずか数日でもうここまで? こ、これが本物のHackerというやつ・・・か・・・!!!

小ネタ。trigger_errorの簡易ラッパ、dlog()の覚え書き。

PHP

YakiBikiのfuncs.phpに入れたやつです。現場でバリバリPHPな人たちはとっくに類似実装を作ってると思いますが、自分としても思いの外便利に使えていますので、自分の為にメモ書き。

讃容日記:「構文解析器に手を入れたくなってきた」キタ━━゚+.ヽ(≧▽≦)ノ.+゚━━ ッ ! ! !

PHP

やっちゃって下さい!!自分は撃沈しましたが、rskyさんならきっと行けます!!(無責任) runkitはPECLでなくて標準添付・Windows版でもデフォルトで有効でいいんじゃないかと思う今日この頃。PHPでもこういうことがしたくなってきました。 http://d.hatena…

Apacheのmime.typesから、拡張子をキーとしてContent-Typeを値に持つPHP配列を作成させてみた。

PHP

YakiBikiで使うことになりそうなので、気分転換に。mime.types自体は (content-type)(タブ1個以上)(ext)((空白)(ext)1個以上)みたいな感じになってるので、tabを空白に変換してexplodeした後、一番目を値にして、2番目以降が拡張子になるので、それぞれをキ…