PHP

PropelのforeignKeyは、主キー制約しか想定していない

ようだ。主キー以外にunique制約を加えたカラムをforeignKeyとして指定しても、こんな感じのコードが生成され、内部でretrieveByPKメソッドが使用されるので、外部キーで関連付けたオブジェクトを正しく取得できない。 public function getSectionRelatedByP…

schema.ymlで複数カラムにprimaryKey

を設定すると複合キーを作れるようです。単一カラムにしか設定できないと思い込んでいました。とはいえ、sfPropelUniqueValidatorなども主キーは単一カラムしか対応してませんし、主キーの変更を行う場合には対応していません。やはり、主キーはすべてデフォ…

phpMyAdminのID,パスワードを設定しておく

PHP

XAMPPにくっついてきたphpMyAdminを使っていまうが、デフォルトの設定だと30分経つとcookieが時間切れになってしまい、ID/パスワードを入れ直さなくてはなりません。面倒なのでどこかに設定があるはずと思い、探してみるとconfig.inic.phpの中にありました…

ユーザに対するクレデンシャルの付与

myUser.class.phpを改造して、ログイン時にクレデンシャルを追加してみます。今、作成しているアプリケーションでは、ユーザ管理にはsfGuardPluginを使っているので、myUser.class.phpの中味は次のようになっています。

adminジェネレータで画面を生成すると、sort条件はセッション情報として登録されるようです

schema.ymlをいじって、気に入らないテーブル名称を変更してみました。当然、関連する部分のコードもすべて名称変更が必要です。やっと全部終わって、動かしてみると、HogePeer::translateFiledNames()でエラーが発生します。変更前のフィールド名が使われて…

YAMLの読込みライブラリ

symfonyの設定ファイルは大半がYAMLです。YAMLの処理はsfYamlクラス(PEAR/symfony/util/sfYaml.class.php)で取扱われますが、このクラスはsyckがあれば、それを使います。syckが存在しない場合には同梱しているSpyc(sfYamlと同じディレクトリにあります)を使…

アクションのメンバ変数はテンプレートにわたらない

symfonyでは、テンプレートに値を渡すためにアクションクラスの中で変数に値をセット(例えば:$this->variableName)すると、テンプレート側では、グロ−バル名(例えば:$variableName)としてアクセスすることができる。これはとても便利なのだけれど、メンバ…

isset()は値がnullの場合にもfalseを返す

PHP

慣れの問題なのでしょうが、やっぱりこういう仕様を見るたびにゲンナリします。以下はPHPマニュアルのisset()の説明の抜粋です。 説明 bool isset ( mixed $var [, mixed $var [, $... ]] ) 変数がセットされているかどうかを調べます。 変数が、unset() に…

ZendFramework

そういえば、いつの間にかsfZendPluginがなくなっています。 ちょっとググッたらこんなページがありました。http://angelicwing.net/diary/4899.html仰せのとおりにpearを使ってインストールしました。 # pear channel-discover zend.googlecode.com/svn # p…

symfony1.0.13にアップグレード

エイプリルフールにsymfony1.0.13がリリースされていました。ということで,またアップグレードします。PEARを使ってインストールしているので,やはりPEARを使ってアップグレードします。 C:\xampp\htdocs\hoge>pear upgrade symfony/symfony downloading sym…

プラグインのwebディレクトリ

プラグインでcssを使うためにmyplugin/web/myplugin/css/hoge.cssを用意して"use_stylesheet('/myplugin/css/hoge.css')"とやってみたが、どうやら読込んでくれない。表示されたページのソースを読込んでみると、やはり"myproj/web/myplugin/css/hoge.css"を…

プラグインのテスト

アプリケーションについてはlimeを使ったテストの解説があるのですが、プラグインのテストはどうやってやるのでしょう?test-unitタスクが定義されているsfPakeTest.php を調べてみると、引数としてファイルパターンを与えることはできますが、sf_test_dir/u…

アドミン・ジェネレータのフォームラベルの':'をi18nから除外する

アドミン・ジェネレータの作成するeditフォームは、デフォルトで国際化対応してくれてます。それはいいんですが、フォームの各項目のラベルにつく":"まで、__()で括って国際化対応文字列にしちゃってます。 このままでmessages.ja.xmlを作ると、いちいち"my_…

symfony1.0.12にアップグレード

いつの間にかsymfony1.0.12がリリースされていました。ということでアップグレードします。PEARを使ってインストールしているので,やはりPEARを使ってアップグレードします。 C:\xampp\htdocs\hoge>pear upgrade symfony/symfony downloading symfony-1.0.12…

ZendFramework1.5

PHP

ZendFramework1.5がリリースされましたね。 フォーム関係やら何やら大幅に機能upしたようです。やはり将来的にはデファクトのライブラリになるんでしょうかね。会社の業務アプリにはsymfonyを使うことにしたんで、あっちが廃れないことを祈ります。

アドミン・ジェネレータのテーマをカスタマイズ/検索フィルタ

アドミンジェネレータが作成してくれる一覧画面は結構ナイスなんだけど、FireFoxで表示させると右側に表示される検索フィルタがリスト表示部分と重なってしまいます。 デフォルトのテーマとCSSをカスタマイズして、検索フィルタをリストの上部に表示させ、表…

XLIFFファイル

ひさびさにsymfonyを触った。アドミン・ジェネレータを使ったプラグインを作っているところだけど、日本語化をどうするか検討中。myplugin/mymodule/i18n/messages.ja.xml を置けばいいのだけど、 モジュールごとに同じ内容が繰返されるのはちょっとイヤ。や…

symfonyでバリデーション失敗した時に文字化け

Pluginを作成中なのですが、バリデーションに失敗した時にfillinをtrueに設定していると、文字化けしてしまいます。でも、sfGuardUserの方はfillinが設定されていても問題なく動いています。何が違うんだろう…ちょっと調べてみると、どうやらsfFillinFormの…

symfonyのバリデーションファイルとバリデーションメソッド

まだ試してませんが、sfExexcutionFilter.class.phpのコードを見ると、バリデーションファイルがあっても、その実行後にバリデーションメソッドが呼出されるようになっています。バリデーションファイルを使う時は、何がなんでもその中でやらなきゅいけなく…

symfonyのバリデーションファイル

PHP

バリデーションをYAMLで書けるのはよいのですが、イマイチ文法がはっきりと分かりません。ちょっとソースを読んでみました。バリデーションファイルを処理しているのは sfValidatorConfigHandler クラスです。このヒトがYAMLを読んで、バリデーションのコー…

Symfony vs Zend

PHP

Symfony と Zend Framework の比較記事が下記サイトにのってます。http://www.karlkatzke.com/php-symfony-vs-zend/Zendはライブラリの塊という感じで、あまり"フレームワーク"という印象がありません。Symfonyはまったく逆で、これぞフレームワークといった…