ありがとう。また会おう。

まぁゆるりとやっていきますよと。

PHP

defined()はクラス定数もチェックできる

PHP

define()で定義する(グローバルな)定数が、定義されているか否かをチェックするdefined()関数 http://php.net/manual/ja/function.defined.php ですが、この関数、実はクラス定数に対しても使えます。 (Version 5.4.17にて確認)

DateTimeのインスタンス達はmax(), min(), sort()できる

PHP

PHPerのみなさん、DateTimeクラス使ってますか? 意外とまだPHP4由来の関数(date()、strtotime()など)使っているケースもよくみかけるのですが DateTimeクラス使えばいろいろスマートにプログラム書けるし、例外処理もできるんで これからはこっちを使うよ…

xdebug の各種設定がどのコンテキストで変更できるかを調べる

PHP

NetBeans + xdebug + Chromeのxdebug拡張という環境がなかなか良い感じです。 この環境さえ構築できれば、もうvar_dump()要らず\(^o^)/で、この環境を作る上でひとつハマったことがあったのでメモ。最初、xdebugでリモートデバッグできるようにini_set()で…

ArrayAccessを実装したインスタンスとarray_key_exists()

PHP

自分メモ。 ArrayAccessを実装したクラスのインスタンスに

SOAP関数を使う時の注意点

ハマったので備忘録。 PHPの標準SOAPライブラリを使う場合、 接続先や利用できるメソッドなどを記述してあるWSDLファイルをキャッシュする機能がある。 http://jp.php.net/manual/ja/soap.configuration.php この「soap.wsdl_cache_enabled」ディレクティブ…

SELECT文で rowCount() が使えるか?

PDOではなく、各DB固有の関数だと、「SELECT結果の件数」を返す関数として、 MySQLなら、mysql_num_rows() MySQL拡張(MySQLi)なら、mysqli_stmt::num_rows()メソッドまたはmysqli_stmt_num_rows()関数 PostgreSQLなら、pg_num_rows()関数 があるんですが、PD…

updated_at「だけ」を更新したい場合

地味だけどハマったのでメモ。 symfonyで、というより正確にはPropelで、 updated_atカラムを含むモデルを扱う場合。 この名称のカラムを作っておけば、他に特になにも設定しなくても、レコードを更新かけた時に、更新日時を自動的に保存してくれるので、便…

Smarty3。

こないだ、最新版をダウンロードしようとして、公式サイトTOPに行って、気づいた。 http://www.smarty.net/ Smarty3 なんて動いてるんだ。 もうメジャーバージョンアップしないのかと思ってた。 どうやらPHP5専用になるらしい。 ちょっとだけ期待。

Smartyを使用するときのMVCのMとC。

連投でSmartyネタ。 今関わってる案件で、クライアント要望でSmarty必須な案件があるんだけど、 Smartyはまぁいいとして、MVCの残り、MとCをどうするか思案中。 Mは条件揃えばなんだけど、Doctrine試してみたい。 Doctrine使ったことないんだけど、サンプル…

特殊な条件下でAffectedRowsが取得できない

嵌りました。。。orz かなり特殊な状況ではあるのですが、同じ落とし穴に他の人が嵌らないよう、メモ。 使用しているバージョンは PHP:5.2.6 PEAR、MDB2:現時点で最新 PostgreSQL:7.4系 で、問題は、PEARマニュアル http://pear.php.net/manual/ja/packag…

PHP5.3から導入される(予定の)、namespaceの区切り文字、続き。

PHP

しつこいですが。。。 どうやら、この件、完全にFixってわけでもない。。。 というか、異論というか、こういう場合どうよ!?みたいな意見もでているみたいで。。。 \n とか \t ってPHPのダブルクウォート文字列内で特別な意味もつじゃん、その時どうすんの…

PHP5.3から導入される、namespaceの区切り文字。

PHP

">The result is that we have decided to go with backslash as new separator for namespaces. え〜〜!?まじっすか。。。orz またしても、(Perl|Ruby|Python|JavaScript)な人たちにdisられそうだなぁ。。。 そら、確かに空いてる記号があんまないのはわ…

switchの挙動

PHP

via:PHPの種 ブログ » PHP の switch 文は判定が緩やか PHP の switch 文は怖くて使えない - れぶろぐ (2008-10-02)これもキモいところですねぇ。。。知ってたけど。 だから僕はswitchで判定する変数に何が入るかわからんような場合は、switchを使わないか、

array_shift()の挙動

PHP

PHPの組み込み関数の変な挙動 - XOOPS専門-株式会社RYUSあ〜・・・言われてみれば、変と言えば変か。。。 ようは、PHPって添字配列と連想配列(ハッシュ)を区別しないからこういうことおきるんよね。 array_popとかarray_shiftは本来添字配列を対象にしたも…

foreachで回しながらデータを修正する

PHP

http://qwik.jp/mumu/recipe.html より。このやり方、お、いいじゃん・・・って思ったんだけど。。。 prepare("SELECT name, colour FROM fruit"); $sth->execute(); $results = $sth->fetchAll(PDO::FETCH_ASSOC); for ($results as &$rec) { $rec['fullnam…

テンプレートエンジンに思うこと。

PHP

すいません、結構放置してましたね、この日記。。。 いや、書くネタは貯めてあるんですが、なかなか時間がね(汗 まあ、気長に付き合っていただければと。。。 さて、今、仕事ではSmartyをテンプレートエンジンに使ってる業務が多いんですが、 前々からSmart…

Docコメント

PHP

今時はフレームワークが活況なので、こういう心配もないのかもしれませんが それでもまだまだ昔ながらのベタPHP(グローバルスコープにロジックべた書き)ってことも多いと思うんですよね。 特に昔の資産をひきずったものだと。 で、そういうソースコードを…

MDB2のMDB2_FETCHMODE_OBJECTがgdgdな件。

PHP

まあ今時は、「漢ならPDO」なのかもしれんのですが、業務では諸々の事情で使えなかったりするわけで、MDB2を使ってたりするんですが。 で、PEARマニュアルとAPIリファレンス見てて、こういうことできるのかと思ったんだが。 http://pear.php.net/manual/ja/p…

否定演算子。

いまさらだけど、PHPって「not」は予約語じゃないんだね。 http://www.php.net/manual/ja/reserved.php 当然、

fillin機能を使うとギリシャ文字が化ける

今、表題の件で困っております。。。 google先生もあまりいいお答えもっていないようで。。。 症状や環境はこんな感じです。 symfonyは1.0.17 libxml2は2.6.26 →いくつかの箇所で報告されている数値参照文字に化ける問題は発生しない。 サイトの出力文字コー…

str_getcsv()

PHP

CSVの処理でPHPマニュアル読んでたら見慣れないこんな関数が。。。 str_getcsv(No version information available, might be only in CVS)str_getcsv - CSV 文字列をパースして配列に格納する fgetcsv()の入力が文字列になった版、みたいなもんか。微妙。 手…

第35回PHP勉強会行ってきました。

http://events.php.gr.jp/event.php/event_show/50 てことで、先日予告した詳細報告をば。 PHP勉強会初参加だったのですが、ゆる〜い感じがなかなかよかったですw もっとカリカリしてるのかと勝手なイメージがありましたf(^^;;; 発表内容について、個人メモ…

行ってきました。

初参加でちょっと不安もありましたが、良い感じにgdgdで(笑)、変にかっちりしてなくて個人的には好きな雰囲気でした。 symfonyでモバイルサイト開発の話はかなり参考になりました! あ〜やっぱそうするしかないよねぇ、ってとことかもあったし。 なるほど!…

行くことにしちゃいました。

第35回PHP勉強会 - events.php.gr.jpPHP勉強会は前から興味あって行きたかったんだけど もともと出不精なもんであんまそういうの参加してなかったんですが。 で、今回も発表内容見て、う〜ん、どうしようかな、と悩んでいたら symfonyでモバイル開発なんてど…

文字列中のn文字目にアクセスする方法

例えば、「ABCDEFG」という文字列の中の「D」1文字を取り出したい時。 わざわざsubstr()関数をつかわなくても って書き方ができるんですが。(可読性はちょと微妙だけど) ここでふと、「てか、この方法って定数でもできるのか?」と思い立ち、やってみた。 …

setting.ymlのvalidation_error_prefix/suffixは携帯サイトでは使えない

なぜなら。。。validation_error_prefixの文字列自体はHTML的には常に出力されてて、divタグのstyle属性でdisplay:none;してるから。 (エラーが実際に発生すると、showになる) でも、多くの携帯CSSは、display:none;をサポートしてないので、validation_er…

1.0にダウングレードした。。。

しばらく、symfonyの新しいバージョン、1.1をいろいろ弄くってたんですが。 いろいろ検討した結果、1.0にダウングレードすることに。 ダウングレードした一番の理由は、新しいForm周りの実装が扱いにくかったこと。symfony1.1では、CRUD生成する時に、あわせ…

htmlspecialchars()とか、もろもろ。

とても激しいツッコミに惚れました<ぉぃ http://d.hatena.ne.jp/gallu/20080702/p2 きっとこんな(元ネタの記事 http://journal.mycom.co.jp/articles/2008/06/25/flexigrid/002.html の方)プログラムが平然と掲載されるようだから、 非PHPな方々から、PHP…

ver1.1でのgenerate-crud

自分メモ。 symfony1.1では、generate-crudする前に、Formクラスがないと怒られるので、 $symfony propel:build-forms を実行しておく。 lib/forms/ にFormクラスのファイルができる。 新しいForm機構では、validator系でymlファイルが使えなくなっている*1…

疑問点2つ

1) symfonyって、オートグローバル変数($_GET、$_POST、$_SERVERなど)は使わずに、sfRequestクラスが提供するメソッドを使いなさい、って方針だけど、REMOTE_ADDR にはどうやってアクセスすればいいんだろう? これだけわからなくて、$_SERVERを使ってしま…

Filterでlayoutファイルを変更する

symfonyで携帯サイトを作っているのですが、キャリアごと&上位機種・下位機種でレイアウトファイルを変えられた方がいいなぁ・・・ってことで、いろいろ試してみました。 まず簡単に思いつくのがlayout.phpの中でif文べた書き(笑) ・・・なんか美しくない…