PHP

PHP関西 勉強会に参加

11/7、KOF初日の帰りにPHPの勉強会に初参加。関西でPHPの勉強会というのは久しぶりらしい。とりあえず、全参加者のうち、かなりの割合がCakePHPを使っていて驚いた。以下感想。 PHPUnitのこんな機能知ってる? by id:kunitさん PHPUnitというかSeleniumの話が…

memcached/APCとネームスペース、トランザクション

PHPでmemcacheやAPCを使ったキャッシングを色々試してみて、気付いた事をメモ。memcacheはクエリで取得した値のキャッシュに使い、それ以外の色々な事にはAPCを使うのが良いような気がする。APCはmemcacheより10倍程高速なようだが(Cache Performance Compar…

S2Container.PHP5 & S2Dao.PHP5のキャッシュ機能を強化して高速化する

S2Container.PHP5 & S2Dao.PHP5を使ってる人ってどの位居るんでしょうね?ずっとsymfonyと組み合わせて使ってるけど、本当に便利なんだけどな。symfony始める時にPropelをそのまま使うか考えたんだけど、ドキュメントを軽く読み流した感じだと、確かに簡単なC…

冗長だ

php

PHPで $c = (new A())->getB()[0] || 0; とか書けたら楽なのに(getB()は配列を返すメソッドとする)。 上記は下記と同じ意味になる。 $a = new A(); $b = $a->getB(); $c = array_key_exists(0, $b) && $b[0] ? $b[0] : 0; つまり、 オブジェクト作って、メソ…

symfonyでのユニットテスト

http://cgi39.plala.or.jp/klove/w/k.cgi?page=Diary%2F2007%2D10%2D23viewとcontrollerだけの為にsymfonyを使っていて、service, logic, daoといったモデル層以下は出来るだけsymfonyに依存しないようにしたいなーと思いつつ(propelは使わず、daoはS2Dao.PH…

PHP5.2.3のタイプヒンティング

php

手元のVMware上のCentOS4.4に、PHP5.1.6がインストールしてあったのだが、ちょっと試してみようとPHP5.2.3を入れてみた。CentOS4.4ではyumでインストールが出来ないので、ここでパッケージを見つけてインストール。で、なんとなく下記のようなコードを書いた…

設定ファイル

symfonyの設定ファイル(app.yml, module.yml)に関して、多分symfony使ってる人の98%位は当然知ってるのかも知れないが、個人的に結構気付くまでに時間がかかった事がある。例えば、testモジュールのmodule.ymlに次の様に記述する。 all: a: "1階層目" b: c: …

PHP Interactive

php

そんなしょうもないことに躓いたこともあり、今後ちょっとでも自身の無い部分があった場合なんかに、極力手軽にさくっと試せる環境が欲しいなー、と思って探したら、すぐ見つかった。PHP Interactive簡単にインストール出来て、プラウザ上で簡単にスクリプト…

(0 == "") == true

php

気が付いたら、この前日記書いてから数ヶ月間もほったらかしだった。コメントも付いてたのに無視か・・・。申し訳ないです。その間色々あったけど、最近衝撃を受けたのが、PHPの異なる型間の比較について。あまりに間抜けで初歩的と思われることなので、自戒の…

S2Container+S2Dao.PHP5を使ってみる(その8)

さて、カートの画面が一応出来たところで、ちょっと戻って考えます。ログイン画面で、入力されたemailとpasswordの入力値の検証はどうしようか?と。入力値のvalidationにはいくつかのレベルがあると思いますが、データベースからデータを引っ張ってこないと…

S2Container+S2Dao.PHP5を使ってみる(その7)

セッション回りが出来たので、ログイン後に遷移するカート画面を作っていきます。まずはtemplateから。カートでは、"ログインした人の名前さんのカート"とか表示したいので下記の様にしてみました。フォームの遷移先actionはやはり自分自身なのでviewCart、…

S2Container+S2Dao.PHP5を使ってみる(番外ハマり編)

S2Dao.PHP5を使うことになってはじめてpdoでmysqlに接続したのですが、その中で2つ、困った問題にぶち当たりました。 まずはS2Daoでテーブルにデータを挿入しようとしても、どうしても挿入できない、という問題 もう一つは、テーブルに挿入したデータが文字…

S2Container+S2Dao.PHP5を使ってみる(その6)

どうでもいいけど、firefoxで日記のフォームに直接書いててプレビューしようとしたら無反応になり、書いた内容がパーになってしまった...。結構時間掛かったのに!めげずにもう一回書きます。今後はエディタで書いてフォームに貼り付けよう...。 その5までで…

S2Container+S2Dao.PHP5を使ってみる(その5)

まず、その4で、actionでserviceのauthorizeメソッドを使う仮定、みたいなことを書いたけど、多分その時点でserviceのinterfaceに書いてしまうのが正解かも(実際には、actionはすぐに書いてしまえるので、serviceもほぼ同時に書くことになりますが)。実装は…

S2Container+S2Dao.PHP5を使ってみる(その2)

ログイン/会員登録画面は、大体amazonなどのサイトを真似て作ればよいので、必要な画面は大体見えてます。その上で、データベース上に必要なテーブルを適当に作成し、そこからS2Baseの機能を使ってeitityとdaoを生成します。 テーブルは予めeclipse上でclay…

S2Container+S2Dao.PHP5を使ってみる(その1)

自分の備忘録+まわりの数人の為に、s2.phpを使用した経過を記していきます。 例題っぽい感じで適当なモジュールを作ろうと思うのですが、取りあえず、うちの現在の状況から言って、簡単なログイン画面でも作ってみるのが良いかと思います。 goyaに沿って、画…

S2Container+S2Dao.PHP5を使ってみる(その4)

S2Base.PHP5 with Smartyで組み合わせると、ありがたいことに画面遷移の仕組みは提供されているので、それをそのまま使います。actionからtemplateや他のactionへのredirectを指定してやれば良いという訳です。面倒なデータアクセス関係は全部s2daoがやって…

S2Container+S2Dao.PHP5を使ってみる(その3)

さて、出来上がったcommons\dao以下のファイルですが、それらをそのまま使うようにしても良さそうな感じですが、ここはとりあえず LoginSample\app\modules\Login\entity LoginSample\app\modules\Login\dao にそれぞれ*Entity.class.phpと*Dao.class.phpを…