フランチョスとsymfon ..
201:nobodyさん
08/06/26 18:14:47 Ib0rEj6C
各モジュールやアプリケーションにまたがって
使われるクラスを作りたいんだけど、
そういうファイルってどのディレクトリに入れるのが適切?
202:nobodyさん
08/06/26 20:10:08 Pvojb66n
>>201
一番上の方の lib とかに入れとけばautoloadされなかったっけ?
曖昧なかんじですまん。
203:nobodyさん
08/06/26 21:06:37 Ib0rEj6C
>>202
プロジェクト下だったりアプリケーション下だったりモジュール下の
libに入れれば各々のところでautoloadされるみたいですね。
ありがとうございます!
204:nobodyさん
08/06/27 15:48:50
settings.yml の
.settings:
timeout: 180
って何の設定?
205:nobodyさん
08/06/27 21:50:11
セッションが180年継続されることです。
206:nobodyさん
08/06/30 08:11:19
祝 1.1
207:nobodyさん
08/06/30 10:07:04
キタコレ。
208:nobodyさん
08/06/30 22:14:01 p53V2UEr
Symfony(で使ってるpropel)って、SQLiteの時にsqlite.soを要求するってことはSQLite2?
SQLiteで作ったファイルを使ってpropel-build-schemaさせようとして半日悩んでしまったが、一行目にハタと気がついてしまった。
自分バカっす……。
209:208
08/06/30 22:14:47
っと、脱字。「SQLite3で作ったファイル」ね。
210:nobodyさん
08/07/01 16:31:40 qqn3liZn
example.com/hoge?a=b
を
routing.ymlで
example.com/hoge/a_b
という風にすることってできないですかね?
やるとしたら.htaccessいじるしかないのでしょうか
211:nobodyさん
08/07/01 21:59:28
>>210
mod_rewriteで変換するのが楽そうやね。
aとbの組み合わせが限られていて少なければ全部書いていけばrouting.ymlでもできるだろうけど。
212:nobodyさん
08/07/02 09:33:33
>210
yamlに直接PHPを書けるよ。
213:210
08/07/02 15:35:36 rbMFbkRb
>>211
やっぱそっちのほうが楽ですよね
でも、見るファイルがrouting.ymlと.htaccessに散らばるのが嫌なんですよねえ
>>212
ためしに
/:module/a_<?php sfContext::getInstance()->getRequest()->getParameter('a') ?>
っていう感じでやってみたんですが、
Fatal error: Unsupported operand types in C:\PHP\PEAR\symfony\util\Spyc.class.php on line 667
と出てしまいます。
まだsymfonyのことよくわかってないので、
色々試してみます。
ありがとうございました!
214:nobodyさん
08/07/02 18:34:23
routingにパラメータ取得持ってくるとか…
なんてかわいそうな人
215:210
08/07/02 18:46:03 rbMFbkRb
ほかに取得するものが浮かばなかったので・・・
216:nobodyさん
08/07/02 20:24:36
ていうかRouting拡張すりゃいいんじゃん
217:nobodyさん
08/07/02 20:28:44
symfony_data_dir/config/config_handlers.ymlをプロジェクト/configにコピって持ってくる
config/routing.yml
class: CustomRoutingConfigHandler
で、好きにカスタマイズしなよ
218:nobodyさん
08/07/04 22:35:50 6INfqE2e
今日デプロイ予定日なんですが、久々にsymfony syncしたら
URLリンク(tkt.s307.xrea.com)
的な状態でSSHログインができなくなってしまいました。
勿論pakeFunctionの修正は行っているのですが、誰か心当たりの
ある方いませんか?
219:nobodyさん
08/07/04 23:01:37 6INfqE2e
む、と言うかレンタルサーバーのSSHが落ちてるかもしれんです。
220:nobodyさん
08/07/05 01:23:33
ssh落ちるとか怖すぎ
221:nobodyさん
08/07/05 11:47:42
なんでsymfonyってこんなに落ちぶれてんの?
222:nobodyさん
08/07/07 16:59:32
>>221
2日も釣られる人が居なくてあまりにもかわいそうだから、釣られてあげるよ
223:nobodyさん
08/07/07 17:00:39
二日も話題無いなら十分落ちぶれてると思うけどな
224:nobodyさん
08/07/07 20:06:39
話題がないんじゃない!
ネットに情報があふれかえっているから、
こんなところで話す必要がないのだ!
225:nobodyさん
08/07/07 23:17:20
二日レスがないくらいで落ちぶれてるなら、この世に落ちぶれてないWebアプリフレームワークは
存在しないな。
毎日2ちゃんねるへ来てしまう重度の人でなければ、なかなかそういう発想はできない。
226:212
08/07/12 16:05:19
>>213
俺もチラッと読んだことがあっただけだったので、詳しく書けなかった。
日付が去年の一月なので、今でもこのとおりいくかどうかわからんけど、ここ読んでみて。
URLリンク(blog.symfony.jp)
227:nobodyさん
08/07/14 01:54:26
symfony1,1試してみているんだけど、
あいかわらず外人の作るフレームワークは確認画面を考慮してないな。
HTMLQuickFormで例えると$form->freeze()的な処理はどうやったらできるんだろう。
これを解決しないと日本じゃつまずくと思う。
228:nobodyさん
08/07/14 10:24:12
>>227
もう既に何度も話題に上がって解決された話題を、今更穿り返すな。
229:nobodyさん
08/07/14 11:00:59
>>228
少なくともこのスレと前スレを読み返した範囲では、
どこを探しても1.1のフォームフレームワークで確認画面をどう実現するか、
という話題は見当たらないんだが。
前スレ934はフォームヘルパ使っているからcompat_10モードだよな?
「解決された」と言い切れるほど自信があるならポインタくらい示せよ。
230:nobodyさん
08/07/14 11:24:38
誘い受けですね、わかります。
231:nobodyさん
08/07/14 11:32:13 x4hcg1ov
確認画面なぞ、確認画面Success.php作るってだけの話だろ?
HTMLQuickFormを使いたいってんならその画面でHTMLQuickFormを使えばいいだけだと思うんだが・・・
何が不満なんだい?
232:nobodyさん
08/07/14 12:00:50
>>229
なんでこのスレなんか見てるの?その前にまず公式のドキュメント見ればわかるだろ…
あんなにでかでか書いてあるのにポインタ示せとか、盲目すぎ
233:nobodyさん
08/07/14 12:13:15
ゴミクズども口から糞垂れる前に胸に手を当ててバリデーションをしろ
234:nobodyさん
08/07/14 12:44:18
>>227
今ざっとコードを見てみたんだが freeze() にあたる処理を入れる余地はないなこれ
あるタイプの Widget はそれ本来のタイプの HTML 出力をする機能しかないわけだから
sfForm(を extends したユーザフォームクラス)のレベルで
入力画面用の Widget と確認画面用の Widget を切り替えるような仕組みを作る必要があるのかな……?
いま公式ドキュメント読みつつ脱線して fabien が sfForm の MVC 適合を解説してるブログとか読んでるところだけど
手間を省くためにも >>232 がでかでか書いてある箇所の URL を挙げてくれるとありがたい
235:nobodyさん
08/07/14 12:51:42
1.1版The Definitive Guide to symfonyの読み込みが足りてないのは素直に認めるとして、
>>231がsfForm使ってないのに適当に答えてるらしいことはよくわかった。
236:nobodyさん
08/07/14 13:21:01 Bo+zcAFi
FWって初めて使ったんだが、覚えることが多いな
慣れれば便利そうなんだが
他のFWもこんな感じ?
237:nobodyさん
08/07/14 13:27:46
>>>231がsfForm使ってないのに適当に答えてるらしいことはよくわかった。
それ今のお前まんまじゃんw
もっとよく読め。
238:nobodyさん
08/07/14 13:32:55
>>234
Thank You Pageにあたる部分にsetFlashを使ったアクションを一枚噛ませれば良い。
そして最後にgetFlashして登録
239:nobodyさん
08/07/14 14:05:34
>>238
setFlashじゃリロードされた時に消えないか?
240:nobodyさん
08/07/14 15:43:56 x4hcg1ov
>>235
もし、HTMLQuickFormを念頭に置いて文句を言ってるんだとしたら、たぶん、こういう事でないかな?
「HTMLQuickFormとsymfonyではパラダイム自体が違う。」
確か、HTMLQuickFormだと
if (なんたら) {
formの処理
} else {
formのフリーズ
}
フォームの出力
という感じのコードになったと思うが、symfonyだと、そもそも分岐自体をFWが受け持ってしまっている。
ので、ワカランと言ってるのではないか?と思う。
>>236
他のFWも覚える事は多いだろうと思う。
というか、FWは、FWだけ覚えればOKっていうもんじゃなくて、あくまでPHP+FWだからな。
PHPがまともに使える(それこそFW使わんでも同じだけの機能を作れる)ような人が、楽できるように出来てるもんなんだ。
今までPHPを勉強してなくてFWから勉強する・・・は、止めた方がいいだろうな。
(もし、そういうつもりで言ったのでなかったとしたらスマン。)
241:nobodyさん
08/07/14 16:16:59
現場でんなこと言ってられる分けないだろワナビー死ねよかし
242:nobodyさん
08/07/14 16:33:30
いつ現場って出てきたんだよ(;´Д`)
現場の話なら現場の話って最初から言え、っつーか、後だしで条件出してくるんじゃねぇよ。
243:nobodyさん
08/07/14 19:25:18
>>239
リロードされて消えるからいいんじゃん。
消えたら登録せずにエラー出せばよい。
リロードでの連投許可するってなら別だけどね。
ぎゃくにquickformだとhiddenだからバリデーション2回走らせたり効率悪すぎるだろ?
244:nobodyさん
08/07/15 12:18:49
確認画面でリロったら入力値が消えるってどんなクソ仕様だよwww
245:nobodyさん
08/07/15 12:21:34
流れぶった切って質問
symfony1.1 + compat10
動的に個数が変わる
data[0][aaa]
data[0][bbb]
data[1][aaa]
data[1][bbb]
data[2][aaa]
data[2][bbb]
のような、3次元配列のバリデーションはどうやればいい?
validateXXX()メソッドでゴリゴリやるしかない?
246:nobodyさん
08/07/15 14:51:17
>>244
お前ばかか?誰が確認画面で消えるなんて言った?
247:nobodyさん
08/07/15 14:58:39
>>245
sfForm
248:nobodyさん
08/07/15 22:05:00
sfFormってsymfonyのオリジナル?
escapingOutputもパクリ元のRailsにないし
symfonyもまぁまぁがんばってるね
249:nobodyさん
08/07/15 22:41:00
別のスレで違ってたのに今気づいたので
こっちで質問させてください。
symfony1.1をちょっと触ってみようと思いテストしたのですが、
%PEAR_DIR%\phing\Phing.php
内の printVersion() は、 static なのに
%PEAR_DIR%\symfony\plugins\sfPropelPlugin\lib\task\sfPhing.class.php
では、上記 phing/Phing を継承しているにもかかわらず
printVersion() をただの function として定義しているため
symfony propel:build-model などで
Cannot make static method Phing::printVersion() とエラーが出ます。
sfPhing.class.php 内の printVersion() を static にすれば解決はするんですけど、
正しくは、どうすればよいのでしょうか?他の方はエラー出てませんか?
ちょっと気持ち悪いので、どなたか教えてください。
Phingのバージョンは最新だと思っています。 @version $Revision: 1.51 $
250:249
08/07/16 09:13:54
他スレでアドバイス頂いて解決したので一応書いておきます。
通常の pear とsymfony にバンドル版とでソースが違ったようです。
pear のものを uninstall したら動くようになりました。
251:nobodyさん
08/07/16 11:18:16
symfonyで使うのにPropelじゃないO/Rマッパでよさげなのがあるという噂を聞いたのだが、心当たりある人いるかい?
252:nobodyさん
08/07/16 11:20:57
s2だお
253:nobodyさん
08/07/16 11:21:50
Timpopelopeloのこと?
254:nobodyさん
08/07/16 13:14:31
>>251
doctrine じゃなかったっけ?
使ってる人いたら報告希望
255:nobodyさん
08/07/16 14:38:58
>>247
sfFormを使わずにやりたいからCompat10プラグインなんだ。
256:nobodyさん
08/07/16 19:22:49
Doctrine使ってるよ。
クラス定数を書かなくていいので楽だよ。
でも、使おうと思ったらどんなORMでも使えるよね。
257:nobodyさん
08/07/16 20:01:51
俺もTimpocorine使ってる
258:nobodyさん
08/07/17 01:53:41 r8Tb5l59
FWを覚えるのて長く使えないから、無駄だよな
C++,C#覚えてた方が無駄じゃないよな
259:nobodyさん
08/07/17 09:27:50 r8Tb5l59
おまいらがsymfonyを習得できた頃には
また新しい超人気のFWが登場するだろうw
短期で習得しないと回収できないよ、この業界はね
260:nobodyさん
08/07/17 10:55:21
C++というか、Cを勉強しておくのは役に立つぞ。
symfonyを勉強しておくのもCを勉強おくのと同じくらい役に立つが
とりあえずCを勉強しておけ。
261:nobodyさん
08/07/17 13:50:12
PHP
C++
C#
C
そして、いよいよsymfonyの出番だ!
おかしくね?
262:nobodyさん
08/07/17 19:13:50 6/yjc+oz
逆だよ、逆。
Cってのはどっちかというと、コンピュータ(ハード側)に則した言語なんだ。
考え方が異質だけと単純。
それに対して、PHPとかsymfonyになってくると人間側の「もっと簡単に、省ける事は空気読んで省けいて書けた方がいいよね」になってくるんだよ。
その為、見た目は簡単だけど、複雑になってる訳。
単純な方から複雑な方へ勉強していった方が理解が早い・・・はずだと思うんだ。
263:nobodyさん
08/07/17 22:47:02
C++なんか覚えるなよ…
あんな欠陥言語は早いとこ絶滅させないと
264:nobodyさん
08/07/17 23:47:00
Cなんてとうの昔に忘れました
265:nobodyさん
08/07/18 10:09:26
>>263
なぜ、そう考えるのかは分かるんだが・・・
もし、C++を理解しながら、ありゃダメだって思ってるんなら、一度boost::spiritとかいじってみるといいかもよ?
言語というより、パズルとして楽しめるw
266:nobodyさん
08/07/18 20:46:09
テンプレートが出てきたところからC++はカオス化してしまったな。
auto_ptrとその仲間の機能をすべて答えなさい。
とかやったら輪ロスすぎるww
267:nobodyさん
08/07/18 22:11:51
PHPなら仕事ないな。C++ならまだ仕事はある。
268:nobodyさん
08/07/25 12:10:11
sfWidgetFormSelectRadioなんですが、
選択項目をタグ単位では取り出せない仕様なんですか?
ラジオボタンによくある
◎個人
苗字[ ]名前[ ]
◎法人
法人名[ ]
担当者名[ ]
みたいなものを実装したいのです。
個人/法人区分じたいもDBに保存したいので、
フォームクラスとは別に生成するわけにも行きませんし……
横並びと縦並びになる場合は自作のformatter()関数を作って対処したのですが、
これもデフォルトではulタグ前提になっていて、なんか不便ですよね。
269:age
08/07/28 21:14:47 L1kOSCp5
sfWidgetFormSelectRadioのcheckedと
sfWidgetFormSelectのselectedの指定って
どうやってやるんですか?
ググっても見つからないんで1.1使ってる人教えてください
270:nobodyさん
08/07/29 13:28:16
>>269
アクションクラスで
$this->form->setDefault('name', 'value');
したら自動で入らない?
フォームクラスでsetDefaults([連想配列A])して
アクションクラスでもsetDefaults([連想配列B])していたら、
Bだけが有効になるっていうハマりがあったな。
sfFormの定義を見たら、
setDefault()は$nameと同じ要素だけ上書きしているが、
setDefaults()だとマージしないで配列ごと上書きしていた。
自前でgetDefaults()してからarray_merge()するか、
setDefault()使っとくか。
271:age
08/07/29 17:50:14
>>270
できました、ありがとうございます。
もう一つ質問させてください。
1.0での
<?php echo select_tag('hoge', options_for_select(array('a', 'b', 'c'), null, array('include_custom' => '選択してください'))) ?>
みたいな選択する配列ではない文字(ここでは選択してください)
をデフォルトで表示するにはどうやって設定するのですか?
272:nobodyさん
08/07/29 19:15:55
>>271
sfWidgetFormSelectを追いかけてみたけど、
include_customに相当する機能はないね。
array(''=>'選択してください')を連結しとくしかないんじゃ?
273:age
08/07/31 09:43:53
>>272
ありがとうございます。
やっぱりできないんですね、仕方ないので言われた通り連結しときました。
FormやMailに関しての参考が少ないのもあるんですけど1.1になって
使い勝手が悪くなったと思うのは俺だけですかね
274:nobodyさん
08/07/31 14:58:57
OOPのデメリットだろうね。
保守性はあがるけど、開発効率はさがる。
とくに一人とか少人数でやってる場合。
一人でやってるなら無理にsfForm使わなくて独自orQuickFormとかを使ったほうが
効率はいいんじゃないかな。
275:nobodyさん
08/07/31 15:45:33
>>274
それもフォームの形式や頻出度合いによる
276:nobodyさん
08/07/31 16:41:47
sfFormってモデルとかならず結びついてんの?
テラ糞フォームwww
277:nobodyさん
08/07/31 17:06:00
>>276
何railsと勘違いしてんの?
頭悪いにもほどがあるだろ…
278:nobodyさん
08/07/31 18:44:32
>>275
DBの構造とフォームの内容が一致している場合の
手間の少なさは特筆物だけど、
欄Aに入力があったら欄Bを格納、無しなら欄Cを格納、
のように場合わけの必要があると、
とたんに自作ValidatorSchema作らされたりして難しくなるよな。
279:nobodyさん
08/07/31 19:23:28
>>278
sfFormの構造理解してなくねぇ?
280:nobodyさん
08/07/31 19:28:10
汎用性の無い例外的な処理なら、わざわざValidatorSchemaつくらんでも、
Formクラス内に実装しちゃえばいい。
QuickFormなんか使うよりはよっぽど楽。
DBの構造とフォームの内容が一致は大して関係ない。
どちらかというと、フォーム同士の組み合わせが複雑に絡み合うエンタープライズ分野向きだわな。
281:nobodyさん
08/07/31 19:30:23
ActiveRecordとAdminGeneratorとsfForm混同してごっちゃになっちゃったんだねきっと
282:nobodyさん
08/07/31 19:40:00
propel:build-forms=sfFormだと思ってるんだろ
283:nobodyさん
08/07/31 19:44:40
>>279
たしかに理解できてないのかもしらんが、
[×]←チェックボックスA
[ ]←チェックボックスB
「 」←テキストボックスB
[ ]←チェックボックスC
「 」←テキストボックスC
たとえばこんな状況で、
・AがチェックされてなければBやCの状態は問わない
・AがチェックされていたらBまたはCのいずれか一方に少なくともチェックが必要
・BおよびCにチェックが入っている場合のみ、対応するテキストボックスの中身を評価する
こんな記述をしようとしたら、
入力値評価用のバリデータ自作した上で、
ポストバリデータがsfValidatorAndとsfValidatorOrでスパゲッティになるんだが、
漏れが気が付いてないだけで、もっと上手いやり方があるのかい?
284:nobodyさん
08/07/31 19:46:04
>>283
具体的にQuickFormでのコード書いてくれない?
おれsfFormで書くから
285:283
08/07/31 19:46:41
×・BおよびCにチェックが入っている場合のみ、対応するテキストボックスの中身を評価する
○・B and/or Cにチェックが入っている場合のみ、おのおの対応するテキストボックスの中身を評価する
286:283
08/07/31 19:50:06
>>284
>>274に頼んでくれ。
少なくとも漏れはHTML_QuickFormには戻りたくないよ。
287:nobodyさん
08/07/31 19:54:38
>>286
なるほど。じゃぁどう作ってる?Helper駆使?
288:nobodyさん
08/07/31 20:00:59
>>283
>入力値評価用のバリデータ自作した上で、
要はバリデータスキーマクラスが1個増えるってことだよね?
条件上ごちゃごちゃするのはしょうがないが、バリデータ増やさなくても
isValidやbindオーバーライドしてそこに書いてやれば良くない?
289:283
08/07/31 20:04:41
>>288
sfValidatorSchemaCompareをパクって、
フィールドとオペレータと値を引数に取るバリデータクラスmyValidatorSchemaIfを作って、
$this->validatorSchema->setPostValidator(new sfValidatorAnd(array(
$this->validatorSchema->getPostValidator(), // 親クラスのポストバリデータも動くようにするためにAnd
new sfValidatorSchemaCompare('email', sfValidatorSchemaCompare::EQUAL, 'email_confirm',
array(),array('invalid' => 'メールアドレスが一致しません。')
),
new sfValidatorOr(array(
new sfValidatorAnd(array(
new myValidatorSchemaIf('A', myValidatorSchemaIf::EQUAL, 'on', // チェックされている
array(),array('invalid' => ' ')
),
new sfValidatorOr(array(
new myValidatorSchemaIf('B', myValidatorSchemaIf::NOT_EQUAL, '', // チェックされていない
array(),array('invalid' => ' ')
),
new myValidatorSchemaIf('C', myValidatorSchemaIf::NOT_EQUAL, '', // チェックされていない
array(),array('invalid' => ' ')
),
)),
)),
new myValidatorSchemaIf('A', myValidatorSchemaIf::EQUAL, '', // チェックされていない
array(),
array('invalid' => '少なくとも1つをチェックしてください。')
),
)),
)));
テキストボックスの処理が入ってない状態でこうなっちゃうんだけど。
290:nobodyさん
08/07/31 21:03:55
テキストボックス無い状態なら、こんな感じじゃない?
public function isValid()
{
$r = sfContext::getInstance()->getRequest();
$nf = $this->getWidgetSchema()->getNameFormat();
if($r->getParameter(sprintf($nf, 'A')))
{
if(!$r->getParameter(sprintf($nf, 'B')) and !$r->getParameter(sprintf($nf, 'C')))
{
$r->setError(sprintf($nf, 'A'), "AがチェックされたらBかCもしくは両方をチェックしてください");
$this->isBound = false;
}
}
return parent::isValid();
}
291:nobodyさん
08/07/31 21:43:21
$r->setErrorのとこは
$this->getErrorSchema()->addError(
new sfValidatorError(
new sfValidatorPass(),"AがチェックされたらBかCもしくは両方をチェックしてください"
)
, 'A');
こっちにするべきか
292:nobodyさん
08/07/31 22:13:12
$r->getParameter()のところは$this->getValue()で取れるわ
293:nobodyさん
08/07/31 23:01:29
>>290-292
ありがとうございます。
比べて見たら漏れって馬鹿だなってまるわかりだね。
でも4章までしかないフォームガイドじゃさっぱりわからないことだらけで。
294:nobodyさん
08/07/31 23:12:36
>>293
sfFormのパブリックメソッドを見渡して、どんな動作するか予測したり試してみたりすると良いよ。
295:nobodyさん
08/08/01 00:11:12
>>277
言い訳乙ww
296:nobodyさん
08/08/01 02:48:41
ここまでの流れで随分分かりやすく解説されたのに、
言い訳だと思える>>295の知能に同情
297:283=293
08/08/01 11:00:00
残念、その通りやってみたのですが、
エラーが上手く設定できていません。
parent::isValid()の位置を変えてみたりしたのですが、
通常のバリデータが通過したときだけオーバーライドした内容が評価されているようです。
URLリンク(groups.google.co.jp)
ここを読むと似たような罠にはまっていて、
返事に
「(カスタムバリデータ強制してるのは)再利用性とユニットテストしやすさのためだよ」
と書かれた後にFabienが「限定用途ならバリデータ作らないでsfValidatorCallback使えるよ」
とか書いてるんですが……
やっぱりポストバリデータで書くのが1.1流なんでしょうか。
298:nobodyさん
08/08/01 11:23:31
sfFormって便利なの?
299:nobodyさん
08/08/01 13:01:18
>>297
それは無い。動作検証してるし。
逆にsfValidatorCallbackでやると、$this->getValueで値がとれないから無理。
ちょっとコード晒してみなよ。
300:283
08/08/01 13:56:08
293のフォームとは違うのですが
public function isValid()
{
$result = parent::isValid();
print_r($this->getValue('a'));
if($this->getValue('a') == '2') // Aが2かどうか
{
if($this->getValue('b') === '')
{
$this->getErrorSchema()->addError(
new sfValidatorError(new sfValidatorPass(), "bが空欄です。"),'b');
$this->isBound = false;
}
}
else
{
if($this->getValue('c') === '' || $this->getValue('d') === '')
{
$this->getErrorSchema()->addError(
new sfValidatorError(new sfValidatorPass(), "cまたはdが空欄です。"),'c');
$this->isBound = false;
}
if($this->getValue('e') === '' || $this->getValue('f') === '')
{
$this->getErrorSchema()->addError(
new sfValidatorError(new sfValidatorPass(), "eまたはfが空欄です。"),'f');
$this->isBound = false;
}
}
return $result & (0 == count($this->errorSchema));
}
301:283
08/08/01 13:56:54
print_r()している箇所で、
parent::isValid()がtrueの場合でないと、
$this->getValue()の値が取得できていないようです。
302:283
08/08/01 14:14:21
sfForm::bind()を読むと、
$this->validatorSchema->clean()でsfValidatorErrorSchema例外が起きたら
$this->values = array()されちゃってますね。
bind()にセッション変数に格納した値を渡すような場合もある以上、
getParameter()を使うのも問題があるので、このやり方は使えないようです。
303:nobodyさん
08/08/01 14:38:20
>>301
ていうか、configureでの設定間違えてる。
ソース全体晒すか、sfFormのソースよく読みなおしてごらん。
304:283
08/08/01 14:56:54
>>303
configure()ですか?
propel:generate-crudしたものに
・widgetの追加
・validatorの追加
・setPostValidator()
・setDefaults()
してるくらいです。
先に上げたポストバリデータ方式だと、
動作自体は期待通り動いているので、
バリデータの記述に問題があるとも考えにくいのですが……
305:nobodyさん
08/08/01 15:17:28
まず290-292のコードは動いたの?
>293のフォームとは違うのですが
とか勝手にフォーム変えて、動かないコードの一部を晒されて、
他人が理解できると思ってるの?
306:283
08/08/01 16:00:11
>>305
なるべく忠実にやってから上手く動かないので、
他のフォームで試行錯誤していたっていう流れだったのですが、
確かにわかりにくかったとは思います。
しかし挙動は同じです。
public function isValid()
{
print_r($this->getValue('A'));
if($this->getValue('A'))
{
if(!$this->getValue('B') and !$this->getValue('C'))
{
$this->getErrorSchema()->addError(
new sfValidatorError(
new sfValidatorPass(),"AがチェックされたらBかCもしくは両方をチェックしてください"
)
, 'A');
$this->isBound = false;
}
}
return parent::isValid;
}
307:nobodyさん
08/08/01 16:42:35
bind()の時点でバリデーションは終わってるのだから、
isValid()はバリデーション結果を返すだけの役目のはず。
isValid()に書くのはお門違いちゃう?
308:nobodyさん
08/08/01 16:51:42
$this->getValue('A')
('A')が顔に見えるww
309:nobodyさん
08/08/04 12:56:39
ああ…そうだな…
310:nobodyさん
08/08/04 14:55:45
コマンド:
symfony generate:module frontend hoge
再生されるモジュール:
modules/hoge/actions/actions.class
URL:
URLリンク(example.com)
URLリンク(example.com)
みたいな下の階層のURLに対するアクションに対応するにはどうすればいいですか?
symfony generate:module frontend hoge/poge
は駄目でした・・・
311:nobodyさん
08/08/04 15:12:27
routing.ymlでしこしこしろってことかな
312:nobodyさん
08/08/04 16:13:19
routingいじってもできるだろうけど、
もっと原始的に、
symfony generate:module frontend poge
にして
DOCUMENT_ROOT/hoge/
掘ってindex.php置いて相対位置書き換えるんじゃだめなん?
313:nobodyさん
08/08/04 16:17:03
なるほど、そういう手もあるか。
railsだと、generate controller hoge/poge
みたいにやると、ちゃんと階層化されたコントローラ(モジュール)ができるんだけど
フランチョス的には階層深くするなってことなのかな。
それならそれでフランチョスの意志に従っても良い気がしてきた。
314:nobodyさん
08/08/04 19:43:39
routing.ymlに
mobulea:
url: /modulea/:param1/*
param: { module: modulea, action: index }
moduleb:
url: /moduleb/:param1/*
param: { module: modulea, action: index }
と記述すると、modulebのルーティングルールが呼ばれないんだけど、
どうしたらいいんでしょう?moduleaは呼び出されます。
ちなみに、上の二つを消し、以下のように書き換えると
そのルールすら呼び出されません。
hogemodule:
url: /:module/:param1/*
params: { action: index }
使ってるsymfonyのバージョンは1.0.16です。
ルールの呼ばれる、呼ばれないはdevの画面右上のlogs & msgsで確認してます。
315:314
08/08/04 20:31:46
ごめんなさい。できました
ただのyamlの記述ミスでした。
吊ってくる
316:nobodyさん
08/08/05 09:27:37
1.1ではswiftMailerを使うようだけどここの記事
URLリンク(www.thinkit.co.jp)
を見たらISO-2022-JPが上手く動作しないらしいんだけど
他の人はどうしてるんですか?UTF-8を使うんですか?
317:nobodyさん
08/08/07 17:00:25
気づいたら symfony-1.1.1 出てるなあ
318:nobodyさん
08/08/10 03:35:56 zn9kEIVJ
1.0系たけど
各Loggerじゃなくて
それらに指令を出すトップレベルのsfLogger自体をオーバーライドしたい時は
どう書けばいい?
319:nobodyさん
08/08/10 03:43:09
sfLoggingConfigHandlerで
$data .= "\n\$logger = sfLogger::getInstance();\n";
とハードコーディングしてた・・
ほんと使えないフランチョスだな
320:nobodyさん
08/08/10 04:21:55
1.1ではsfAggregateLoggerになってるのか
そりゃそうだよな
何か変な実装だもん
321:nobodyさん
08/08/11 21:00:04
>>273
compat10を有効にしてフォームウィジェットを使わなければいい
322:nobodyさん
08/08/11 22:25:50 jwJ3rV7r
1.1でpropel:init-adminしたんだけど、一覧から編集用画面へのリンクのコントローラ名が消えてる。
具体的にいうと、
URLリンク(localhost)
ってなってほしいところが
URLリンク(localhost)
って生成されてる。開発用コントローラからは
URLリンク(localhost)
って生成されてるところを見ると、本番用コントローラでなんか設定を忘れてるのかな?
ちなみに、
URLリンク(localhost)
を直接入力したらちゃんと呼び出せたので、propel:init-admin自体は多分成功してる。
cache:clearも実行したけど変化なし。
ちなみにWindows XP+XAMPPで実行中。
何が足りないのかな?
323:322
08/08/12 13:06:13
>>322
自己解決。settings.ymlのno_script_nameがonになってた。申し訳ない……。
でもこれ、何個アプリケーション作ろうともデフォルトはonなのな。
324:nobodyさん
08/08/13 14:28:50 ccVg322Y
The defenitive Guide to symfony
ってマンモス本より役に立つ?
325:nobodyさん
08/08/13 18:51:17
form_remote_tagでは、引数の配列のurlに?〜でパラメータを入れて、
remote_functionでは、引数の配列のwithにパラメータを入れるっていうのが
紛らわしいというか奇妙というか
1.0の話だけど
326:nobodyさん
08/08/13 23:47:37
パラメータをurlエンコードして
/module/action/word/%E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%89
って感じにしたパスをlink_toに渡してリンクを作っていたんだが
link_toがエンコード文字部分を勝手に書き換えてたせいで変なバグに悩まされた ('A`)
327:nobodyさん
08/08/14 18:22:05
URLリンク(symfony.xrea.jp)
を参考にアップロード処理作ったんだけど、
ローカルでxampp上だとうまく動くのに
サーバー上だとアップロードできない。
$file->isSaved()
もtrue返すのに、、。
アップロードフォルダーのパーミッションも大丈夫だと思うし、
それ以外に気をつける点ってあればどなたかご指摘下さい。
てか、isSaved() が true 返してるが気に入らない。なんで?
328:nobodyさん
08/08/15 01:40:17 YW2vuQsP
Internal Server Error画面を独自のものにするには
どうしたらいいですか?
329:nobodyさん
08/08/15 23:29:09
マンモスSymfony本を見て、実際に手を動かし始めたところですが、以下の二点で詰まってしまいました。
アドバイスを頂ければ幸いです。
(1)バリデータのエラーメッセージをデフォルトで日本語化することはできないのでしょうか?
(2)メッセージの一部パラメータ化(例:「$a1は$a2文字から$a3文字までの長さで入力してください」)って出来ないのでしょうか?
アクションごとにバリデータのメッセージを設定する方法は検索できました
(URLリンク(develop.ddo.jp)の「名前をつけたバリデーター」以下の方法で、日本語を設定していけばいいんですよね?)
が、これをアクションごとに記述していくのはやはり手間です。他に方法はないのでしょうか?
330:nobodyさん
08/08/16 16:52:57 z7m75dUv
propelで、SQLの確認の仕方おしえてください
331:nobodyさん
08/08/16 21:05:40
dev
332:329
08/08/17 16:02:07 IR0jQIbG
>>329
自己res。今のSymfony1.1では、>>329のやり方って古かったんですね。
今のsfFormなら、少なくとも(2)は出来る事がわかりました。ただし(1)(デフォルトでの日本語化)はまだ方法がわかりません。
まぁ、各バリデータのconfigureだけをオーバーライドしたクラスを作ってしまえばいいのかもしれませんが、なんとなくスマートではない気がしますし、メッセージを管理する場所がバラけてしまうのも少々厄介です。
何か他にいい方法はないでしょうか?
333:nobodyさん
08/08/18 13:56:03
Propel:getConnection()->getLastExecutedQuery();
だったっけ
334:nobodyさん
08/08/18 16:19:58 jvpRje/g
>>332
sfFormを継承して、configureの後にValidatorSchemaを全部ナメてってsetMessageしてやれば何とかなりそうだけど・・・
これってやっぱ車輪の再発明?
335:327
08/08/18 17:12:57
327の自己レス
サーバーとローカルの構成を変えていたのが原因で、
違う場所に保存されていました。(^^;
336:nobodyさん
08/08/18 17:25:52
場違いな疑問なんだが、なんで例えが車輪になったんだ。
よくあるものならなんでも良かったってことか?電球とかオナホールとか
337:nobodyさん
08/08/18 19:35:03
この後、「車輪の再発明」の語源スレになります。
338:334
08/08/18 22:24:47 jvpRje/g
>>334
いちおー出来たっぽいが、誰か見てみる?
Symfonyいじり始めて一週間&実質20行のコードだから、あまり過度な期待はしてもらっても困るけど。
でもこの程度のこと、絶対誰かやってると思うんだけどね。
339:nobodyさん
08/08/19 19:33:45
洋梨のようです
340:nobodyさん
08/08/19 20:41:23 8DZ4PLH3
getメソッドで、
form_tagを使った時の遷移先に
?key=valueじゃなく
ルーティングルールを適用させる方法ってある?
341:334
08/08/19 20:58:45
>>339
だね。やっぱこの程度のこと、もう誰かor本家がやってるか。
342:nobodyさん
08/08/20 23:33:43 LuQqZLWt
sfPropelOptimisticLockBehaviorPluginって、誰か使ってるヒトいる?
楽観的ロックって、自分で実装すると結構めんどくさいんだよね。
特に汎用にしようとすると。
343:nobodyさん
08/08/22 11:58:57 Vc/mgEWX
確認画面、プラグインで実装した人がいるね
URLリンク(www.open-force.info)
公開してまだ一週間だから、信頼性についてはまぁそれなりにってトコだろうけど。
でも、「日本独特の文化ですよね」って断言されるほど、海の向こうじゃマイナーな機能なのか?
344:nobodyさん
08/08/22 21:23:08 fOZ3YS9P
Cannot redeclare get_callbacks()ってどうすりゃいいんだ?
use_helper('javascript')が複数あるとこれになるみたいなんだが、
helperが使われてるか確認する方法ってある?
345:344
08/08/22 21:30:22 fOZ3YS9P
ごめん、早とちりだった。
use_helper('javascript')
と
use_helper('Javascript')
がごっちゃになってたからエラーになってたみたいだ
346:nobodyさん
08/08/23 17:28:28
>>343
海外のサイトのユーザ登録をいくつかこなしてみればわかる
347:nobodyさん
08/08/23 17:56:23
1.1使ってみた
1.0より洗練されててよいね〜
348:nobodyさん
08/08/23 21:11:42
デフィニシブガイドって1.0ベースでしょ?
1.1とだいぶ違うから買っても使えなそう
フランチョステラ詐欺師www
349:nobodyさん
08/08/24 02:03:12
>>348
またおまえかよwww
350:nobodyさん
08/08/24 04:22:57
1.1ってdefaultって名前のモジュール作らない方がいいの?
351:nobodyさん
08/08/24 04:49:49
>>348
ネットでタダで読めるだろ
352:nobodyさん
08/08/24 05:21:15
sfForm、作りかけてた俺俺Formにそっくりだ
俺とフランチョステラエスパー
353:343
08/08/25 11:14:01
>>346
ふむ、今まであまり気にしてなかったが、言われてみればあまり見た記憶がないな
>海外サイトのユーザー登録での確認画面
外人ってせっかちなのか、それとも画面以外(ex.メールとか)での確認の方を重視してるのか……
まぁ、これ以上はスレ違いか。
354:nobodyさん
08/08/25 16:51:30
わざわざ静的ページつくらんでもフォームの時確認すりゃいいだけだし
355:nobodyさん
08/08/26 01:37:54
URLリンク(codezine.jp)
上記URLを参考にsymfonyを始めたんですが、
URLリンク(codezine.jp)
でURLリンク(localhost)にアクセスしても『お名前をどうぞ。』しか表示されません。
ヘルパーが実行されていないようなのですが、何かここがおかしいんじゃないかみたいなのあったら教えて頂けないでしょうか。
環境はvista apache2.2.6 php5.2.4です。
よろしくお願いします。。
356:nobodyさん
08/08/26 09:25:21
>>355
日付を見ると、その記事は間違いなく1.0を対象にした記事。
1.1だと、「use_helper('form')」って書かないとヘルパーは動かない。
1.1だとヘルパー使わずフォームを使うのがフランチョスのお勧め。
sfCompat10を有効にすれば大丈夫だっけ?>ヘルパー
357:356
08/08/26 11:04:31
おっと、フォームってのはもちろんsfFormのことね。
詳細は>>3の一番上のリンクの少し下のほう、「symfony Forms in Action」を参照。
358:nobodyさん
08/08/26 15:28:55 C/n8oxtA
スロークエリのログ上のプライオリティーって
CRIT/ERR/WARNINGのどれ?
エラーじゃねーし
WARNINGだと弱すぎ、CRITだと強すぎな感じで悩む
359:nobodyさん
08/08/27 14:04:25
>>343
リンク先の公式ページで
「何に使うプラグインなんだかワカンネ」
ってコメント付いてるぞwww
2ヶ月くらい前にも確認画面の話題でもめてたよなこのスレ。
360:nobodyさん
08/08/27 16:47:51
もう確認画面なんて無駄なもんつくるのやめようぜチョッパリ
361:nobodyさん
08/08/27 16:56:19
確認画面なんていう文化が育ったのは、
日本語の中で文字コードが乱立した結果、
確認せずにPOSTすると化けに気が付かないからだろうな。
外人はそんな心配要らないのだから。
日本人の(過度な)慎重さも要因かもしれん。
362:nobodyさん
08/08/27 17:00:03
日本人はちょっとでもミスがあるとダメだっていう風習だからな。
アメとかは「ミスがあるのはしょうがない。大事なのははその対応」ってかんじだから。
363:nobodyさん
08/08/27 17:03:46
つーか送信時にアラート出して確認させりゃいいだけだよな。
admin generatorの削除時のやつと同じように。
364:nobodyさん
08/08/27 17:42:29
>>363
Javascript使える環境しか相手に仕事されてない方ですね、わかります。
365:nobodyさん
08/08/27 19:45:36
別にjs使えないならフォームもう一回表示させれば良いだけだよな。
静的ページにする必要はまったく無い
366:nobodyさん
08/08/27 19:59:54
携帯は固体識別でアラートの役割できるし。
しかし未だにjs無しの環境で仕事してるやつ居るんだな…
アマゾンの奥地で謎の未開原住民を見た気分だ
367:nobodyさん
08/08/27 20:58:04
動かすのが実際にはIE7でも、
レアケース対応で要求仕様に入ってる事は結構あるんじゃないか?
368:nobodyさん
08/08/28 00:54:20
JS使えない環境に対応するのは、ネスケ4.7に対応するようなもんだな。
369:nobodyさん
08/08/29 00:26:17
jsなしの場合はアクセス不可って処理で無問題
370:nobodyさん
08/08/29 02:54:24 BLGUiryP
コントローラとモデルの中間くらいの、
モジュールをまたがって共通性のある処理ってどこに書く?
一つのモジュール内だけだったら、
actionsに非publicなメソッドを書けばいいけど。
Rubyのmixinがあれば・・・
371:nobodyさん
08/08/29 03:29:13
sfMixinはactionの中から自分にmixinさせることはできなそうだし
共通した祖先クラス書いて継承させるくらいか・・
あんまりキレイな方法じゃないが
372:nobodyさん
08/08/31 09:30:46
actionsのファイル名が全部actions.class.phpなのが
ide使ってると分かりにくいな
hogeActions.class.phpにしたい
373:nobodyさん
08/08/31 18:39:31
>>372
できるよ。
hogeAction.class.php
Actionと単数形になる。
374:nobodyさん
08/09/01 05:33:37
>>370
モジュールフィルタ
375:nobodyさん
08/09/01 20:50:10
いつの間にか$_REQUESTが使えるようになってる
前はわざわざクリアしてたような・・
376:nobodyさん
08/09/02 04:15:47
sfRequest::POSTとかもう使わないようになったの?
$request->isMethod(sfRequest::POST)
とかやっててバグになってた('A`)
377:nobodyさん
08/09/02 16:50:39
モデルはcodeigniterマネして自作して
フォームまわりも自作ライブラリ使って、
mvcの骨格だけsymfony使ってる状態になった
骨格のためだけにsymfonyというフルスタックフレームワーク使うのは
コストが高い気もするけど
symfonyの一番素性がいい部分は、mvcまわりなんだよな
378:nobodyさん
08/09/02 21:17:55 XzTndE53
symfonyってrails真似てるんだっけ?
だったら機能を理解するためにrailsに手出そうかと思うんだがどうだろう
379:nobodyさん
08/09/02 21:32:33
railsよりいけてるとこもあるよ
actionにexecuteというプリフィックス付けるとことか。
railsは何のプリフィックスも付けないというあり得なさ。
380:nobodyさん
08/09/05 10:42:02
>>377
それって実はmojavi
381:nobodyさん
08/09/05 15:37:50
MVC部分だけでもmovajiより洗練されてるでしょ
382:nobodyさん
08/09/06 11:53:09
formクラスってデフォじゃlib/formの下に置くようだけど
ここってautoload対象だよね。
formクラスの大半ってmoduleに依存してるから
modules/モジュール名/form/の下にformクラスを
置いちゃおうとおもんだけど別にいいかな?
modules/モジュール名/ってactionsとtemplates以外のフォルダを作って
いいのかどうかもよくわかってないんですが。
383:nobodyさん
08/09/08 12:34:12
url_forやredirectにわたす引数で常にモジュール指定しないといけないのはつらい。
"index"
とだけ渡したら今のモジュールのindexアクションを呼ぶようにするには
自前で作るしかないのかな。
384:nobodyさん
08/09/08 12:37:04
あとクエリー文字列に/(URLエンコード済み)を入れると
not foundになっちゃうのは仕様なんかな。
hoge/index <-- 存在するアクション
hoge/index/q1/123 <-- q1 = 123のクエリーパラメータ付き。OK
hoge/index/q1/aaa%2Fbbb <-- q1 = aaa/bbbのクエリーパラメータ付き。NG
385:nobodyさん
08/09/08 12:50:41
ルーティングファイルで定義して@hogeとかで指定すればでできるんじゃないのと勉強中の俺が言ってみる
386:nobodyさん
08/09/09 11:19:31
>>385は意味が違ったな
ルーティングファイルでルール設定しても省略できない?
モジュールが複数あるとめんどそうだが
387:nobodyさん
08/09/09 11:51:26
モジュール複数あり。
てかrailsだとアクション名だけ指定したらモジュールはカレントなんだよね。
なんでそうなってないんだろう。
アクションで$this->getModuleName()で取れるから
自分でsfActionsに関数追加して対応した。
388:nobodyさん
08/09/10 15:45:40
1.0使ってるんだが、
たまにinput_hidden_tagで、タグが出力されないことがあるんだが、
なんなのこれ?いまいち条件がわからない
389:nobodyさん
08/09/11 07:35:56
>>388
そんなのお前だけだから安心していいよ
390:nobodyさん
08/09/11 07:53:29
>>388
echoの書き忘れ
391:388
08/09/11 14:46:59
$params = $sf_params->getParameterHolder()->getAll();
foreach($params as $key => $param){
echo input_hidden_tag($key, $param);
}
こんな感じで書いてて一部の要素が出ないときがあるんだ、
もちろん$paramsにはその要素入ってるからな
392:nobodyさん
08/09/15 23:59:25
symfony X PHP の本を買って勉強しているのですが、
p70のsymfony propel-generate-crud bbs bbsdata bbsData
を流すと以下のエラーがでます。
PHP Fatal error: Class 'bbsDataForm' not found in D:\php\PEAR\symfony\generator
\sfAdminGenerator.class.php on line 722
解らないなりにbbsDataFormクラスを作って見たりしたんですが、改善されません。
何が解決のヒントを教えていただけないでしょうか。。
というか、symfony1.1.1を使ってる事もまずいのであろうと勝手に予想するのですが、1.1.0ならエラーでなかったりしますでしょうか。。
環境はPHP5.2.4 apache2.2.6 symfony1.1.1 windowsです。
よろしくお願いします。
393:nobodyさん
08/09/16 00:12:29
./symfony propel:build-forms
あと、1.0と1.1はだいぶ変わったので気をつけたほうがいいです。
394:nobodyさん
08/09/16 00:21:25
>>393
レスどうもです。
それを流した後に
symfony propel-generate-crud bbs bbsdata bbsData
をやってみたのですが同じエラーになります。
ちなみに>>393さんのコマンド流した結果は以下のみです。。
>> propel generating form classes
395:nobodyさん
08/09/16 00:23:03
symfony X PHPの本てなに?
そんなタイトルの本あったっけ?
396:nobodyさん
08/09/16 00:32:35
>>395
これです。
URLリンク(www.gihyo.co.jp)
397:nobodyさん
08/09/16 00:40:12 NpaR+YH4
symfony cc した?
398:nobodyさん
08/09/16 00:59:40
>>397
してみました。
ちなみに色々調べて見たのですがどうも
symfony propel-build-allのinsert-sqlでテーブルの作成?に失敗してるくさいです。
propel-generate-crud 以前の問題のようです。すみません。
OSがvistaなので管理者権限でpropel-build-allをやって見たのですがやはりnsert-sqlで失敗します。
設定ファイル再度見直して見ます。。すみません。。
399:392
08/09/16 01:21:15
insert-sqlの失敗の件ですが、PDOが使えなかったのが原因でした。。
で、テーブルの作成にも成功したのですが、
symfony propel-generate-crud bbs bbsdata bbsData
で、同様のエラーになります。
symfony propel:build-formsも同様です。。
明日頑張って見て駄目なら1.1.0でやって見ます。
回答頂いた皆さんありがとうございました・・・。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4816日前に更新/217 KB
担当:undef