php
$ php -r '$data = array(); echo $data["key"];' PHP Notice: Undefined index: key in Command line code on line 1当然ですね。 $ php -r '$data = null; echo $data["key"];'今更ながらに知ったのだけど、NOTICEも何も出ないのね。決まったフォーマット…
SecurityComponentのチェックにかかってにっちもさっちもいかなくなったんだが、そもそも基本的な動作フローを理解していないのでどこから手を付けていいのか分からない。というわけで、コンポーネントが読み込まれる仕組みを調べてみた。対象バージョンは1.…
「CakePHPでラジオボタンを出そうと思ったら、PCREとかPHPのビルドを考え直すハメになった」の続報です。CentOS5.5環境でPCREのUnicode文字プロパティを正常動作させる方法について改めてまとめます。動作確認には、Inflector::slugに含まれる問題のパターン…
(2011/05/18追記)末尾にCentOSの標準RPMの更新について書きました(2011/05/19追記)続編書きました CentOS5.5でCakePHP1.3系のInflector::slugを正常動作させる方法CakePHPのFormHelperでラジオボタンを出してみたところ、label要素がうまく動かない症状…
現時点のgithubのmasterでcake/bascis.phpから。 function __($singular, $return = false) { if (!$singular) { return; } これはひどいis_nullとか===とか、ちゃんと使わないと残念なバグを仕込んでしまうという、PHPにおける基本的な教訓を改めて得られま…
(追記)本記事の内容はCakePHP1.3.6ならびに2011/04/28時点でのgituhbの1.2, 1.3ブランチで検証しました。(2011/05/05追記)コメントで現時点のCake2.0では再帰的な探索を行わないとのご指摘を頂きました。ちゃんと追えてないけど、import周りの処理は大幅…
CakePHPにはSet::extractというPHPが不便なだけ非常に便利な機能があります。こいつの実装はなかなか面白いことになっていて、
$node->parent(); とかで取れると思ったら無理だった。 $parents = $node->xpath('parent::node()'); $parent = $parents[0]; みたいにxpathで取るのが妥当なやり方?こういう、配列を返す関数・メソッドのn番目の要素を直接取るのってPHPでは書けないんです…
今年のPHPconは「ビジネスデイ」と「テックデイ」と銘打って2日間に渡って開催されました。どのようにそれぞれのカラーを打ち出していくのか、というかビジネスデイをどう形作っていくのかが気になっていたんですが、結論から言うとうまくキャラクター付けが…
events.php.gr.jp - 第45回PHP勉強会@関東 8/1の土曜日に六本木のお好み焼き屋さん「はてな」で開催されたPHP勉強会に参加してきました。最近はあんまりPHPを使ってないこともあって、自分が行って一人分の枠を喰うのもよろしくないだろうと、積極的に参加し…
symfonyのテストフレームワークlimeはPHP版のTest::Moreとして単体で使うにも具合がいいけど、Test::More単体の機能しか備えてないので、拡張モジュールでサポートされているようなテストが出来ない。例えば、例外のテストなんかはTest::Exceptionが提供する…
「自分のメイン言語はPerlだけど、会社ではPHP使ってる。PHPでもTest::Moreみたいにテストしたい」という人は結構いるんじゃないかと思います。「php test::more」でググると出てくるのはここ。 Test::MoreのPHP版 : cotalog 紹介されているtest-more.phpは…
最近のよく訓練されたPHPerはフレームワークに組み込みの機能を使ったりするんだろうけど、そういう波に乗れていない僕は未だにPEAR::Pager使ったりします。今日はそんなPEAR::Pagerの小ネタ。PEAR::Pagerを使う時は、 'Sliding' ) ); みたいにmodeで表示タ…
先日の 第3回PHP懇親会に行ってきた で「PHPで書くとシンタックスが長ったらしくて嫌だ」ということを書いたら、いくつかフィードバックがあったので乗ってみる。Perlの「$hoge =~ s/^Hoge/Fuga/」という書き方に対して、PHPの「$hoge = preg_replace('/^Hog…
第2回だと思ってたら、第3回だった! 前に参加したのは第1回? 第2回?というわけで、第3回PHP懇親会に行ってきました。会場はPHP懇親会と言えばここ。新宿の手造りダイニング「ファンデリ」さん。店の場所(特に入り口)がちょっと分かりにくいから、地図と…
久々にPHP関連のエントリ。最近、フロントエンドのテンプレートをPHPで組んで、そこからバックエンドのPerl(Catalyst)の内部APIを叩く、みたいなことをしてます。複数選択可能なチェックボックスの扱いでつまづいたのでメモ。 ■結論 PEAR::HTTP_Requestで…
$html->checkboxのバグ? - Do you CakePHP はてな 昨日初めてCakePHP(1.2)を触った俺が試してみましたよ。チェックボックスを出力するのに、 $html->checkbox('User/active_flag',NULL,$value); とした時に$valueがエスケープされないというお話。1.2でそ…
本日、ウノウにてCakePHPハンズオン@tokyoが開催されております。最近、「ちょっとした軽いのをぱぱっと作るにはやっぱりPHP便利だよなー」とPHP再評価フェーズに入っているので参加しています(現在進行形)。以前は自作の俺俺フレームワークでせこせこと組…
CakePHPハンズオン@Tokyo - events.php.gr.jpPHP関連の勉強会は募集開始から1〜2時間で枠が埋まってしまうことが多いのですが、今回はわりと余裕があるみたいです。っても残り1枠だけど。講師はCakePHPのお兄さんとして有名なid:yandodさん。今年のPHPカンフ…
7・8日に2daysで開催された「PHP4送別会」に行ってきました。2日連続で参加するのは家庭平和維持の観点から自重して、8日の「たん清」での肉祭りのみ参加。写真はすっかり忘れてたので殺風景にテキストのみエントリ。そしてPHPconのエントリは時期を逃したの…
Matz氏の「Attacking PHP」に端を発した今回の祭は予想以上に盛り上がり、いろいろと面白い議論にも発展しています。そんな中で、話が進むにつれて分かってきたのは、他の言語を使っている人の言う「PHPer」という言葉の意味が自分の認識とはかなり違ってい…
Matzにっき: Attacking PHP 404 Blog Not Found:「PHPなめんな」と「(Perl|Python|Ruby)をなめんな」の違い こういう波って本当に定期的に来るよね。特に何も書かずにスルーしてたけど、うっかり書いてしまいました。まず自分の過去を振り返ってみると、2001…
ちょっと出遅れた感はあるけど書いておこう。去る11月21日水曜日、新宿「ファンデリ」さんを借り切ってPHP懇親会が開催されました。「PHP勉強会 = 焼肉」のイメージを払拭するため(?)、今回はおされなダイニングで開催です。とは言え、そこは流石のPHPer達。…
Event Entry::PHP懇親会 焼肉じゃないことで話題の懇親会に参加します。「勉強会行くから晩飯いらない」と嫁に言ったら「また肉か!」と即座に返ってくるぐらい認知されてますよ。やりましたね。このところロクにphp触ってなかったり、外に出る時間があった…
以前このブログでも紹介した、拙作の「Smart*CSS」をウノウラボで紹介させて頂きました。流石に自分とこみたいな零細ブログで書くのとは大違いで、見る見るうちにブクマが増えていきます。 前回のフォームのユーザビリティネタは幅広い層に読んでもらえるよ…
phpをソースからビルドする場合、configureのオプション--with-config-file-pathでphp.iniを格納するパスを指定することが出来ます。例えば、 ./configure --with-config-file-path=/etcとすれば、/etc/php.iniを探すようになります。以下、完っ全に間違いで…
9/1(土)に開催されたPHPカンファレンス2007に行ってきました。まずは、会場の様子を。 期待を裏切らないこのクオリティ。大変おいしゅうございました。PHPやっててよかった! というのは前日のお話。当日は、朝から個人用の名刺作ってたら出発が遅れて、会…
Smart*CSS CSSを構造化して記述できるようにする「Smart*CSS」をリリースしました。こいつを導入すると、 #content { p { margin:0; } ul { margin:10px 0; li { padding:10px; } } }てな感じにCSSが書けるようになります。php+Smarty+mod_rewriteで動作しま…
specified location of the MySQL UNIX socket... no MySQL UNIX socket location... no mysql_close in -lmysqlclient... noみたいなエラーが出て、configureが止まる。--with-mysql=/var/lib/mysql でもダメで、--with-mysql-sock=/var/lib/mysql/mysql.so…
emacsのphp-modeを最低限試してみたので、今度はvimでやってみました。どうやらvim7で実装されたomni補完(候補のリストが出てきてそこから選ぶ系の補完)がいいらしいんだけど、CentOSのyumで提供されているのは6.3。タブも使えません。そこで、手動で入れ…