lt;?php symfonyとフランチョスのスレ ?gt;
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/11/18(土) 08:05:59ID:???http://www.symfony-project.com/
■askeet
http://www.symfony-project.com/askeet
■The symfony book
http://www.symfony-project.com/content/documentationHome.html
■symfonyで作られたサイトはこちら
http://www.symfony-project.com/trac/wiki/ApplicationsDevelopedWithSymfony#Japan
ver.1まで間近 がんばれフランチョス & ファビエンヌ フュージョンで
開発パワー2倍だ!
0376nobodyさん
2007/02/20(火) 09:56:19ID:???PEARのupgradeの意味あるんかいな。。
PEARのバージョンは?
あと、自分も一時期よく失敗してたけどRC1あたりから失敗することが無くなった気がする。
0378nobodyさん
2007/02/21(水) 10:57:30ID:???PEAR 1.4.9でupgrade失敗、
バージョンが悪いのかと仕方なく1.5にするもupgrade失敗
だったお
0379nobodyさん
2007/02/22(木) 01:58:28ID:???システムディレクトリに残ってるゴミは消したか?
pear.iniだとかそのへん。
まぁ俺はPEAR使ってないから関係ないが。
0380nobodyさん
2007/02/22(木) 10:26:57ID:???スニペットに書いてたAJAXなやり方だと負荷かかりすぎるわ。。
QuickForm風なヘルパーでも作るしかないかな。。
0381nobodyさん
2007/02/22(木) 23:55:16ID:???propelで作ったメソッドに
$a = AAAAPeer::doSelectJoinBBBB($c);
と
$b = AAAAPeer::doSelect($c);
があるのですが、
$b->getBBBB();
でBBBBのオブジェクトが取り出せます。
doSelectJoinBBBBはどんなときに使うと良いのでしょうか。
0382nobodyさん
2007/02/23(金) 01:30:16ID:???symfonyに期待するのではなく、既存ライブラリを組み込んでみた方が吉かと
ttp://blog.masuidrive.jp/articles/2006/01/05/validation
>>381
18章にある。恐らく欲しい答えが。
So if you know that you will need related objects, call a doSelectJoinXXX() method to reduce the number of database queries--and improve the page performance.
つまりは、外部キーでリレーションしているオブジェクトをとってくるなら
doSelectJoinXXX()関数のほうが1度のクエリで取得できるので
パフォーマンスがちょびっと良いってことらしい。
0383nobodyさん
2007/02/23(金) 07:14:50ID:???ありがとう!
$b->getBBBB(); de またDBにアクセスするんですね。
doSelectJoinAll()だと、けっこうメモリ消費しそう・・・
0384nobodyさん
2007/02/23(金) 18:29:27ID:???レスサンクス!
そのvalidatorは見つけてたんだけど、
どうやってもprototypeを先に読み込んでくれないので腹立ってやめたw
日付フォームがあるせいだとは思うんだが。。
0387nobodyさん
2007/02/24(土) 22:47:39ID:???アクション内だと
$this->getResponse()->addJavaScript('prototype', 'first');
view.ymlでも指定できる
0388nobodyさん
2007/02/26(月) 08:39:23ID:???後発の方もいるかもしれないので
----
// In the view.yml
indexSuccess:
stylesheets: [special: { position: first }]
[php]
// In the action
$this->getResponse()->addStylesheet('special', 'first');
0389nobodyさん
2007/02/26(月) 09:52:17ID:???0390nobodyさん
2007/02/26(月) 15:00:43ID:+JAM5eUfforwardメソッドを使う時に、パラメータを指定したい場合はどう書けば良いのでしょうか?
0391nobodyさん
2007/02/26(月) 16:45:15ID:???forwardの場合は、redirectと違ってそのまま使えないか?
・・・と、ここまで書いてふと思ったんだが、
// 一つ前のactionを取得する
$stack = $this->getContext()->getActionStack();
$size = $stack->getSize();
$action = $stack->getEntry($size - 2)->getActionInstance();
// 一つ前のmessageを拾う
$this->message = $action->message;
↑こんな感じの事をしたいのか?
0392nobodyさん
2007/02/26(月) 17:34:38ID:???例えば
$this->forward('userinfo','edit');
等でさらにユーザidを指定したい場合にどうすれば良いのかなと。
0393nobodyさん
2007/02/26(月) 17:38:27ID:+JAM5eUfvalidator:
fields:
の設定はフォームタグのアクション属性に設定したアクションについて設定して、
fillin:
の設定はフォームを出力するアクションについて設定すれば良いのですよね?
0394nobodyさん
2007/02/26(月) 19:39:24ID:???どうやって取り出したら良いの?
0395nobodyさん
2007/02/26(月) 19:40:56ID:???$this->getRequest()->getParameterHolder()->set('id', $id);
こんな感じでリクエストにセットすれば?
0396nobodyさん
2007/02/26(月) 20:01:12ID:???>>395氏の言ってる方法が一番楽そうだと思う。
が、$this->user_idとしておいて>>391氏の方法を使えば、$action->user_idで取り出せるし、
自分だったら、forwardはやめて$this->redirect('userinfo/edit?user_id='. $user_id);
とする。
(redirectだと、渡したパラメータのみが引き継がれる事に注意。)
>>394
今、環境が無いのでおぼろげな記憶を頼りに書いてるんで間違ってたら申し訳ないが、
doSelectRS()って、result idが返るだけじゃなかったっけ?
doSelect()にしておくか、hydrate()する必要あるんじゃない?
0397392
2007/02/26(月) 21:06:21ID:???レスありがとうございます。
その方法でやってみます。
redirectについてですが、
フォームのバリデーション後のrepopulationとしてのforwardですので
redirectだとエラーメッセージが出せない問題があります。
(それもリクエストにセットすれば良いのでしょうが、forwardだとデフォルトで出せます)
0398nobodyさん
2007/02/27(火) 08:36:20ID:???input_in_place_editor_tagをつかってます。
submit後
<p id="???"> aaa </p>これが、
<p class="" style="background-color: transparent; background-image: none; display: none;" title="Click to edit" id="???"><p id="???"> bbb </p></p>
上記のように<p>タグが入れ子になってしまいます。
分かる方見えませんでしょうか。
0399nobodyさん
2007/02/27(火) 19:35:26ID:???するのですが、何か解決方法はありませんか?
0400nobodyさん
2007/02/27(火) 20:08:56ID:???0401399
2007/02/27(火) 20:24:12ID:???とりあえず、わかっている事は・・・
sfMail は phpmailer をラップしている。
setCharset で文字コードを指定できる。
PC(OE),docomo,au では文字化けしない。
メールのソースを見ると本文がエンコードされていない?
って感じです。
softbankではこうするみたいなtipsって誰かしらないですか?
0402nobodyさん
2007/02/28(水) 20:10:52ID:zzIvX9Qb戻って来てほしい場合に使うべき方法って何かありますか?
0403nobodyさん
2007/02/28(水) 21:26:04ID:???JavascriptHelperに InPlaceCollectionEditor ってないよねぇ
0404nobodyさん
2007/02/28(水) 22:27:39ID:???>>402
forwardのかわりにgetPresentationForでできる
ttp://develop.ddo.jp/new-tech/php/framework/symfony/memo/action/
の「描画処理させずに描画結果を変数で取得したい」参照
>>403
input_in_place_editor_tagがある
ttp://symfony.jp/index.php?Ajax
さんぷる
ttp://tool-man.org/examples/edit-in-place.html
0405nobodyさん
2007/02/28(水) 22:37:24ID:???質問の答えになってないな。スマソ。
0406nobodyさん
2007/02/28(水) 22:54:52ID:???なんでInPlaceCollectionEditor ないんだろ
0407nobodyさん
2007/03/04(日) 00:37:01ID:???何度アップグレードしようとしても
下記のようなエラーが表示されアップグレード出来んとです。
ERROR: pear.symfony-project.com/symfony not installed
どうすればアップグレード出来るようになるかわかる方いらっしゃいましたら
やり方をお教え頂きたいとです。
0409nobodyさん
2007/03/04(日) 02:21:35ID:???symfonyでiso-2022-jpのメールを送るのはどうすれば良いでしょうか。
$var = $this->getPresentationFor('mail','send');
これでやってみましたが、全文が取得されてしまい
ヘッダ部とメール本文が分けれません。
0410nobodyさん
2007/03/04(日) 05:41:03ID:???わざわざ買った奴オワタ
0413nobodyさん
2007/03/04(日) 15:41:09ID:???フランチョス の寄付だろ?
0414nobodyさん
2007/03/04(日) 15:43:02ID:???特に英文読むのは疲れるから。
0415nobodyさん
2007/03/04(日) 16:07:42ID:???英文はページ翻訳できる分htmlの方がいい
0416nobodyさん
2007/03/04(日) 17:31:16ID:G5zu5HC1を参考にsymfonyを勉強しているんですが、symfony propel-build-schemaの所で
[propel-creole-transform] There was an error building XML from metadata: Could not connect [User Info: host=localhost dbname=\'codezine\' user=\'postgres\']
と言ったエラーが出ます。
databases.ymlのphptype: をpgsql
propel.iniを下記に変更しています。
propel.database = pgsql
propel.database.createUrl = pgsql://localhost/
propel.database.url = pgsql://postgres:@localhost/codezine
環境はwinXP Apache2.2 postgreSQL8.1です。
どこがおかしいのでしょうか。。
どうかご教授のよろしくお願い致します。
0417nobodyさん
2007/03/04(日) 17:51:43ID:???0418409
2007/03/04(日) 20:20:08ID:???iso-2022-jpでメールを送信することがどーしても出来ません。
PHPMailer の CreateBody()メソッドでメールのbody部を処理している
ようなのですが、ここでmb_convert_encodingをしようと思います。
このような場合はオーバーライドすればいいのでしょうか。
エラーメッセージにcodezineという名のデータベースが存在しない、と表示されているわけだけど。
何らかの環境からそのDBへの接続は成功してる?
0420nobodyさん
2007/03/04(日) 20:49:49ID:???0421nobodyさん
2007/03/04(日) 23:26:09ID:???0422nobodyさん
2007/03/04(日) 23:34:43ID:???$sf_last_module/$sf_last_action消えてね?
form書く時面倒くさくなくて良かったのに。
0423nobodyさん
2007/03/04(日) 23:43:01ID:???0424nobodyさん
2007/03/04(日) 23:53:28ID:???取得はできるが…面倒くせえ…why…
0425407
2007/03/05(月) 00:00:12ID:???pear upgrade symfony/symfony-beta
とやっても
ERROR: pear.symfony-project.com/symfony not installed
と表示されるとです。
0426nobodyさん
2007/03/05(月) 00:07:33ID:???ディフィニティブガイドを
地道に訳してくれてる人がいるな
0427nobodyさん
2007/03/05(月) 01:03:36ID:???だれも無反応なので反応してみる
$this->getPresentationFor('mail','simpleSend','myMail');
のようにsfMailの代わりのクラスを指定できることはご存知?
>>426
ttp://d.hatena.ne.jp/courant/20070302/1172836123
6月ごろには全部みれるかもよ
0428nobodyさん
2007/03/05(月) 02:31:26ID:???ZFの影響も見られるね
actionのregisterValidator廃止して
代わりにvalidateメソッド実装させたり。
mojaviの血が薄くなっていく…
0430nobodyさん
2007/03/05(月) 17:09:07ID:???アクション名.ymlを作って
そこに
fillin:
enabled:true
って書いたらフォームに値をセットしてくれるんですよね?
書いてみても思ったように動作しないのですが何か他に作業が要りますか?
アクションクラスやテンプレートファイルは触る必要あります?
0431nobodyさん
2007/03/05(月) 19:08:11ID:???enabled: on
param:
name: フォーム名称
0432nobodyさん
2007/03/05(月) 19:16:01ID:???このページによると
enabled: true
と書かれていますが、確かにonと書かれている記事もWEB上で見つかります。
どちらが正しいのでしょう?
name値は、ページにフォームが一つしかない場合省略出来ると書かれているので
書いていません。
ちなみに、書くとすればformタグのnameですよね?
0433nobodyさん
2007/03/05(月) 19:18:51ID:???IDEの補完機能使えって意味?
ZS使ってるから自動補完は効くんだけど、
それでも面倒は面倒。
Viewを変更できない(sfPHPViewで決め打ちされてる)から
ヘルパで解決しようと思ってるよ
0435nobodyさん
2007/03/05(月) 22:51:36ID:???grouptableテーブル(m:nテーブル)と
groupinfoテーブル(所属グループ)があって、
複数のユーザが一つのグループに、
または一人のユーザが複数のグループに属す場合がある
というようなDB設計になっているのだけど、
schema.ymlのgrouptableのとこにfkについて書いてみたら
doSelectJoinAll()がgrouptableクラスにしか生成されず、
それを使ってみたらgrouptableからuserinfoを辿って
userinfoからまたgrouptableを辿って、RECURSIONだと言うエラーが出て
壊れ気味の結果セットが返ってきます。
どこが間違っているのでしょうか?
何か参考になるページがあれば教えて下さい。
0436nobodyさん
2007/03/06(火) 00:12:35ID:???yamlだと動的に出来なかったけど
callbackバリデータも整備されたし。
( ^ー゚)♭fabien GJ!!
0439nobodyさん
2007/03/06(火) 00:30:41ID:???逆に柔軟すぎて怖い気もしないでもないが…
0440nobodyさん
2007/03/06(火) 01:16:04ID:???symfony使おうと思ったら
PHPをソースから入れるの前提ですか
0441nobodyさん
2007/03/06(火) 01:18:35ID:???そんなことはない。
rpmでOK。
それより今日のカンファレンスは行くのか?
巴里のどこだ?
0442nobodyさん
2007/03/06(火) 01:30:33ID:???0444nobodyさん
2007/03/06(火) 02:04:29ID:???yum で普通にゲットできるでしょ。
0445nobodyさん
2007/03/06(火) 02:19:05ID:???escaping_strategy と escaping_method
って設定してる?
これってすげー重い気がするけど、どうですか。
0446nobodyさん
2007/03/06(火) 02:45:15ID:???0449nobodyさん
2007/03/06(火) 06:18:28ID:???In the production environment, the configuration is cached, so the configuration files are parsed (and executed) only once after the cache is cleared.
って言ってるから完全に動的ではないんじゃ?
設定ファイル中の定数的な値を嵌め込んだりはできるけど
0450nobodyさん
2007/03/06(火) 06:34:36ID:???プレビューリリースで不満だったところが全部直ってる感じ。
素晴らしい。
0451nobodyさん
2007/03/06(火) 17:57:11ID:???0452nobodyさん
2007/03/06(火) 18:09:52ID:???ものすごくいらない。
あと俺の考えだとモデルクラスがテーブルごとに作られるのもおかしい。
クラスは共通、オブジェクトに名前つけて区別すれば良い。
コードを自動生成するとはいっても滅茶苦茶質の悪いものを大量に吐いてるだけな印象。
手で組むとしたらありえないくらい冗長なコードになってる。
なんで世界的に勢いのあるFWがこんなレベルなんだ。
0453nobodyさん
2007/03/06(火) 19:23:13ID:???Propelいやなら、Doctrineでも使ってみたら
0454nobodyさん
2007/03/06(火) 19:30:08ID:???>あと俺の考えだとモデルクラスがテーブルごとに作られるのもおかしい。
>クラスは共通、オブジェクトに名前つけて区別すれば良い。
これに関しては同意しかねる、O/Rマッパすらないんじゃ話にならねえ
が、propelがイケてないのは同意
railsのactiverecordを真似てphpで実装しようとすると
どうしても言語実装のせいで限界が出てくるので
モデルクラスを先に全部生成しちゃってお茶を濁してる感じ
実装上しょうがないのはわかるがあまり好きじゃない
0455452
2007/03/06(火) 19:45:19ID:???俺が言ってる設計は、例えば
$userinfos=sf_db::getTable("userinfo");
$articles=sf_db::getTable("article");
というようなもの。
コード書くときはいつもこういう設計をしてるし実際うまくいってると思う。
0456nobodyさん
2007/03/06(火) 20:00:36ID:???frontendで見たときにfilterのとこちゃんと見てみて。
あと、htmlのキャッシュどうなってる?
0457nobodyさん
2007/03/06(火) 20:33:43ID:???symfonyのgetConnectionとexecuteQuery使うと
返値の結果セットがfetchRowもってなくて面倒なのでDB.php使いたい。(使うしか方法が分からない)
doSelectの返値はたしかtoArrayメソッドがあるけど、executeQueryの返値にはないとか
非常にめんどいが、こんな仕様にする必要があるのだろうか?
とりあえず俺は検索を実行して配列を得たいのだけど、どうすれば良いんだろう?
本当はdoselectjoinallとかが使えれば良いんだけど変な動作するし
一つjoinするだけならdoselectjoinxxxxでいけるけど二つ以上はダメとかそんな仕様ありえんし。
0458457
2007/03/06(火) 20:35:25ID:???symfonyはjoinに対してどんな手段を提供してるの?
0459nobodyさん
2007/03/06(火) 20:36:07ID:???俺はそれでつまった
0460nobodyさん
2007/03/06(火) 20:44:01ID:???「こうしたいんだけどどうするんだろう?」の疑問を調べるのに
時間食いまくりでぶち切れた。
0461457
2007/03/06(火) 20:49:18ID:???mysqlに直接ログインして手で叩いて複数レコード返るのを確認したSQLが
$con=Propel::getConnection();
$rs=$con->executeQuery($sql);
var_dump($rs);
ってやると1レコードも返ってきてないのはなぜだなぜ挙動が違うんだ
糞仕様のせいでかえれねえええええええええええええええええええええええ
0462nobodyさん
2007/03/06(火) 22:18:22ID:???必ずプリペアドもつけてくれよ。
0463nobodyさん
2007/03/06(火) 22:56:21ID:???もちつけ。
$rsがNULLってるってこと?
それとも$rsが結果の配列ではないという事なのかな?
俺の環境では$rsにはイテレータが返ってきて、
while($rs->next()){
print $rs->get("COLUMN_NAME");
}
って感じでアクセス出来るけどなぁ。
0464nobodyさん
2007/03/07(水) 00:04:54ID:???って出てインスコできないんだけど原因わかる人いたら教えて
ちなみにbetaつけてやってみたけど�_だった orz
0465nobodyさん
2007/03/07(水) 00:22:46ID:???ハードコーディング癖は直ってねーなfabien
カンファレンスで直訴してくるか
fucking連呼で
0466nobodyさん
2007/03/07(水) 01:23:10ID:???myヘルパ書いたら結構いい感じになった。
こういうのは生でするもんじゃねーな
0467nobodyさん
2007/03/07(水) 04:35:52ID:???0468nobodyさん
2007/03/07(水) 04:41:57ID:???0469nobodyさん
2007/03/07(水) 06:05:56ID:???0470nobodyさん
2007/03/07(水) 06:11:30ID:???XSS対策は escaping_strategy じゃないっすか?
0471nobodyさん
2007/03/07(水) 06:16:46ID:???0472nobodyさん
2007/03/07(水) 06:23:30ID:???って流れだったら、
画面遷移ごとにバリデーションしておいて、
登録前にもう一回全部をバリデーションするじゃん。
そうなるとvalidate/*.ymlが冗長になるけど
そのあたりどうしてますか?
0473nobodyさん
2007/03/07(水) 08:33:59ID:???そんなことはない。
バリデーションさせたいときに、各アクションのvalidate/*.ymlを
作ればよい。
■ このスレッドは過去ログ倉庫に格納されています