フランチョスとsymfon ..
[2ch|▼Menu]
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でやって見ます。
回答頂いた皆さんありがとうございました・・・。

400:nobodyさん
08/09/16 16:21:18
テストや開発なら、Virtual PCでCentOSぢゃね?
VMWareに比べて遅いけど面倒が無いし。

401:nobodyさん
08/09/17 17:39:14
もう1.0って落とせないの?
# pear install symfony/symfony-1.0.17
Attempting to discover channel "symfony"...
unknown channel "symfony" in "symfony/symfony-1.0.17"
invalid package name/package file "symfony/symfony-1.0.17"
Cannot initialize 'symfony/symfony-1.0.17', invalid or missing package file
Package "symfony/symfony-1.0.17" is not valid
install failed

402:nobodyさん
08/09/17 17:44:07
すいません自己解決しました
チャンネルを追加してませんでした
スマソ

403:nobodyさん
08/09/19 19:52:42 WjV+U7OQ
1.1では、requestのアップロードファイル関係のメソッドが
軒並みcompat10になってるんだけど
1.1ではファイル関係どうしたらいいの?

404:nobodyさん
08/09/19 20:03:40
grepで探してもsfWebRequestの中にしか$_FILESがないんだけど・・
もうファイル関係は自分でやれってこと?

405:nobodyさん
08/09/19 22:29:03
$request->getFiles('contact')

406:nobodyさん
08/09/19 22:48:21
>>403
sfFormにbindすればいいだけだろ。
わからないなら自分でやれ

407:nobodyさん
08/09/20 03:55:30
formでやるようになったのか
dd

408:nobodyさん
08/09/20 18:26:49 ZSi/YVuR
創価学会にはストーカーマニュアルがあってうろつきや盗聴方法について細かく指示されている
うろつきについては「子供が襲われないように地域の安全のためにパトロールしましょう」だそうだwww
盗聴については「たまたま自分の家が盗聴されてないかどうか調べてたら声が聞こえてきて
子供の安全のためにこれからはこれを利用してみんなで盗聴しましょう」だそうだwww
この言い訳使ってたらまず創価学会に間違いないし他の言い訳使ってんなら創価学会じゃない可能性が高い

熊本隆談www

409:nobodyさん
08/09/21 02:54:17
面白そうだから僕も創価学会に入る!

410:nobodyさん
08/09/23 17:38:17
∧_∧
( ´∀`)< ぬるぽプロジェクト

みんなで面白いサイト作って有名にしようぜ!
スレリンク(news4vip板)
★まとめwiki
URLリンク(www39.atwiki.jp)

PHPのフレームワークとして symfonyを採用予定です。

411:nobodyさん
08/09/28 21:06:44 kj5kHv7I
1.1.2来たね>Symfony

412:nobodyさん
08/09/30 02:11:17
1.1.3の間違いだろ?

413:411
08/09/30 15:28:36
>>412
失礼、そのとおり>1.1.3

414:nobodyさん
08/10/02 01:01:06 C/bhStf9
アドミンジェネレータで、固定値を選択させるセレクトボックスを表示させるにはどうすればいいのでしょうか?
URLリンク(www.ganchiku.com)
こういう方法は見つけましたが、これだと1画面ごとにパーシャルを書かないといけませんよね?
流石にそれは避けたいのですが……。

415:nobodyさん
08/10/02 01:27:23
パーシャルがめんどければ関連マスタをつくればいいじゃない

416:nobodyさん
08/10/02 12:00:19 C/bhStf9
>>415
いやまぁそうなんですが(汗)
さすがに「カラム二つ、レコード2〜3」というテーブルをそのためだけに作るのは躊躇われます(汗

417:nobodyさん
08/10/02 13:57:47
>>416
その発想はおかしい


418:nobodyさん
08/10/04 07:44:53
1.1.4もうきた

419:nobodyさん
08/10/05 16:31:40
Symfony徹底入門は出るのかな?

420:nobodyさん
08/10/06 17:11:06 X18KqfOa
javascriptヘルパーに
サーバサイドで設定したjavascriptの変数を出力する機能ないの?
なめてんの?

421:nobodyさん
08/10/06 19:14:34
自分で書くかと思ったら、
いつの間にかPHPにJSONエンコード/デコード関数追加されてたのか

422:nobodyさん
08/10/06 23:31:25
jsonエンコとか2年ぐらい前からあるだろ

423:nobodyさん
08/10/07 00:09:51 mdBxPQQp
sfPropelUniqueValidator、バグってるね。
どんな時もかならずカラム名を小文字にするから、OracleとかだとgetColumn出来ない。
修飾されてないカラム名を引っ張ってこないといけないから、Peerから簡単に取得することも出来ない。
※いやまぁ、$fieldNamesとtranslateFieldNameあたりをこねくり回せばできるんだろうけど、
 毎回やるのは流石に面倒だ(苦笑

ここの過去スレ(グーグルのキャッシュからひっぱった)にあった
URLリンク(www.net-newbie.com)
のCreole::NO_ASSOC_LOWERあたりの記述を見ると、一筋縄ではいかないのは解るんだけどね…。

sfPropelUniqueValidatorもそんな感じ(こっちはアドミンジェネレーターで使う)だったから、
二つともラッパ書いてコピペでオーバーライドしちまった。
美しくないし、将来のバージョンアップを考えると少々不安でもあるが……どうしたもんだろうか?

英語出来んから本家に報告も出来んが……この程度のバグ、誰か気が付いてるよね?(苦笑

424:nobodyさん
08/10/07 02:44:42
コードだけでも投げれば?
片言でも通じるよ
むかし別のオープンソースのバグ見つけたときMLにパッチ投げたら通じたぞ

425:423
08/10/07 09:38:11 naXPI71M
URLリンク(www.symfony-project.org)
ここにスレたてればいいのかな?

426:nobodyさん
08/10/07 11:02:54 mdBxPQQp
うーむ、sfValidatorPropelUniqueもそういうつくりになってるらしい……>423
もしかして(モデル生成時に)「カラム名を強制的に小文字にする」とかいうオプションがあるのだろうか?
>Oracle使用時

427:423
08/10/07 11:19:29
あ、間違ってた>>423
sfPropelUniqueValidator→sfValidatorPropelChoiceね

>>426のとおり、どっちもほぼ同じ理由で動かないんだけど、sfPropelUniqueValidatorにはgetColumnなんてメソッドはない(苦笑

428:nobodyさん
08/10/10 15:50:56
もうOracle使うメリットが無い

429:nobodyさん
08/10/10 22:55:23
質問させてください。

アドミンジェネレータのadmin_double_listが便利なので、
アドミンジェネレータ以外でも使いたいのですが、
可能でしょうか?

可能でしたら、方法を教えてください。

430:nobodyさん
08/10/11 00:36:44
>>429
生成されたキャッシュみれば使い方わかるよ

431:429
08/10/11 01:25:13
>>430
ありがとうございます。
さっそく見てみます。

ちなみに、double_listを生成するヘルパー的なものはないのでしょうか?

432:nobodyさん
08/10/11 01:32:06
>>431
あ、いや、だからキャッシュみれば、
object_admin_double_listってヘルパー関数の使い方がわかるって意味で…

433:429
08/10/11 04:31:43
あ、なるほど;

ありがとうございます!
調べてみます!

434:nobodyさん
08/10/12 14:42:54
みなさんはログイン処理作るとき、どうしてますか?
自作してますか?それとも、sfGuardプラグインなどを使ってますか?
sfGuardプラグインって、なんとなく使いづらそうな印象があるのですが・・・

435:nobodyさん
08/10/13 01:33:52
>>434
じゃぁ自作すると良いよ

436:nobodyさん
08/10/17 15:06:59
symfony-doc-ja - Google Code symfony日本語翻訳プロジェクト
URLリンク(code.google.com)

ここのchmが手元のIE8B2環境で開けなかったのでKeytoolsでデコンパイル
→cssで本文の行高さを好みで1.4に→HTML Help Workshopでコンパイル
→umaaaaaaaa

あと >>111 に助けられた


437:nobodyさん
08/10/17 17:31:35
URLリンク(trac.symfony-project.org)
これってアプリケーション名でweblogとfrontendが混ざってない?これでいいの?

438:nobodyさん
08/10/18 22:26:34 q6NYCrNL
symfony ccした時にapacheが生成したキャッシュを更新できないときあるじゃないですか?
あれどうやって解消してます?

いろいろ方法あると思うけど
apacheの実行ユーザーとログインするユーザーを一緒にしてしまう
>セキュリティ的に問題が・・・ないかな?
とか
書き込みできないファイルを削除 または rootになってchmod 0777 *
>めんどくさい
とか

どんな感じで解消してます?


439:nobodyさん
08/10/18 23:32:55
ディレクトリが777なら削除はできるんでなかったっけ?

440:nobodyさん
08/10/19 01:33:59
>>438
意味がわからん
キャッシュを更新できないってのは削除できないって事?
単にディレクトリが777になってないだけじゃないのか

441:438
08/10/19 06:02:39
>>439
>>440
削除はできますよ。
ではなくて、cacheの中にapache(httpdの実行ユーザー)がオーナーのファイルがあって
symfony ccしたときに上書きできないことがあったんです。で、これを削除すれば、ccは出来るけど
恐らく、apacheが書き込もうとした時に失敗するから、例えばデバックモードで開発をしてる時に
うまくキャッシュを更新できないのではと、思ったわけです。

てか、なんで?
他の人はなったことないの?
普通にみんな遭遇するのかと思ったけど


442:nobodyさん
08/10/19 11:52:31
symfony ccの中でキャッシュを更新する?ってのがよくわからん。ディレクトリ残して全削除されるんじゃねーの?

443:nobodyさん
08/10/19 12:10:22
ccで上書きの意味がわからんのだが
ccはキャッシュ削除だろ
そもそもキャッシュのオーナーがapacheの実行ユーザーなのは当たり前だと思うが

444:nobodyさん
08/10/19 14:20:46
yamlファイル書き換えた直後にccしたらキャッシュに上書きしようとすることあるよ
そのときは一度Apache経由でアクセスしてやればいいと思う

445:438
08/10/20 19:52:46 K3O7/LLa
皆さんレスサンクス
そうか、ccってクリアした後に、キャッシュ作るもんだと勘違いしてました。

で、>>444さんの
>yamlファイル書き換えた直後にccしたらキャッシュに上書きしようとすることあるよ
これに引っかかって、上書きできないことがあったんですね。
しかも、必ず起こるわけじゃないですね。

どういう条件のとき上書きしようとするのかちょっとわからないけど
ありがとうございました。

446:445
08/10/20 20:18:39 K3O7/LLa
そうだ、もう一つ質問させてください。

マニュアルに
Don't confuse the debug mode with the web debug toolbar.
The debug toolbar can be displayed even when the debug mode if off, although, in that case, it displays much less information.
とあるので、モードがprodのままapps/appの名前/config/settings.ymlに
prod:
.settings:
   web_debug: on
と設定してみましたがでません。
cache/user_pc/prod/config/config_settings.yml.php
を覗いてみましたが、
'sf_web_debug' => true,
になってます。

以前はsfWebDebugFilterをOnにする必要があったけど
v1.1なので、平気そうに見えます。
どうしてでしょうか?

まあ、特に必要ないといえばないのですが、マニュアルと違うっぽいのできになったもので。
お願いします

447:nobodyさん
08/10/20 20:38:12
>>446
1.1ではweb_debugの項目は廃止されてるよ
フロントコントローラで
ProjectConfiguration::getApplicationConfiguration('frontend', 'prod', true);
じゃね

448:446
08/10/21 12:41:26 V5bf6vPW
>>447
ありがとうございます。

なんか、マニュアルとあわないけど、まあ、447さんのやりかで問題ないので気にしないことにします。
Web Debug Toolbar Activation, in frontend/config/settings.yml
dev:
.settings:
web_debug: on
とはっきり書いてあるんですけどねえ。なんか不具合があって途中で廃止されたとかですかね。

449:nobodyさん
08/10/21 21:14:10
オープンソースなんだから気付いたんならメールすればよい
開発に貢献したまえ

450:nobodyさん
08/10/21 21:33:09
compact10の互換のためだろうが

451:nobodyさん
08/10/21 21:45:20
まあデフォできいてないならマニュアルとしては一言書いておいてほしいとこだな

452:nobodyさん
08/10/21 21:46:40
>>451
書いてあるだろ。
1.0=>1.1の項目に。

453:nobodyさん
08/10/21 21:52:43
>>448が言ってるのはbookの16章のとこだろ
1.1のマニュアルに書いてないからわからなかったって事じゃねーの

454:nobodyさん
08/10/22 11:49:18 xQzdLTf7
1.0=>1.1にありました?見逃したかな・・・
フィルターはやめてresponseに注入?したって書いてあるのは見つけたのですが。
報告ですか・・・がんばってみますが英語書くのはちょと・・

もう一点お願いします。
URLリンク(www.symfony-project.org)

1つのプロジェクト内で複数のアプリケーション
で、サブドメインじゃなくて、フロントコントローラーを一個下の階層に移動するのをやりたいのですが
define('SF_ROOT_DIR', realpath(dirname(__FILE__).'/../..'));
は利かなく無くなっているようです。

フロントコントローラーのProjectConfigurationのインクルード先を
require_once(dirname(__FILE__).'/../../config/ProjectConfiguration.class.php');
に変えればとりあえず動くのですが、css,jsを読めません。

例えばその階層を/hogeだとしてcss、jsは/hoge/css、/hoge/jsなどを作ればよめますが、
/sfも/hoge/sfになってるので/sf以下のファイルにアクセスできなくなってしまいます。
Aliasは.htaccessでは出来ないのでroot権限の無いサーバーでは面倒かなと。

どんな風にやるとよいのでしょうか?
お願いします。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4813日前に更新/217 KB
担当:undef