フランチョスとsymfonyat PHP
フランチョスとsymfony - 暇つぶし2ch237: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でやって見ます。
回答頂いた皆さんありがとうございました・・・。

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でやるようになったのか
㌧㌧

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権限の無いサーバーでは面倒かなと。

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

455:nobodyさん
08/10/22 22:41:45
そろそろ1.0から1.1に変更しようと思うんだけど
URLリンク(code.google.com)
に書いてある方法でアップグレードした方いますか?
いれば実際に注意点とかあれば教えてください。

456:nobodyさん
08/10/23 02:01:05
まぁ、あまりお勧めしないとだけ言っておく。
規模次第だけど、結構手間。

457:nobodyさん
08/10/23 04:09:02
>>447
つけたしだけど、廃止されてるのはfilters.ymlでの設定で、web_debugはsetting.ymlでは使えるよ
prod環境でツールバー出すときは、factories.ymlでlogの設定を修正してsetting.ymlでweb_debugをonにしないと駄目だな

458:nobodyさん
08/10/24 16:11:28 ebeBY5Qd
MySqlの
varchar(255) binary
をpropelで定義するのは無理っぽいですか?
symfony propel-build-allした後にalter ~するんでしょうか?

459:nobodyさん
08/10/25 03:45:44
sfFormでinput_date_tagのrich=trueに該当するの無くないか…?

460:nobodyさん
08/10/26 00:58:37
>>459
使いたかったら自分でビューに記述すりゃよくね?
他のところはrenderRowしてさ。
そういうことぢゃなく?

461:nobodyさん
08/10/26 01:19:58
>>460
echo $formで済むものをなんでわざわざそんな無駄踏む必要あるんだよwwwww
普通にwidgetクラスつくればいいだけだろうがw

462:460
08/10/26 18:22:01
>>461
そーゆーモンかね。

まぁ、可能な限りecho $formやrenderRowで済まそうとすればそれもアリか。せっかくsfForm使うんだもんな。
漏れは「ヘルパーあるんだからそれ使えばいいぢゃん」と思うが、これはバラでrenderLabelやrenderErrorしてるからなんだろう。

463:460
08/10/26 18:27:20
念の為追記。

一応、compat_10しなくても、フォームヘルパーもオブジェクトヘルパーも動く。
もちろん、本当に(まったく)同じ動作をするかはしらん。
input_date_tagが動くかどうかも試してないw

464:nobodyさん
08/10/27 02:41:04
idだけを変えるforeachの中でlink_toを繰り返し呼ぶのって気持ち悪いな
マッピングって結構コストあるじゃん
単にidをハメるだけでいいベースのURLを取得できればいいんだが

465:nobodyさん
08/10/27 03:14:53
sf_contextみたいな標準でviewで使える変数を他にも定義したいんだが
それはsfContextのfilterTemplateParametersで定義してる。
sfContextをオーバーライドするのは色々まずいよね
どうすればできる?

466:nobodyさん
08/10/27 03:15:03
url_forでURLだけ作ってIDだけまわすとかできない?

467:nobodyさん
08/10/27 03:30:17
>>465
app.ymlで定義してテンプレート内でsfConfig::getで取得するとか

468:nobodyさん
08/10/27 04:14:08 kNx8sH92
アクセスコントロールについての質問です。
secureをonにしたアクションに権限なしアクセスした時、
モジュールごとに、リダイレクト先アクションを変えたいのですが、
settings.ymlではそういった細かい設定は出来ませんよね?
やはり、preExecuteなどで自分でチェックするしかないのでしょうか?

469:nobodyさん
08/10/27 07:45:55
>>463
それがどうした

470:nobodyさん
08/10/27 09:40:42
>>464
そういうのは自分で作ってコミットするんです。

471:nobodyさん
08/10/27 11:29:34
>>468
modules/config/settings.yml
に書いたんじゃだめなんでしたっけ?
試してなけど、より細かい範囲?の設定がうわがかれるからいけそうだけど


472:nobodyさん
08/10/27 11:30:24
modules/名前/config/settings.yml
間違えた

473:nobodyさん
08/10/27 11:45:10 x9xrCR0d
コーディング規約にクラス名とそのファイル名に関する記述が見つからないんですけど
クラス名は小文字ではじめてラクダ?lowerCamelCaseっていうですか?
でファイル名はclassName.class.phpみたくclassを入れるのでしょうか?

modelの中に作られるORMのファイルが違うし、
クラス名って大文字ではじめるのが、
ほとんどの言語で規約になってるじゃないですか?

小文字ではじめるって言うのsfだけに限ったことですか?
なんか気持ち悪くて・・・

474:nobodyさん
08/10/27 22:20:04
>>473
URLリンク(symfony.xrea.jp)
ここにあるだろうが。なんでこんなものも見つけられないんだ。

475:nobodyさん
08/10/27 23:27:27
>>471
レスありがとうございます
それも試してみたのですが、無理でした
ただ自分で書いても、わりとアッサリ出来ました
飛び先が一つしか設定できないっていうのは正直不可解な仕様です
みんな不満なくやっているのでしょうか・・

476:473
08/10/28 14:53:05
>>474
レスありがとうございます。
すいません。その章はざっと読み飛ばしてました。

クラス名はUpperCamelCaseで良いみたいですね。
でも
UpperCamelCase is the standard for class and variable naming.
っておかしくないですか?変数の名前?
変数はlowerCamelCaseですよね?

まあ、そんなに気にすることないのかな。
プラグインとか入れてみるとクラス名がlowerCamelCaseになってるの多いけど
あれって、厳密に言えば規約違反ってことですよね?

こんな感じでやっちゃいます。
クラス名:UpperCamelCase
メソッド・プロパティ:lowerCamelCase
ファイル名:ClassName.class.php

477:nobodyさん
08/10/28 23:12:32
うちの会社では、viewはデザインからテンプレートのコーディングまでデザイナーがやるのですが
アクションで設定したテンプレートで使える変数の一覧をページで簡単に確認できるようにしようと思ってます。

いろいろ試してみたのですが、テンプレートに渡した変数はActionでしか取得できないっぽいですよね?
そんなことないですか?

postExecuteで例えばセッションとかResponseにセットして、Filterで表示とか考えたのですが
postExecuteを全モジュールに作るのもめんどいし
またActionの独自クラスを作ったとしても、モジュール作った後に継承元を変えるのも
いまいちな感じなんですよね。

MyUserにsetすればweb_debugツールバーで見れるんですけど、深い階層の配列が見づらいし・・・


テンプレにアサインした変数の一覧表示なんて、ものすごい要望の多そうな機能なので
いくらでもありそうだけど、なんか見逃してたりします?

また、うまい方法もしくはプラグインなどあったらお願いします。

478:447
08/10/29 13:12:01 eltEv9kS
あ、sageで書いてましたすいません。

なんがごちゃごちゃ書いてますけど、一言で表現すると
アクションでテンプレートに渡した変数の一覧ってfilterで取得できませんか?
できれば、アクションを変更しないで、filterのみで実現したいです。

って感じです。
よろしくお願いします

479:nobodyさん
08/10/29 19:30:27
フランチョス喧嘩してんの?

480:nobodyさん
08/10/29 21:06:31
>>477
エクリプスのプラグイン作ってあるんで、100万くらいで売ってあげるよ

481:nobodyさん
08/10/31 15:21:57
>>480
あ、じゃあお願いします
振り込みますので名義と口座番号と暗証番号お願いします。

ところで、フランチョスってなんですか?

482:nobodyさん
08/10/31 23:10:16
>>481
了解です。
引き出しますので名義と口座番号と暗証番号お願いします。

483:nobodyさん
08/11/01 10:57:37
>>481
ためしに通報してみた

484:nobodyさん
08/11/01 17:09:43
svnの1.2の新しいadmin generatorで
$attributes->getRawValue()
これをつかってるキャッシュの行でコケるんだけど、
開発途中でバグってるだけだよね

485:nobodyさん
08/11/02 15:59:51
1.2Beta1きましたよ

486:nobodyさん
08/11/03 12:52:47
そろそろ新しい書籍が欲しいところですなぁ。
フォーム周りとかだいぶ変わったし。

487:nobodyさん
08/11/03 13:34:20
actionにrequestだけ渡してくるのってアンバランスな仕様だな
userも渡してこいよ

488:nobodyさん
08/11/03 17:01:25
どう考えてもuserよりrequestのが圧倒的に多いだろ。
userまで渡す方がアンバランス

489:nobodyさん
08/11/03 21:08:36
1.1のsfValidatorNumberバグってるな
0入れるとrequiredのエラーが発動しやがる

490:nobodyさん
08/11/03 21:21:12
>>488
普通セッション使わない規模の方がむしろ少ないだろ
ショボグラマー乙

491:nobodyさん
08/11/03 22:44:00
>>490
つか、なんで$this->getUserぢゃいかんの>

492:nobodyさん
08/11/03 22:54:20
それを言うなら$this->getRequest()でもいいじゃんって話になる
メソッドの最初から使えると、
どのタイミングで$user = $this->getUser()するかとか、
あれこの時は既に$user存在してるっけ、とかいちいち考えなくていいのがいい

493:nobodyさん
08/11/03 23:28:14
>>490
アホかお前。
頻度のこと言ってるのもわからないの?
だったら動的タイトル設定やPDF用のヘッダ操作だって
使わない規模の方がすくない。
ということで$responseも実装。
なんてパラメータ増やしてたらキリないだろww

494:nobodyさん
08/11/03 23:36:15
ほぼ毎アクション使う$requestに対してsfUserは?
って考えればわかるよね。

>あれこの時は既に$user存在してるっけ、とかいちいち考えなくていいのがいい
こんなこと考えてる時点でショボグラマー

495:nobodyさん
08/11/04 00:21:03
ログイン状態扱ってたらほぼ毎actionでuser使う
自分の分からないことをまったく想像できないのがショボグラマーの特徴だな
第二引数で渡して使うも使わないも自由にする方がいい
こんなことは議論の余地すらねーよ素人

496:nobodyさん
08/11/04 01:18:55
                    ,===,====、
                   _.||___|_____||_
..               ∧_∧  /||___|^ ∧_∧
..               (・ω・`)//||   |口| |ω・` )
.             ./(^(^ .//||...||   |口| |c  )
.....            ∧_∧ / //  ||...||   |口| ||し      
.......        (・ω・`) //....  ||...||   |口| ||    
         /(^(^ //  ....  .||...||   |口| ||        スレは仲良く使ってね
 ""    :::'' |/   |/ '' "  :::  ⌒  :: ⌒⌒⌒ :: ""  `
 :: ,, ::::: ,, ; ̄ ̄ ̄  "、 :::: " ,, , :::   " :: " ::::  "


                    .    ∧_∧
                   ===,=(´・ω・`)
                   ||___|_゚し-J゚||_
                ∧_∧/ //.___|^∧_∧
               (´・ω・`) /||    |口|(´・ω・`)
              ./(^(^//|| ||    |口|⊂ _)
              ∧_∧ /./  || ||    |口| ||    ∧_∧
   ∧_∧    (´・ω・`)/  ...|| ||    |口| ||  (´・ω・`)
  (´・ω・`) /(^(^/ /      .|| ||    |口| ||    ゚し-J゚
 "" ゚し-J゚:::'' |/  |/ '' " :: ":::::⌒  :: ⌒⌒⌒ :: ""  `
 :: ,, ::::: ,, " ̄ ̄  "、 :::: " ,, , :::   " :: " ::::
      ぼくたちは、なかよくつかってるよ

497:nobodyさん
08/11/04 08:31:20
>>492
>それを言うなら$this->getRequest()でもいいじゃんって話になる
まったくそのとおり。
だから実際$requestは省略できる。
よって$userも要らない。
>>495
Responseは?Loggerは?Contextは?
>あれこの時は既に$user存在してるっけ、とかいちいち考えなくていいのがいい
こんなことで考えるのに、どの引数がどのオブジェクトに設定されるのかは
迷わないの?

498:nobodyさん
08/11/04 09:34:40
>>497
釣りか?技術者とは思えない論理展開で言葉もない
中学生もsymfony使ってるんだな

499:nobodyさん
08/11/04 09:52:03
>>495
>ログイン状態扱ってたらほぼ毎actionでuser使う
使わねーよw
本当にSymfonyで開発したことあんのかw

あ、言っとくが、もちろん使うことはあるぞ。確かに良く使うほうではあるわな。
>$this->getUser()
けど、ちゃんとsecurity.ymlやらsetting.ymlやら設定しとけば「毎action」なんてこたぁねーだろ?
もし本当にそういう要求がある(AttributeやFlush使いまくりとか、ユーザー毎にやたらと細かい権限設定がある)んだったら、sfActions継承して新しい基底Actionクラス作ればいいだけ。

500:nobodyさん
08/11/04 11:05:36
よく使う方ならそれで充分じゃないか
実際、mojavi時代にはcontroller,request,userがactionに渡されていた
それがsymfonyになり、いったん何も渡されなくなった
それが1.1以降また今度はrequestだけ渡されるようになった
requestだけを渡すくらいならuserを渡しても、誰も何も損しないだろう
requestとuserは両方ともコンテナで類似性が高く、
二つ渡ってくる方がバランス的に気持ちいい
シンプルな話じゃないか。
基底actionは書くのが当然だと俺も考えているが、それは別の問題だろう

501:nobodyさん
08/11/04 11:33:28
>>498
釣りっていうのは君が今している内容の無いレスのことを言うんだぜ。
君の言う中学生のほうがまともなレスしてるぞ

>>499
確かにほぼ毎アクション使うってのはちょっと仕様的に破綻してるな。
ユーザIDみたいなのをテーブルに書き込ませたりするなら、
sfGuardPluginみたいにモデルにコンテキストから突っ込んで自動保存させたほうが
コード少なくて済むし。

>>500
Mojaviでも3.0で消えたぜ。3つ渡してたのはPHP4の仕様上の問題で仕方なく。
>requestとuserは両方ともコンテナで類似性が高く
そうでもない。それだったらクッキー操作が入る$responseも入れないと
バランス悪い。




502:nobodyさん
08/11/04 12:28:41
ふーん。センスない奴が多いんだな
最終的には審美的な問題だから、分からない人に何を言っても説得出来ないし、
ああ、君はそうなんですかとしか言えないが。
コンテナの話をしている時に
クッキーを担当しているという理由でresponseをあげる時点で決定的にセンスが欠けている。

503:nobodyさん
08/11/04 18:01:12
>>502
まぁ、そう思うなら
「requestとuserは両方ともコンテナで類似性が高く、
二つ渡ってくる方がバランス的に気持ちいい」
ことをフランチョスに伝えてやってくれよ。
URLリンク(trac.symfony-project.org)


こんなところでセンス語ってる時点で決定的にセンスが欠けている。
お前のセンスがいいならきっと反映されるぜ

504:nobodyさん
08/11/04 18:19:13
実際responseとrequestでクッキー行き来してるしな。
片方だけ実装してバランスが良いとか…

505:nobodyさん
08/11/04 18:58:22
まぁ同じパラメータホルダーだから類似してるって気持ちは分からなくも無いけどな。
コンテナなんて間違った言葉の使い方しちゃうから、話がややこしくなる。
自分がマイノリティなのを、周りがセンスないから…と言ってひきこもっちゃった子
の特集こないだNHKで見たわ。気をつけると良い。

506:nobodyさん
08/11/04 19:55:26
>>495
良いこと教えてやるよ。
お前みたいな少数派でも対応できるように、symfonyには
core_compile.ymlって設定ファイルがある。
そこでsfActionsだけハックしたものを使うものが可能。
幸いsfActionsはたいしたことしてないんで、sfUserを突っ込むのも
簡単だろ?
まぁ他人のセンスを疑う前に、勉強しような!

507:nobodyさん
08/11/06 20:49:11 jbsmLZzy
sfGuardPluginが独自のテーブルを作っちゃったりするのが気持ち悪いのと
勉強もかねて、ログイン機能を作ってプラグインにしてみました。

ちょっと疑問に思ったのですが
プラグインが独自で使う設定ってどこに書かせるのがいいのでしょうか?

例えば、認証に使うテーブルクラスの名前やカラムの名前などを
とりあえずsetting.ymlに書いて読むようにしてあるのですが
よく考えたら、ログインの時だけ必要な設定を毎回メモリーに読み込むのは
微妙だと思ったんですよね。

モジュールはプラグインに入っているので、module.ymlに書かせるのは難しいと思うんですよ。
後は独自の設定ファイルを書くようにしてsfYamlクラスで読みにいくとか。

どういう風にするのが一般的・・・というのはおかしいですが、
皆さんどんな感じにしてます?


508:nobodyさん
08/11/06 21:02:11
>>507
sfGuardPluginを使うのが一般的という感じにしてます

509:507
08/11/06 21:08:03 jbsmLZzy
>>508
すいません。ちょっとわかりづらかったですね。

モジュールを含むようなプラグインで
アプリ全体で必要じゃない設定が必要なとき
設定ってどこに書かせるのがいいのでしょうか?

要約するとこんな感じです。

510:507
08/11/06 21:15:43
あ、そうか
moduleを作ればいいのか。

sfGuardAuthモジュールテンプレートをカスタマイズする

を読んでて気づいた。
試してみます。

511:nobodyさん
08/11/07 18:36:24 Oe+2PckL
アクションファイルの中のクラスによって、

$bbsdata = BbsdataPeer::retrieveByPk($this->getRequestParameter('id'));
$this->bbsdata = BbsdataPeer::retrieveByPk($this->getRequestParameter('id'));

と書かれていますが、thisの有無の違いがわかりません。
初歩的な質問ですいませんが、お願いします。

512:nobodyさん
08/11/07 19:57:17 Oe+2PckL
訂正

X アクションファイルの中のクラスによって、
○ アクションファイルの中のアクション(メソッド)によって、

513:nobodyさん
08/11/07 22:04:30
>>511
テンプレートのなかで
<?php print_r($bbsdata->toArray());?>
ってやってごらん

514:nobodyさん
08/11/08 00:24:41 3C+cxs1C
テーンプレートから参照するためにthisをつけるということでしょうか?
そうだとしてもその理由がいまいちわかりません。

515:nobodyさん
08/11/08 14:15:35
>514
Symfonyがそういう風に作られているから。

・・・ま、確かに少々気味悪くはあるが、これは設計思想の問題だからしゃーない。
どーしても中身を知りたければ、__getと__setでググれ。

516:nobodyさん
08/11/08 17:14:49
>>514
理由?
$this->setVar('bbsdata', Bbsdata.....
って書くのが面倒な人のためのショートカット

517:nobodyさん
08/11/10 19:06:23 95yh0Lxp
moduleの名前にハイフンを入れても、forward時に勝手に取り除くようになってるのですが
これは何故でしょうか?

例えばfoo-barというmoduleにしたいと思って
symfony propel-init-admin app foo-bar FooBar
とやっても
URLリンク(hoge.hoge.hoge)
じゃないとアクセスできないし、ヘルパーなどで作られるURIもfoobarになってしまいます。

複数の単語を含むようなmoduleを作りたいときはアンダーバーじゃないとだめっぽいですね。
たしか厳密にいえば、アンダーバーはURLに含めてはいけなかったと思ったのですが。

sfController::forward()のしょっぱなでいきなり取り除いているので、
たぶん設定ではどうにもならないと思うのですが、どうにかなりますか?

518:nobodyさん
08/11/10 19:28:23
普通にアンダーバーつかってるけど、禁止はホスト名だけじゃない?
アマゾンのURLとかみても(パラメータだけど)アンダーバーつかってるし。


519:nobodyさん
08/11/10 19:42:04 95yh0Lxp
>>518
ありがとうございます。
ホスト名でしたっけ?今ちょっと探してみたけど、見つからないし
そういわれてみるとそんな気もします。

まあ、アンダーバーでやりますか・・・

ところで公式にsymfonyで作られてたサイトの一覧見たいのありましたよね?
ためしに、symfonyで作られてたサイトのURLをみて
モジュール名どんな風にしてるのか見ようかと思ったのですが、見つからなくなっちゃいました。

知ってたら教えてください。


520:519
08/11/10 19:59:53
公式でこんなの見つけました
URLリンク(www.symfony-project.org)

root作ればいけましたね。
いちいち作るの面倒なので、アンダーバーかそのまま続けてしまうかした方がよさそうですね。
慣れの問題だと思うけど、アンダーバーの入ってるURLってなんか気持ち悪くて。

521:nobodyさん
08/11/10 20:20:02
ハイフンの方が気持ち悪い

522:nobodyさん
08/11/13 12:59:14 9D9L1EQK
Peerクラスの名前がわかってて
そのテーブルの主キーの名前を取得したいのですが、
なんか良い方法ありますか?


523:522
08/11/13 14:23:15
すいません。見つけました。
Peer::getTableMap()で全部のカラムを取得してから・・・
こんな感じでやりました。

function get_primary_key($class_name)
{
$columns = call_user_func(array($class_name."Peer","getTableMap"))->getColumns();
$pk = array();
foreach($columns as $column)
{
if($column->isPrimaryKey()) $pk[] = $column->getColumnName();
}
return $pk;
}

なんか、効率悪そうですね。
Peerクラスに主キーの情報くらい直接持っててもよさそうな気もしますが。

複数のPeerとかOMクラスで同じメソッドを作りたいときはどうしてますか?

ピヘイビアは重くなりそうだし、BasePeerは何も継承してないのでカスタマイズできないので
PeerBulderを変えるか、多少重くなっても、ビヘイビアを選択するかですかね。

524:nobodyさん
08/11/13 20:54:44
おとなしくビルダークラス作ってカスタマイズしてろよ

525:nobodyさん
08/11/14 08:14:39
1.1.4を使ってます。
Criteria::CUSTOM を使って外からくる値をSQLに突っ込む時
quoteするメソッドってないんですか?

propelが1.3になるとadapterにquoteというメソッドがあるみたいですが
1.2の時はどうするんでしょうか?
別途自前で用意してもいいですけどあるなら使おうかと・・・
カラム名とかをバックスラッシュでquoteするのは見つけましたけどシングルquoteが見つかりません。

お願いします。

526:nobodyさん
08/11/21 18:59:55 teu4KGCR
アクションから取得したデータでCSVファイルを作成し、そのデータをもとに
グラフ表示したいのですが、どのような流れでつくるのがいいでしょうか?

アクションから取得したデータをもとにどこかにテキストファイルを作って、それを読み込ませるという
流れでやろうと思っているんですが。
開発経験がほとんどないのでお願いします。

527:nobodyさん
08/11/21 23:11:15 MX0rvE3s
symfony 1.0使ってるものです。
validate/action名.ymlの
fillinのconvertersに、自作の関数を入れたいんだが
自作の関数をどこに書けばいいの?

528:nobodyさん
08/11/26 06:34:11
1.0.19キター

529:525
08/11/26 11:50:19
突っ込む値が文字列ならシングルクオートのみをクオートすればいいから
addslashes
でいいのか。実際コードたどると使ってるところがありますね。
で、数字だったらキャストしてやると。

Zend_DbのquoteIntoみたいなのあればいいと思ったけど、まあ、なんか作るかな。

>>526
なんか質問が壮大すぎませんか?
もうちょっと的を絞ってお願いします。前レスを見ればわかると思いますが
ここの人たちは怖い人たちが多いので「PHPのぐだらない~」のほうが向いてるかもしれません。

530:test
08/11/28 02:01:50
アクションで取得したデータをそのままテキストファイルに流し込むには
どのような処理をすればいいのでしょうか?

531:nobodyさん
08/11/29 17:17:28
JOINしたテーブルのカラムってSELECTで参照できないの?

532:nobodyさん
08/11/29 20:31:26
>>531
できなかったらあんまし意味なくね?


533:nobodyさん
08/11/30 05:18:39
>>532
例えば、決済トランに会員マスタをJOINしても、会員マスタのデータはSELECTできない。

534:nobodyさん
08/11/30 20:26:13
それはpropelの使い方が悪い

535:nobodyさん
08/12/01 15:40:34
1.2.0きました

536:nobodyさん
08/12/02 00:10:10
短い命だったな>1.1

URLリンク(code.google.com)
まぁ、1.1で学んだことが無駄にはならんとは思うが、また結構変わったな。

537:nobodyさん
08/12/02 05:23:30
なんとか1.1 -> 1.2を完了した。
やっぱりDBがPDOになった(propelが1.3になった)周りの変更がでかかったな。

538:nobodyさん
08/12/02 09:17:20
ドクトリンはどうよ

539:nobodyさん
08/12/02 09:46:52
>>537
kwsk。doSelectRSとか、あの辺?
select直投げとかも使ってるから、結構インパクトあるかも。
まぁ、最低でも三ヶ月は移行しないけどね。1.1.0も結構バグあったし。
しかしSymfonyは結構サイクル短いな。

540:nobodyさん
08/12/02 17:14:50
1.2の標準はドクトリンなんだろ?
プロペルなんて使ってる奴は昭和

541:nobodyさん
08/12/02 18:28:40
ドクトリンで
WHERE A AND ( B OR C )
みたいなカッコ表記するのってどうやるの?

542:nobodyさん
08/12/02 18:39:26
そのまま
$query->where('A AND ( B OR C )')

543:nobodyさん
08/12/02 20:45:23
>>540
ドクトリンは標準ではないんだよ。
どちらもOKといったかんじ。

544:nobodyさん
08/12/03 09:49:01
ドクトリン使うかなー
propelとかありえない。プロペラ付けて遙か彼方に飛んでいって欲しい。
で、パフォーマンスはどうなん?>ドク

545:nobodyさん
08/12/03 22:48:45
Doctrineとか駄目だわ。
Propel1.3のがパフォーマンス良いし、コードジェネレートで
IDEでの補完効いて楽。
ActiveRecordとか終りすぎ。

546:nobodyさん
08/12/04 02:16:41
生SQL最強でFA

547:nobodyさん
08/12/04 11:42:48
まぁマッパはどっちでも良いが、
プラグインの都合でドクだと少々困る人は困るかもな

548:nobodyさん
08/12/04 22:27:30
みんな1.2やり始めてるん?

関心関心

549:nobodyさん
08/12/04 23:56:25
1.1でやってるなら1.2にしたほうがいいわな
1.1からpropel1.3使ってたから移行楽だった

550:nobodyさん
08/12/05 16:50:24
sfFormで質問なんですが
sfValidatorAnd で複数のバリデーション実行する時って
1個でもエラーあったら次の処理終了とかできませんか?
あと、エラーメッセージを配列で取得したい時ってgetErrorSchemaで取得するしか方法ないのかな?

551:nobodyさん
08/12/14 09:23:29
いまだにfrontend_devまるだしサイト結構あるなw

552:nobodyさん
08/12/15 10:57:09
frontend backendって名前にすること自体ありえん

553:nobodyさん
08/12/17 18:05:07 MLlBkt3T
symfonyのadmin generator見たいに画面を自動で作っちゃうのを
スカフォなんとかとか言いませんでしたっけ?
sca~こんな書き出しだったきもする。

どっかで見た気がするんだけど、思い出せない。
確か緑色の本で見たのかな。

気持ち悪いので知ってたら教えてください

554:nobodyさん
08/12/17 19:11:37
スカッフロード

555:553
08/12/17 19:30:21
>>554
ありがとうございます
さっぱりくっきりしました。

scaffold 足場、足場組み.
っていう意味みたいですね。

556:nobodyさん
08/12/17 19:42:48
どう見てもスカトロです
ありがとうございました

557:nobodyさん
08/12/17 19:52:23
frontend_dev丸出しサイトみるとAPC使ってるところないね
APCの使用率はどのくらい?

558:nobodyさん
08/12/19 04:01:04
>>557
2%

559:nobodyさん
08/12/19 04:06:53
そんな低くないだろ~
10%くらいはあるんじゃね

560:nobodyさん
08/12/19 14:34:21
URLリンク(www.activeweb.jp)
ここいいな。fastcgiだし

561:nobodyさん
08/12/22 14:49:59
jobeetの話題がないな。
もうここに来る奴には用済みか?

symfony propel:data-loadで

Class '?JobeetJob' not found in /usr/share/pear/symfony/plugins/sfPropelPlugin/lib/addon/sfPropelData.class.php

ってでるわ。
一度だけ成功したんだけれど、最初からもう一度やってみようと思ったら、またでるようになった。
なんか抜けてるのかな?


562:nobodyさん
08/12/22 15:32:14
ちゃんとモデルビルドしてあんの?

563:561
08/12/22 15:54:53
>562
php symfony propel:build-modelですよね。
してます。

分からないので最初からもう一度やってみます。。。

564:nobodyさん
08/12/22 18:44:54
symfony ccは?

565:561
08/12/22 19:40:37
>>564
キャッシュクリアもやってます。

1.0以来久々だったので復習がてらやってるんですけど。
以前はあまり悩むことはなかったのですが。
日本語訳サイトと本家を行ったり来たりしてるから、何か間違ってるかも。
明日も休みだし、ゆっくりやるか。

566:nobodyさん
08/12/22 20:26:14 IJDiGLGO
>>561
バージョンはいくつですか?
私は1.1.6で同じ症状で困ってます。
クラス名に特定の名前を使うと出ます。
スキーマに

t_condition:
_attributes: { phpName: Condition }
id:
name: {type:varchar(255), required: true}
name_s: {type:varchar(255)}
sort_order: {type:integer, default:0, required: true}
created_at:
updated_at

fixturesに

Condition:
trafic:
name: "test"
sort_order: 1:

これでsymfony propel-build-all-load sysすると
Unknown class "Condition".
と例外投げます。
このままクラス名をHogeとかに変えるとうまくいきます。

567:561
08/12/23 04:55:42
>566
1.2.1です。
>561の自分のレスを見るとクラス名に「?」が入ってるな。。。
設定ファイルの改行コードがくさい気がしてきた…。
明日、再度頑張ってやってみよう。

568:nobodyさん
08/12/25 20:37:41
symfony1.2のpropelってPDO使えないサーバだと駄目?


569:nobodyさん
08/12/26 07:37:20
symfony1.2にはphp5.2以上が必要です。

570:nobodyさん
08/12/26 22:09:47
URLリンク(elliottback.com)
URLリンク(wiki.rubyonrails.org)
自鯖で運用する場合パフォーマンスからみても
RailsよりPHP+Symfonyを選択する理由はなし?

571:nobodyさん
08/12/27 01:43:38
外注さがすときはphpのほうが見つかりやすいけどな。
一人でシコシコやってるだけなら好きにすればいい。

572:nobodyさん
08/12/27 02:09:03
必ずしも優れているほうが普及するってわけでもない
phpがwebアプリケーションのシェアとっちゃったから、急激な逆転はないでしょ

573:nobodyさん
08/12/27 11:09:40
体感的な話で申し訳ないが、RailsはPHP+Cakeなどに比べるとかなり重い。
DBに接続しない、単純なページ表示するのにも、キャッシュが効いていない場合は
どうなってんだってくらいRailsは表示に時間がかかる。
じゃあキャッシュ効かせればいいじゃんって話なんだけど、
ちょっとした情報を取ってきて表示が変わるようなページに対しては、
毎回表示が遅くなる、という事に。
DBまわりは、自分はPropel等使ってないから単純な比較は出来ないな。
個人的には、パフォーマンスはPHP、書きやすさはRuby(Rails)な感じ。





574:570
08/12/27 22:14:46
手元で10000回ループして文字列連結を試したけど
どうひいき目に見てもPHPのが速かった・・・

575:nobodyさん
08/12/28 04:54:43
railsを速く動かすにはかなりノウハウがいるだろ

576:nobodyさん
08/12/31 12:16:02
>>570
5.1.6とかまた酷いもんを比較対照にしてるなwww

577:nobodyさん
09/01/04 23:00:05
php擁護が多い

578:nobodyさん
09/01/05 08:37:49
symfonyスレだもの

579:nobodyさん
09/01/06 21:35:42
>>577
むしろあの古い比較記事自体、酷いrails擁護だろ

580:nobodyさん
09/01/07 00:42:52
URLリンク(www.symfony-project.org)

日本人はやる気ないなぁ。
確かに落ち目っぽいし。

581:nobodyさん
09/01/07 00:59:06
自分で何もしないやつほど吼えるよね

582:nobodyさん
09/01/07 11:59:39 E9TXficj
>>580
エンジニアに英語は必須でしょ。勉強しようよ。
そういう言う俺は公文の中学生英文法を勉強してるへたれだけど。

583:nobodyさん
09/01/08 10:30:11 RWe/YoFS
actionでテーブル名からそのOMクラス名を取得するにはどうすればいいですか?

584:583
09/01/08 14:04:48 RWe/YoFS
admin generatorをカスタマイズしてたんですけど
actionでやらないで、generatorでやってしまいました。

actionだと
Propel::getDatabaseMap($connectionName);
でDatabaseMapを取得して、どうにかするのかな?
試してないけど。

585:nobodyさん
09/01/12 05:16:23
doctrine試してるんですけど
doctrine-build-all-reload
すると、データベースを一回ドロップして作りなそうじゃないですか?
その時、encodingの値を無視してDEFAULT CHARACTER SET latin1で作っちゃうんですけど
設定でどうにかなりますか?

doctrine-build-all-reloadを使わないとか、mysqlの設定をいじってデフォルト値を変えちゃえばどうにかなるとは思うのですが
symfony側でどうにかならないかなあ。

586:585
09/01/12 05:17:13 JXhDeiPx
ああ、専ブラがまたデフォルト下げ設定になってました。
すいません。

587:nobodyさん
09/01/17 00:20:55 LLHZVk4w
schema.ymlでフィールドの選択可能な値一覧を指定する事って出来ますか?
MySQLのENUM型みたいなの。

イメージとしてはこんな感じです。
propel:
customer:
id: ~
sex: [male, female]

588:nobodyさん
09/01/17 02:22:45

ORMで定義するんじゃないの?



589:587
09/01/18 05:03:02 cj4gRIwu
>>588
ちょっとよく分からなかったので、とりあえず保留・・・
別テーブル作ってmale, femaleの2つのレコードを作って対処しました。

別の質問なんですけど、generator.yml に password, password2 という
2つのフィールドを定義しています。

modules/user/validate/edit.yml というバリデータを用意して2つのフィールド
ともにrequiredにして、sfCompareValidatorで2つのパスワードが一致しているか
チェックしてます。

それ自体はとりあえず動作したのですが、やりたい事はユーザーの新規作成
の時はパスワード入力は必須にして、更新の場合は値の入力は任意で、
値を入力した場合のみ2つが一致するかチェックさせたいです。

ゴリゴリ書けば出来ると思いますが、一番楽な方法ってどんなんですか?

590:nobodyさん
09/01/18 11:39:22

シコシコ書くしかないね。



591:587
09/01/18 11:59:51
>>590
そっかー。残念ですがシコシコやります。
ありがとうございました。

592:nobodyさん
09/01/22 16:52:06
sfForm を誰か簡単に説明してください。
これでフォーム周りがよくなったの?

593:nobodyさん
09/01/22 22:02:55

悪くなった。

594:nobodyさん
09/01/23 23:49:18
>>592
うん

595:nobodyさん
09/01/24 21:08:57 BN/V3l3x
blogを作るチュートリアルをやってます。
postとcommentという2つのモジュールがあるやつです。

postのedit画面でcommentの一覧表示をさせてますが、
これと同じ事をadmin generator(? generator.yml を使うやつ)で
できませんかね。

596:nobodyさん
09/01/26 01:23:09
>>595
できるよ
まぁできるってだけで、それが効率いいかどうかは微妙

597:nobodyさん
09/01/29 00:34:41
>>596
どういう方法?

598:nobodyさん
09/01/29 21:43:36 rSa/9joZ
1.0.19の調査中ですが質問させて下さい。

Apacheにて、BASIC認証・SSL・nonSSL
の3つのディレクトリで構成したいのですが、
symfonyに適合させるためには、
webディレクトリ下にディレクトリを作成して、
フロントコントローラを移動するのが
ベストでしょうか?


599:nobodyさん
09/01/29 21:44:00 rSa/9joZ
あげてもうた、ごめんなさい

600:nobodyさん
09/01/30 14:23:56
>BASIC認証・SSL・nonSSL
ここがよくわからん
BASIC認証+SSL
SSL
NonSSL
の三本立て?
どっちにしろSymfonyとは関係なさげ

601:nobodyさん
09/01/30 21:45:58
>>600さん
3本立ての3システムです。
これは、1プロジェクトにしたいです。

Apacheは、ディレクトリ単位ででした
設定(.htaccess等)できないので。
symfonyのwebディレクトリも3ついると
思っています。

間違いがありましたらご指摘よろしくお願いします。
なんか勘違いしてる余寒・・・

602:601
09/01/30 21:47:29
×Apacheは、ディレクトリ単位ででした
○Apacheは、ディレクトリ単位でしか

603:nobodyさん
09/01/31 08:04:46

公開フォルダを3つに分ければ簡単に出来る。

でも同一コンテンツでセキュリティーレベルが違うって考えが
おかしい気がする。



604:601
09/01/31 11:44:52
>>603さん
ご返答ありがとうございます。

具体的には、>>598のやり方で、
よいという事でしょうか?

同一コンテンツではありません。
事例的には、Amazonnとか
商品サイトと、商品注文サイト、会員サイト
の3つでセキュリティレベル違うのと同じです。

605:nobodyさん
09/02/02 18:51:41

その方法だね。
ただ、action内で識別するロジックを忘れるな。



606:nobodyさん
09/02/03 18:04:37 7F1r2xmv
sfPropelPagerで検索結果のページをページングする時
formから来た?hoge=huga......................といっぱいついてくるクエリーはどうしてます?
セッションに保存するのも微妙だし
テンプレートで$_SERVER['QUERY_STRING']か取得してごにょごにょするのもどうかなと。

sfPropelPager自体には無さそうですよね?
sfPropelPagerを拡張してmodel側で$_SERVER['QUERY_STRING']をどうにかする感じでしょうか?

607:606
09/02/03 18:40:10 7F1r2xmv
あ、link_toのoptionにquery_stringっていうのがありますね。
この辺をうまく使う感じでしょうか?

608:nobodyさん
09/02/04 14:13:43
Criteriaだめだな。
簡単なクエリなら作れるけどANDとかORが複雑に絡み合ったりするとお手上げ。
なにがしたいのか意味がわからない。

609:nobodyさん
09/02/04 15:27:40
オブジェクト指向で考えろ

610:608
09/02/04 20:32:27
>>609
例えば
SELECT t_job.*
FROM t_job
WHERE
(t_job.ID IN ( SELECT v_rel_job_area.JOB_ID FROM v_rel_job_area WHERE v_rel_job_area.DISTRICT_ID = 1 ))
AND
(t_job.ID IN ( SELECT t_rel_job_category.JOB_ID FROM t_rel_job_category WHERE t_rel_job_category.CATEGORY_ID IN (1, 5, 6) ))
AND
( (t_job.STATUS IN (1, 2)) OR (t_job.STATUS = 0 AND t_job.ID IN ( SELECT t_rel_job_publish.JOB_ID FROM t_rel_job_publish WHERE t_rel_job_publish.PUBLISH_ID = 1)) )

こんなクエリ作れなくない?
作れるのか?

なんかCriteria::CUSTOMを同じかカラム名でaddすると上書かれて前のクエリ消えるし
addAndですると括弧が変なところについておかしなことになるし

公式見ても複雑なものは生SQLで、みないな事書いてない?

611:nobodyさん
09/02/05 14:30:33
アクションでアサインされた全ての変数を
テンプレート内で、取得したいときって
$sf_context->getActionStack()->getLastEntry()->getActionInstance()->getVarHolder()->getAll()
ってわざわざ書かないとだめ?

612:nobodyさん
09/02/05 14:38:32
>>610
Criteriaがダメなんじゃなくて、そもそもその文抽象化されてないから。

まぁ俺はサブクエリビルドクラス使って対処してるけど。

613:nobodyさん
09/02/06 21:04:13
>>610
上書きされる件はCriterion使えばできない?

614:nobodyさん
09/02/07 02:38:32
>>613
使い方おしえてやれよ…

615:nobodyさん
09/02/10 10:59:01 HED7VAZr
symfony test:unit で、ファイル名まで指定して単体で実行すると問題ないが、まとめて単体テストを実行するときに255か返ってくる、
とい問題が起きました。どこでエラーになっているかを表示、あるいはログに記録する方法はあるでしょうか?

616:nobodyさん
09/02/10 20:29:08
訳あってsymfony1.0使っているんだけど、
sfValidatorManagerの拡張クラスを作って、
それをValidate実行時に使わせることってできる?

617:nobodyさん
09/02/11 20:07:05
できるよ

618:nobodyさん
09/02/12 13:08:50
ほほー。どこになんて書けばいい?


619:nobodyさん
09/02/12 17:37:15
自分で考えろ

620:nobodyさん
09/02/12 22:36:13
どこに何を書くも糞も無いだろう。必要なクラス持ってきて1.1↑と同じように書くだけ

621:nobodyさん
09/02/12 23:54:55
1.0、1.1、1.2みんなはどれ使ってるの?

なぜか1.0のメンテナンス終了が2010年の1月で1.2のメンテナンス終了が2009年の11月なのでどちらで作っていくべきか迷ってるんですが。。。どれが良いと思いますか?

622:nobodyさん
09/02/13 02:57:30
>>621
最近始めたので、1.2使ってる
なので、どれがいいかは分からない

1.2でルーティング周りのクラスが追加されていて、特にsfRouteCollectionを使用すると、より簡潔にrouting.ymlを記述出来るようなので、
これから始めるのなら、1.2の方がいいんじゃないの?


623:nobodyさん
09/02/14 03:58:23
英語サイトの情報見れないなら1.0が無難。
そうでないなら1.2。

624:nobodyさん
09/02/14 19:37:59
PHPが5.1なので1.1使ってる。
同じような人、結構いそうな気がするけど。

625:nobodyさん
09/02/15 02:18:10
あれ、5.1って致命的なバグがあって使わないようにとかアナウンスされてなかったっけ。
どんなバグだったか忘れたけど

626:nobodyさん
09/02/15 02:23:40
cent osが5.1じゃなかったっけ?

627:nobodyさん
09/02/15 02:29:06
そんなもん入れ替えろよ…

628:nobodyさん
09/02/15 04:25:24
PHP5.1を使い続ける必要性があるのか?
単純なパフォーマンスでも5.2系の方が優れてるはず

629:nobodyさん
09/02/15 12:28:12
1.2を使っています。

メール送信を実装しようと思ったのですが、
$mail = new sfMail();
とすると、
Class 'sfMail' not found
になってしまいます。
なにか設定が必要なのでしょうか?

630:nobodyさん
09/02/15 13:09:51
>>629
compact10

631:629
09/02/15 13:21:32
>>630
なるほど。sfMailはなくなったんですね。
ほかの方法を調べてみます。

632:nobodyさん
09/02/15 13:34:25
>>627,628
勝手にサーバー環境を変えることが出来ない仕事ってのもあるんですよ。
スレ違いすんません。


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