2013年01月WebProg62: symfony PHPフレームワークpart2 (440) TOP カテ一覧 スレ一覧 2ch元 削除依頼
一番汚いコードでHello Worldを書いたやつが勝ち (217)
Blog/Wiki関連技術総合 (351)
PHPで作られた有名サイトってあるの? (702)
☆ショッピングカートのCGIを作りたい!Perlで☆ (511)
自作CGIを評価するスレ (667)
tDiaryスレッド その1 (432)

symfony PHPフレームワークpart2


1 :2010/03/17 〜 最終レス :2013/01/16
前スレ
フランチョスとsymfony
http://pc11.2ch.net/test/read.cgi/php/1201177567/
1.x系公式
http://www.symfony-project.org/
symfony reloaded(2.0) まだプレビュー版
http://symfony-reloaded.org/

2 :
問題人物リスト
tukimiya@ディノ
massie@アシアル

3 :
同じビルに入ってるウノウに技術力で完璧に負けてるディノw

4 :

既に、ディノのスレになってるわ。
もう止めようぜ。


5 :
ディノスレは俺が責任を持って埋めておいたぜ。

6 :

doctrine Nest Relationsにバグがあるな。
最悪だ。

7 :
DoctrineってSymfony独自のO/Rマッパーですか?

8 :
>>7
独自ではないよ。
http://www.doctrine-project.org/documentation/manual/1_0/ja/

9 :
独自ではないが、symfonyプロジェクトチームが開発支援

10 :

backendでfrontendのモジュールそのまま使用したいと思うのですが、
frontendのソースをそのままコピーするのは避けたいと思います。
何かいい方法はありませんか?


11 :
ロジックをクラス化してlibに入れれば使えたと思う

12 :
共通のモジュールをlib/actionに入れて、backendやfrontendはそれをextendして書くとか。
OpenPNEでそういうことやってる

13 :

OpenPNEってSymfony2化するんかなぁ。
また、作り直すの大変だね。

14 :
2系にしないならフレームワークなんか使うなよって感じだが

15 :
2系に作り直すのは簡単に出来るのか?

16 :
symfony 1.3.4 and 1.4.4でたよ〜

17 :
Symfony2っていつでるのよ?

18 :
>>17
アルファ版なら前から出てるよ。
漏れはベータぐらいになったら勉強し始める予定

19 :
symfonyの1.4落として遊んでる初心者です。
Webでも書籍でもORM周りの解説がどれもPropelばかりで
Doctrineの解説がほとんど無いんですけどー!
あと、symfonyコマンドって前と1.4では変わってたりする?
古い解説サイトのコマンドが動きませんよー!

20 :
おかしい。blogが更新されていない。
http://www.symfony-project.org/blog/
>>19
http://www.doctrine-project.org/documentation/manual/1_2/ja

21 :
>>19
つttp://www.symfony-project.org/jobeet/1_4/Doctrine/ja/

22 :
ユーザー会に勉強会告知来たな〜

23 :
あ、あと前回の勉強会だけど浜松町でやるやつは良かったよ。
初心者にも優しい感じだった。

24 :
新しくSymfony本が出る予定とかないんでしょうか?
Doctrineについて書かれている本を読んでみたい。

25 :
windows環境で、スキーマからモデルを作ろうとしてるのですがうまくいきません。
なんかとんでもないパスを見てるようなのですがどうしてでしょうか?
D:\www\symfony\testProject>php symfony doctrine:build --model
>> doctrine generating model classes
>> file+ C:\Documents and Settings\ken\L...\Temp/doctrine_schema_91400.yml

No yml schema found in C:\Documents and Settings\ken\Local Settings\Temp/doctr
ine_schema_91400.yml

26 :
あ・・けんちゃん♥ そこは違うわ・・

27 :
今、Jobeetのチュートリアルやってるんだけど
symfonyムズいねぇ。

28 :
kenの部分は書き換えてあります、念のためw

29 :
あたし、けんちゃん(はあと)のために、doctrine:build-modelヘルプ書いちゃう
-----
The task read the schema information in config/doctrine/*.yml
                      ======================
from the project and all installed plugins.
-----
config/doctrineの配下に置いてみたら?

30 :
schema.ymlって普通にやってればconfig/doctrineの中に生成されるよね。

31 :
index.phpからactions.class.phpまでの流れをステップインで見てみたが。
2時間やっても終わらなかったんであきらめた。
これは実務には使えんな

32 :
アホすぎワロタ

33 :
なんでsymfonyは何時までたってもCakePHPに勝てないのですかぁ?

34 :
勝負してないからじゃないかな

35 :
うわ、このスレにまでcake厨が押し寄せてきたのかよ

36 :
>>34
勝負しないでどうすんだよ。
やるからにはNo1目指してるだろうよ。
>>35
Cake厨じゃねーよ。
symfonyがCakeにユーザー数や実績で負けてるのは
周知の事実だろ。

37 :
スレの伸びからして差は歴然

38 :
実績はcakeよりsymfonyの方が出してるんだけどな。
つーかろくなSNSツールがでなくてOpenPNEスレでも暴れてると思ったら、
このスレでも絡んでくる時点でCake厨だろw
無自覚な分たちが悪いな

39 :
OpenPNEって「ろく」なSNSか?
SymphonyでSNS作るとああなっちゃうのか?

40 :
誰かCIとかCakeでも挑戦すればいいのに。
greeはethnaだけど、greeという実績があるから開発現場でethna最強ってわけでもないでしょ

41 :
ネタが無いだけで、スレ見てるやつはけっこういるんだなw

42 :
>>36
なにをもってしてNo1かっていう尺度の問題だろ。
ユーザー数が多いからっていいフレームワークとは限らんし。

43 :
>>42
ユーザー数は十分な尺度だろ。
実績も十分な尺度だ。
逆に何がある?

44 :
>>43
実績は十分な尺度だと思うよ。(そしてsymfonyも十分実績ある)
ユーザー数は微妙なところだな。「初心者向けフレームワーク」
と銘打てばユーザー数は重要になるだろうけど、symfonyはそういう
ところを目指してるわけじゃないと思うし。

45 :
openpneってsymfony使って退化したよな

46 :
ま、Cakeの方にも書いたがCakeのソースはなんつーか、下品に感じるわ。
設定より規約、というよりOOPよりarray、みたいな感じ。

47 :
EC-CUBEを触ったあとに戻ってくるとソースの綺麗さに感動する

48 :
それはsymfonyに限ったことじゃないだろう?

49 :
wordpress (ry

50 :
しっかし流行んねースレだなw

51 :
Symfonyを触ってみたいと思っているのですが、2.0からがらっと変わるのでしょうか?
今から1.4とかを勉強して、それが2.0に行かせるでしょうか?

52 :
2.0は別物だと思っていい。
どっちで勉強するかは今の51さんのレベル次第。
元ソース読んでいける&時間あるなら2.0。
日本語の情報とか本とかないと無理、っていうなら1.4かな。

53 :
やっぱり別物なんですか・・・ありがとうございます
おとなしく2.0がでて情報がでてくるのを待つとします

54 :
仕事でもあと1年は1.4かなあ。だいぶ変わってるので不安も多し。

55 :
symfony(& Doctrine)を公式サイトで勉強中です。
クエリーを作成するのに、「$this->createQuery('a')」で始めているものと、
「Doctrine_Query::create()」で始めているものの2パターンあるのですが、
違いは何でしょうか?

56 :
>>55
HogeTableクラス内で $this->createQuery("a")
モデルの外(action)or違うテーブル・モデル内でDoctrine_Query::create("a")別解としてDoctrine::getTable("Hoge")->createQuery("a")

57 :
>>55
個人的には・・・
$table->createQueryは、主にそのテーブルのレコードをモデルオブジェクトとして得たいときに使う。
実際、自動的にselect * from テーブルがSQLに付加される。
Doctrine_Query::create()は、複数のテーブルを使って集計した結果を得たいときなどに使う。
こちらはselectも明示的につけないといけないので、
まっさらな状態からSQLを構築できる。

58 :
symfonyって新規開発にしか使えないですよね。

59 :
出来ると思うよ。

60 :
>>59
既存のDBがあっても使えますか?

61 :
できると思うよ。

62 :
>>60
既存のDBが正規化されてればほぼ大丈夫じゃないかな。
スキーマからmodel作るときに一緒にデータ消しちゃわないように注意してね

63 :
お前等、自信無し無しだなー
既存のDBがあっても問題なくつかえるって。

64 :
日本でsymfonyが使われてないのって、やっぱり英語力のなさが原因かな?

65 :
>>64
日本語情報とソース読みだけで開発には支障ないから英語力は関係ないと思うけど…。
大手はsymfony使うぐらいならJavaを使い、中小は鯖環境のせい(1.0とか1.1の頃は
PHP5使うには専鯖かxreaか?という感じ)でそもそも選択肢に入れてなかった気がする。
特にPHP5必須というのが依頼主にも業者にも評判悪かった気がする。
敢えて言えば安定性を好む国民性?

66 :
propelでスマートにテーブル分割する方法ないかな…
ユーザIDベースで分割したいんだけども。

67 :
>>65
未だにPHP5で躊躇しますか・・・
そもそもフレームワークを使うという概念自体が普及していない気もしますねえ。

68 :
symfony勉強会の参加者4人ぽっちワロタ
CakePHP勉強会と大違いだなw

69 :
>>68
Yiiなんかどうなるんだよ。けどな、YiiマスターするともうCakeには戻れんな。

70 :
symfonyプロジェクトを作ってみました。
http://127.0.0.1 ならアクセスできるのに
http://192.168.1.xx(自アドレス) だと表示されません。
どうすれば見れるようになりますか?

71 :
多分PHP関係無い
ファイアーウォールとかhttpサーバーが変

72 :
httpサーバの設定は、本家Jobeetの通りなんですが、
どこを修正すればいいですか?

73 :
知らんがな

74 :
知らんとか、多分とか、理由は簡単だろ?!
symfony 使いはどんだけレベル低いねん!!





まぁ、理由は俺も教えんけどなー

75 :
遅くなりましたが自己解決しました^^;

76 :
http://www.symfony-project.org/api/1_4/JavascriptBaseHelper
このページ開くと all is good とかalertでるんだけど、
これクロスサイトスクリプティングじゃないのかな?w

77 :
ソース見たら↓があるからこれで出てるだけじゃね
<br /> Example:
<br /> <?php echo javascript_tag("alert('All is good')") ?>
<br /> => <script type="text/javascript">alert('All is good')</script>
<br /> <?php javascript_tag() ?>alert('All is good')<?php end_javascript_tag() ?></p></p>
<div style="clear: both;"></div>
</li>

78 :
1.4でモデルから、アクション→テンプレートの結果を文字列として
取得したい場合はどうしますか。


79 :
>>78
アクションじゃなくてコンポーネントにして、partialヘルパーをロードしてget_component

80 :
現に、アクションで書いている内容をpartialにコピーするのは
間違えが起きる気がする。
他にいい方法はありませんか?

81 :
>>80
コンポーネントならロジックの書式はアクションとほぼ同じだけど…
中身だけじゃなくてレイアウトとかも含まれて良いならモデル内でfile_get_contents('http://url.to.app/module/action')をやるとか

82 :

コンポーネントで呼び出すのと、file_get_contents()を比較すると
やっぱり、file_get_contents()の方がオーバーヘッドですよね。

83 :
取り急ぎ、コンポーネントで対応しました。
ありがとう!

84 :
symfonyってJAVA覚えるより難しくない?

85 :
symphonyならJavaより難解かも

86 :
じゃあJAVAするかなー。symfony覚えたところで難易度の割りに…って感じだし。
JAVA覚えたほうが将来的にもよさそう。ただ派遣の仕事しかなさそうだけど。

87 :
symfony>>>Java>>>>>>>>>>>>cakePHP>>>>>>>>>PHP

88 :
わざとtypoしたのに

89 :
typoする理由は何だったんですか?

90 :
曲のほうを差してたんでしょ。
てかどっちかっていうとsymfonyのがtypoなんだがw

91 :
てかJavaだけ覚えるよりはsymfony覚える方が難しいかもしれんが、
Java+Javaの糞フレームワーク覚えてウェブアプリ作るよりは
symfonyのが間違いなく簡単。

92 :
symfonyは難しいというより、日本語ドキュメントがしっかりしてないだけだな
なぜ誰もちゃんとしたsymfonyの本出さないんだ?出したら売れるだろ

93 :
92は正解。

94 :
>>92
え?しっかりしてるじゃん。本家のサイト内に日本語のjobeetがある

95 :
よくわかるエクセルみたいなもの

96 :
その手の本を欲しがるのはだいたい共用サーバ使いでsymfony動かすのが
そもそも大変だし、専用サーバ使う人は公式ドキュメントで十分だし。

97 :
公式ドキュメント十分じゃねえ!
結局ソース追いかけてprintf良くやる

98 :
10日でおぼえるsymfonyでないかなぁ〜

99 :
printfとか・・・
PDTとデバッガ使えよ

100 :
var_dumpが基本だろ。

101 :
YiiならCVarDumperがある。完璧ではないが、
Yii:trace(CVarDumper::dumpAsString(ほげほげ)); が重宝する。

102 :
timkonyのルーティングむずすぎ

103 :
jobeetの日本語はわけわからんな
1.4までは、Fabienのフレームワーク作る勉強にすぎん
本番は2.0からってことで、2.0の日本語ドキュメントでてから始めようかsymfony
っていうよりフレームワークを

104 :

Fabienいい奴だよなぁ〜

105 :
あれでワケ分からんなら何もできんな

106 :
おまいらもうsymfony2で開発しているのかよ?

107 :
いや〜まだまだ先でしょ。
自分は2年後くらいを想定。
1.4.*を使い続けるよ。積み重ねた実績あるし安定しているしね。
2はだいぶ変わってるから実戦投入は怖い。

108 :
戦後教育は文部省と日教組の不毛のイデオロギー対立により本来の教育を蔑ろにし、主役である子供達を放置してきた。最初にその犠牲となっ
たのがいわゆる「団塊チルドレン」と呼ばれる世代である。彼らは歪んだ「権利・自由・平等」を教えられ、「責任・義務」を教えられないま
まに育った。日教組は彼らに経済と言う物差ししか与える事ができず、信念・哲学・自尊心という価値からは程遠い「金と物」にしか価値を見
出せない貧しい精神を育んだのだ。この事は「失われた十年」と呼ばれる90年代に於ける彼らの生き様に大きく影響した。
子供は幼児期に於いて父性と母性の対比の中で社会性を獲得する。「亭主元気で留守が良い」と言うコピーがはやったが、父性不在の家庭はや
がて「団塊チルドレン」の社会性の無さの原因となった。当時オバタリアンと呼ばれた世代は、戦後処理もろくに済んでいないのに平気で海外
へ出かけ、金に飽かせてブランド商品を買い漁り、傲慢さを世界中にまき散らした。彼らの世代に特徴的であるこの品性・品行の悪さは、後の
世代のライフ・スタイルにまで影響を与えた。それ以上に、欧米諸国が未だに日本人を蔑視し、アジア諸国が不信感を持ち続けている事への鈍
感は不幸でさえある。団塊の世代が戦後の営みの中で経済力に見合う人生観や価値観、広義の品性・品行やモラルを獲得していれば日本社会は
ここまで歪まなかっただろう。
90年代は「失われた十年」と呼ばれている。経済と言う物差ししか持たなかった我々は、旧来の発想で経済的な豊かさを追求し続けたが故にバ
ブルの崩壊をもたらした。その時不幸だったのは「我々は何処へ行くのか?」と言う根源的な迷いに気付かなかった事だ。この事が90年代を無
為に浪費した最大の原因である。団塊の世代は欧米を追う間は素晴らしい能力を発揮したが、追いついた後のビジョンを描く想像力が欠如して
いた。彼らの責任では無い。社会が彼らにその様な能力を要求しなかったのだ。村上龍の「あの金で何が買えたか」が売れたと聞くが、悲しい
のは未だにその程度の次元でしかバブルを検証できないメンタリティーの低さである。検証すべきは「何故我々が貧しい価値観しか持ち得なか
ったのか」と言う事である筈だ。まさしく教育の問題である。冒頭で述べた様に信念・哲学・自尊心を育む努力を怠らなければ、もっと違った
社会があった筈である。

109 :
doctrineのモデルについて
モデルメソッドを作成するときに通常のクラスにメソッドを作るのか、
****Tableのクラスにメソッドを作るのか悩みます。
テーブルに展開するようなデータを取得するときに****Tableクラスにメソッドを
作ると聞いたのですが、一件だけ取得するようなものはどちらにメソッドを
加えますか?


110 :
生PHPでつまずいたのでフレームワークを検討中です。
質問なのですが、symfonyでフォームからファイルアップロードする場合、
ファイルサイズ20Mとかになっても正しく対応できますか?
また、「50Mまで」などの制約をつけることは出来ますか?

111 :
つphp.ini

112 :
php.iniってレンタルサーバでも変更できますか?

113 :
無理でしょ。
つホスティング or おれおれホスト

114 :
ini_set memory_limitでぐぐれ

115 :
.htaccessを使う方法とか、いろいろあったんですね。
勉強になりました!

116 :
memory_limitぢゃなくて、post_max_sizeぢゃないの?

117 :
upload_max_filesizeという説もあるよ。

118 :
いずれにせよSymfonyと関係ない質問だ

119 :
post_max_size と upload_max_filesize は、ini_setできないっぽい。。
memory_limit でほんとに動作するの??

120 :
だから php.iniだって。

121 :
質問ですが、symfonyを使用した場合idカラムって必須ですか?
既存DBを使用する場合ってPKが既に決まっているかと思うのですが、、
idをPKにしなかったら何か不具合とかありますか。
ぐぐると、idを使用しないとConvention over Configurationに反す
るとかでてきたのでカラムを追加すべきなんだろうか。。

122 :
>>121
必須でもないし不具合もないよ
あったほうがそれっぽいってだけ

123 :
>>121
主キーをxxxx_idではなくidにしなけばならないのかを尋ねているのであれば、>>122のとおり
主キーは単一カラムで構成させなければならないのかを尋ねているのであれば、複合キーでも問題ないとのこと
後者について、The symfony and Doctrine book(1.2)より引用
---
識別子によるfind
Doctrine_Table::find()メソッドは主キーでレコードを見つけるためにあります。
サロゲートもしくは複合主キーを持つ両方のモデルに対して機能します。
$user = Doctrine::getTable('User')->find(1);
$userGroup = Doctrine::getTable('UserGroup')->find(array(1, 2));
ttp://www.symfony-project.org/doctrine/1_2/ja/06-Working-With-Data
---
propelはシラネ

124 :
>>122,123
なるほどー。ありがとうございます。助かりました。

125 :
Jobeetチュートリアルやってます。
php symfony doctrine:build --all --and-load
の説明が、「フォーム、フィルター、モデルを生成し、データベースを削除してからすべてのテーブルを再作成します。」
とありますが、スキーマにカラムを追加しても、実際のDB(MySQL)に反映されません。
先にテーブルのドロップを手作業でやらないといけないのでしょうか?

126 :
すいません、反映されてました><

127 :
モジュール名を途中で変えたい場合、ちまちまいじって頑張るしかない?

128 :
>>127
頑張ってください

129 :
初心者ですいません。
Jobeet見てフォーム作ってみたんですが、入力した日本語が???になってしまいます。
DB(MySQL)はutf8で作って、layoutファイルのlangも'ja'に変えてあります。

130 :
コマンドラインでやったらMySQLがオカシイみたいです。
失礼しました!

131 :
sfConfig::get('sf_upload_dir')が、
内部パスだったり外部パスだったりするのは仕様ですか?

132 :
キャッシュクリアしたら再現しなくなった。2日ぶりに寝よ。。。。

133 :
アクションやコンポーネントをcronジョブやシェルスクリプトから呼び出したい場合は
どうすればいいですか?

134 :
フォームから大きなファイルのアップロードするときに、
プログレスバーを表示したいのですが、
どのようにすれば実現できますか?

135 :
ちょっといじってみてるんだけど
enablePlugins('sfDoctrinePlugin')
してると Article とか User とか使いたい名前のフォームを
sfDoctrinePlugin\test\functional\fixtures\lib\form\doctrine
にロードしに行ってしまう。
これって別の名前使うしかないんですかね?

136 :
環境は apache, mod_php 5.3, symfony 1.4.6 です。

137 :

Symfony2はもう使えますか?
コンソール使えるようになった?

138 :
Jobeet19日目の、国際化とローカライぜーションをやってるのですが
何度見直しても日本語訳が表示されません。
みなさんはちゃんとできたのでしょうか?
あと、messages.xmlを「php symfony i18n:extract」コマンドで更新するたびに
訳した<target>の中身がクリアされちゃうのは仕方ないんですかね。。。
1個追加するだけで、全部やりなおしなのはかなり面倒です。

139 :
最新のZendに、Autoloader.phpが含まれてない。。。
検索機能使えなくなっちゃう?

140 :
質問です

141 :
Autoloader.phpの場所勘違いしてた><
ちゃんとありました。

142 :
ダウンローダーを作ってるのですが、
中身にlayoutの内容が含まれてしまいます。
action内で、viewを無効化すればいいと思っているのですが
どうすれば無効化できますか?

143 :
action内で
return sfView::NONE;

144 :
viewの無効化できました!
ネットのサンプルいろいろ見て試していますが、
どうやってもダウンロードじゃなくて、ブラウザ内で開いてしまう。。。
しばらく格闘しそうです。。

145 :
ひんと
$this->getResponse()

146 :
いまこんな感じ(説明のためパスチェック等省いてます)なのですが、
IE、FF、Safariでmp3をダウンロードしようとすると、ブラウザ内で開いてしまいます。。。
public function executeDownload(sfWebRequest $request)
{
$filePath = $request->getParameter('file');
$fileName = 'sound.mp3';
$response = $this->getContext()->getResponse();
$response->clearHttpHeaders();
$response->addCacheControlHttpHeader('Cache-control', 'must-revalidate, post-check=0, pre-check=0');
$response->setContentType('application/octet-stream', true);
$response->setHttpHeader('Pragma: public', true);
$response->setHttpHeader('Content-transfer-encoding', 'binary');
$response->setHttpHeader('Content-Disposition', 'attachement; filename=' . $fileName);
$response->sendHttpHeaders();
$response->setContent(readfile($filePath));
return sfView::NONE;
}

147 :
DBからフィクスチャを作成する方法はありませんか?

148 :
日本語訳、ちゃんとでるようになりました。
message.xmlの文字コードがおかしかったようです。
eclipseから見たら化けてて、修正したらきちんと表示されました。
特に文字コードを変えるようなことはした覚えないんだけどね。。。

149 :
QuickTimeをインストールすると、mp3がダウンロードできなくなるというオチでした。

150 :
すみません、教えてください。
BaseFormDoctrineを継承したformクラスの中で、
getParameter('xxx')を使いたいのですが、
どのようにすればよいでしょうか

151 :
getValue('hoge')でできない?

152 :
sfContext::getInstance()->getRequest()->getParameter('xxx')
ってやればどこからでも使えるでしょ

153 :
view.ymlの国際化ってできますか?
meta language等を、カルチャーに応じて変えたいんだ。
とりあえずpreExecute()で実装しちゃったけど
他に方法があるなら聞いておきたい。

154 :
preExecute()でやると、モジュール増えたとき大変だ。。。
どうやるのが最適解でしょうか?

155 :
filter

156 :
CSRF対策を一時的にOFFにするにはどうすればいいですか?

157 :
>>156
sfForm::disableCSRFProtection();

158 :
「500 Internal Server Error」ページの上書きってどうやってできますか?
/web/errors/error500.phpを設置しても、反映されませんでした。

159 :
/config/error/error.html.php に変更されたようです

160 :
error.html.php の中身を「Test」ってだけにしてみたんだが、
IEだとブラウザの吐く500エラーページになってしまう。。。
FF、Safari、GoogleChromeは問題なかった。

161 :
http://support.microsoft.com/kb/294807/ja
>HTTP 500 応答の実際のテキストを表示するには、Content-Length を 512 バイト以上に設定する必要があります。
マジキチ

162 :
symfony はキチガイ仕様だってばさ

163 :
symfonyはじまったな。

164 :
どう始まったの? Ver2.0の話??

165 :
JobeetとMore With Symfony読んだんですけど、
ほかにも「これは読んでおけ!」っていうのありますか?
>>1にまとめて書いてほしいけど、次スレは何年後か分かんないもんで><

166 :
分からない > チュートリアル
の次は実践だろ。なんか作れよ

167 :
作ったけど、もっとコア部分の理解を深めたいと思って。。

168 :
なんのために?

169 :
>>167
それってソース読むのが一番じゃね?つーか、それに勝るものはないw

170 :
とりあえずプラグインとか自分で作りたいから。
んで将来的には自分でフレームワークを作りたい。

171 :
ソースは時々grepして見てるけど、
もうちょっと全貌というか概略から勉強したいんだよね。

172 :
自分でフレームワークとか四角い車輪すぎるだろ

173 :
自作FWは設計とかデザパタとかOOとか勉強になる
ただ実戦投入してはいけないw

174 :
あとセキュリティ方面の知識も身につくな

175 :
ぶっちゃけいまさらFWつくるのに労力費やすのはナンセンス。
PHPのプログラム的セキュリティもFWの流儀に従ってれば、
たいていは問題ない。
それよりFW使って、みんなを楽しませる、おもしろいサービスつくろうぜ!

176 :
自分で作ったフレームワークでみんなを楽しませる面白いサービスが作れたら最高ですの

177 :
いやーそう妄想するのは楽しいけど、結局、何も出来ないまま終わる・・・
人がやれることは限られてるのだ。時間もね。

178 :
symfony freezeってコマンド名変わった??

179 :
ひょっとしてsymfonyって、mod_rewriteないと使えない?

180 :
使えない事無いけど、mod_rewriteあったほうがかっこ良いURLでサービス出来るね

181 :
win環境で開発して、本番Linux環境に持っていったんだけど苦戦してます。
freezeしようとしたら「Task "freeze" is not defined.」になったので、tar.gzにしてFTPで送って解凍しました。
Autoloadが、sfDoctrineが見つからないって言ったから、自分でpluginsに
SVNでVer1.1とってきたんだけど
>Fatal error: Call to undefined method RecordForm::setupInheritance() in /virtual/myname/myproject/lib/form/doctrine/base/BaseRecordForm.class.php on line 47
というエラーがでます。
Ver1.3-2.0も試したけどエラーでした。
どうしたらいいでしょうか。。。

182 :
初めてだから、どうすればいいか分からないエラーだらけ。
>Fatal error: Class 'sfValidatorSfCryptoCaptcha' not found
Autoloaderがうまく機能してないんかな。。

183 :
svnが失敗してディレクトリ構造ぶっこわしてたみたいです。
plugin下を手動で再配置して直りました。
でもまた新しいエラーが。
>500 | Internal Server Error | sfConfigurationException
>The route "captcha_refresh" does not exist.
ローカルでは動くのに、なんでこんなにエラー出るんだろ。。。

184 :
ふぅ。またもsvnがおかしなことしてくれてたぜ。
今度はCaptchaImageがxになるぜ!まったくなんてヤローだ。

185 :
Jobeet12日目のアドミンジェネレータ、誰か訳してくれww
edit_mode オプションは %%is_activated%% %%JobeetCategory%% -
%%company%% (%%email%%) is looking for a %%=position%% (%%location%%)
max_per_page: 10 sort: [expires_at, desc] batch_actions: _delete:
extend: object_actions: extend: _edit: _delete: ~ actions:
deleteNeverActivated: { label: Delete never activated jobs }
table_method: retrieveBackendJobList filter: display: [category_id,
company, position, description, is_activated, is_public, email,
expires_at] form: class: BackendJobeetJobForm display: Content:
[category_id, type, company, logo, url, position, location,
description, how_to_apply, is_public, email] Admin: [_generated_token,
is_activated, expires_at] edit: title: Editing Job "%%company%% is
looking for a %%position%%" new: title: Job Creation

186 :
しょうがなく英語版軽く見てみたけど、日本語訳したやつ適当すぎだろww
前半の説明9割飛ばしてるし、後半も足りねー。
どーりで何度読んでも意味が分からないわけだ。
日本語訳アリは『○』
○ Backend Creation
× Backend Modules
× Backend Look and Feel
× The symfony Cache
× Backend Configuration
× Title Configuration
× Fields Configuration
○ List View Configuration
○ Form Views Configuration
× Filters Configuration
× Actions Customization
× Templates Customization
× Final Configuration
○ Final Thoughts

187 :
Ver1.2にしたら出てきた!

188 :
何度かスキーマ書き換え&Doctrineジェネレータ使っただけで、自分でコードを書いてないのにエラーになる。
>Fatal error: Call to a member function getId() on a non-object in
>showSuccess.php on line 5
List,New,Editは問題なし。Showのみエラー。なんででしょう??

189 :
./symfony cc

190 :
キャッシュはクリアしてます。
ccはキャッシュが残ることあるんで、
cacheディレクトリ以下全削除もしました。

191 :
モジュール作った後にスキーマ書き換えると、
テンプレートが更新されないのがイヤなので、
module以下のactionとtemplateを削除して
再度モジュール生成、なんてことをしたのがマズかったのかな。。。

192 :
もう少し分かってきたことを書きます。
action内では、getId()に成功して正しい値でした。
> public function executeShow(sfWebRequest $request)
> {
> $this->response = Doctrine_Core::getTable('response')->find(array($request->getParameter('id')));
> $this->forward404Unless($this->response);
># file_put_contents("d:\\debug.txt",$this->response->getId());
> }
しかし、テンプレート内でisset($response)するとfalseになります。
> Notice: Undefined variable: response in showSuccess.php on line 8
>
> Fatal error: Call to a member function getId() on a non-object in showSuccess.php on line 8


193 :
別名でモジュール作り直しても、同様にshowでエラーになります。。。
スキーマの問題でしょうか。。。
>php symfony doctrine:generate-module --with-show
> --non-verbose-templates frontend response2 response

194 :
responseって名前がだめなんじゃね?変数の名前変えてみたら?
$this->response = Doctrine_Core::getTable('response')->find(array($request->getParameter('id')));

$this->resObj = Doctrine_Core::getTable('response')->find(array($request->getParameter('id')));
とか。
テンプレート側も修正が必要になるけど置換一発で行けるでしょ

195 :
補足。
action,componentのクラス内で$this->requestと$this->responseはsymfonyが使う既定のプロパティだから、
$this->requestと$this->responseは設定してもビューには渡されないんだ。
参考までに
http://trac.symfony-project.org/browser/branches/1.4/lib/action/sfComponent.class.php

196 :
テーブル名から他の名称まで、responseを別名に変えてうまくいきました!
感謝です!!

197 :
JobeetJobやってるんですが、カテゴリの表示順を変えるにはどうすればいいでしょうか?
sfWidgetFormDoctrineChoiceの中もちょっと見たのですが分かりませんでした。
実運用の時には、「リストの2番目に新しいカテゴリ名を追加したい」なんていう
変更はよくあると思うので、何かやり方はあると思うんですが。。。

198 :
メアド欄だけのフォームを作ろうと思っています。
スキーマを作ってDBまで作成するのは大げさだと思うので
BaseFormDoctrineを派生させて、自前でフォームを作ろうとしたのですが
アクションでnew MyformForm()すると失敗します。
>Fatal error: Class 'Myform' not found in
>C:\MyProject\lib\vender\symfony\lib\plugins\sfDoctrinePlugin\lib\form\sfFormDoctrine.class.php on line 39
こうゆうやり方はNGなんでしょうか?

199 :
とりあえず、テンプレートに手作業でFORMタグ書いて対応しました。
ところで、sfValidatorEmailが、アドレスに「"」「,」「:」「\n」なんかがあっても
許容しちゃうんだけど、みんなこのまま使ってるの??
俺は怖いから書き換えたけどね。

200 :
「new MyformForm()」じゃなくてテンプレート内の「echo $form」で失敗してるようでした。
ひょっとして、モデルも作らないとダメってことですか?

201 :
継承元がBaseFormDoctrineだとmodelも必要になりそう。

202 :
BaseFormからextendして、DBに何か保存するならsaveメソッドの中で直接何か書きなはれ

203 :
sfValidatorSchemaCompare も sfValidatorEmail等 も、バリデート失敗時は「Invalid」が表示されますよね。
普通は国際化して、「入力が正しくありません」などに変えると思います。
新規登録画面でパスワードを2回入力させて、そのチェックに sfValidatorSchemaCompare を使っているので、
失敗時には「入力が正しくありません」じゃなくて「パスワードが一致しません」にしたいんです。
なんとかエラーメッセージを区別できないもんでしょうか?
ソースを見た感じ、"throw_global_error"オプションを設定して、自分でcatchしてハンドリングすればできそうな気もしているのですが
どこでどうハンドリングすればいいのか分かりません。
sfValidatorSchemaCompare.class.phpの117行目の「$error = new sfValidatorError($this, 'invalid', 」の
'invalid'を書き換えればひとまず対処できますが、sfValidatorSchemaCompare を他の用途で使うときに
適切でないエラーメッセージになってしまうので、ソースを直接いじるのは遠慮したいです。
どのように対処すればよいでしょうか?

204 :
コンストラクタの$messageで変更できました。
長々と失礼しました。

205 :
コアを書き換えるなよ・・・

206 :
今更知ったけど、netbeansってsymfony対応してたんだな
http://netbeans.org/features/php/index_ja.html
http://netbeans.org/images_www/v6/9/screenshots/php.png

207 :
コマンド実行が楽そうやね。
次のプロジェクトはNetbeansで作ってみるかな。

208 :
Eclipseでやると、別窓でコマンド叩く用のシェルと自前のチートシートをエディタで開いてないとダメで、
スキーマ書き換えると、lib下やらをリフレッシュしないといけないから
毎度毎度面倒なんだよね。

209 :
コマンドはExternal Toolsでいいだろ

210 :
ExternalToolsはリフレッシュもしてくれるんだねぇ。便利。
php symfony doctrine:build --all --and-load --no-confirmation
php symfony doctrine:data-load
php symfony cc
このへんはいけるけど、
symfony generate:module frontend hoge
なんかは対応できないよね?
スレチだけど。

211 :
>>210
${string_prompt}

212 :
便利すぎるだろ。。。

213 :
自前で簡易キャッシュ機構作りたいんですけど、
レイアウト有り/無しのhtmlをファイルに保存するにはどうしたらいいですか?
wgetで取って保存、ってのは無しでお願いします。

214 :
それは自前で作るじゃなくて作ってもらうって言うんだ

215 :
いや、ヒントだけでよかったんだよ。
いま開発環境ないPCだけど、Renderフィルター覗けばなんか分かりそうな気がしてきた。

216 :
forward404Unless()で404エラーページに飛んだとき、
prod環境でも第2引数を画面に表示するにはどうすればいい?

217 :
初心者ですいません。
Table:
columns:
id:
name:
のように定義した状態で、
executeCreate内でnameフォームの値を取得するのに「$request->getParameter('name')」や「$form['name']->getValue()」
としてみたのですが、値が取得できません。
フォームの値を取り出すにはどのようにやればいいのでしょうか?

218 :
$requestArray = $request->getParameter($form->getName());
$requestArray['name']
で取得できたんですけど、毎回こうやらないとダメなんでしょうか(汗)

219 :
leftJoin時のSQL発行回数について質問です。
SQL1回の発行で済ませて欲しいのに、2回実行されているようです。
なぜでしょうか?
#schema.yml
User:
 columns:
  id:
  name:
 Thread:
  local: id
  foreign: user_id
  type: many
Thread:
 columns:
  id:
  user_id:
 relations:
  User:
   local: user_id
   foreign: id
   type: one


220 :
#action.class.php
public function executeIndex(sfWebRequest $request)
{
 $this->thread = Doctrine_Core::getTable('thread')
  ->createQuery('t')
  ->where('t.id',$request->getParameter('id'))
  ->leftJoin('t.User u')
  ->execute();
}
#indexSuccess.php
お名前は<?php echo $thread->getUser()->getName() ?>
似たような話題で、http://blog.asial.co.jp/591 も見てみたのですが、
バージョン違いなのか全く動きませんでした。

221 :
>>220
 $this->thread = Doctrine_Core::getTable('thread')
  ->createQuery('t')
  ->where('t.id',$request->getParameter('id'))
  ->leftJoin('t.User u')
  ->execute();
 $this->thread = Doctrine_Core::getTable('thread')
  ->createQuery('t')
  ->where('t.id = ?',$request->getParameter('id'))
  ->leftJoin('t.User u')
  ->fetchOne();
に変えたらどう?

222 :
fetchOne()に変えて、$thread['User']['name'] で取得できました!
SQLも新しく発行されていないようです。
ただ、$thread->getId() の構文が使えなくて $thread['id'] に全部書き換えないといけませんけど><

223 :
サンプルに合わせて言い方変えちゃいましたけど、
実際はfetchArray()で取得して、foreach()でループさせました。
とりあえずうまく行ったようです。

224 :
$form->isValid()に失敗したとき、失敗の内容はどうやって取得できますか?
具体的には、CSRFチェックに引っかかったとき、自動的にhoge/newにリダイレクトさせたいんです。

225 :
>>224
sfErrorSchemaにでも、入ってるんじゃないの?
$form->getErrorSchema()だったかな?

226 :
特定のユーザーを、強制ログアウトさせるにはどうすればいいですか?

227 :
>>226
myUserの初期化メソッドで通常の処理の後にIDみて強制ログアウトする処理を足す。

228 :
>>227
すいません、そうゆう意味じゃないです。
たとえば、管理者が荒らし行為真っ最中のユーザーを見つけたら、
そいつのセッションやらクレデンシャルやらをクリアしてログアウトさせることをイメージしてました。
セッションにユーザーIDを入れておき、
全セッションファイルをトラバースして、
「id|i:(\d)+:123;」みたいにマッチしたファイルを削除すればいいかな?
symfony関係なくなっちゃうけど。。。

229 :
Doctrineで書いたコードの、selectがうまく反映されません。
count()をやめて、execute()にして返ってきたDoctrineCorectionをcount()すると正しい件数が取得できます。
でも重いので、SQLのcount()でなんとか処理したいです。
public static function getLoginDays($id)
{
 return LoginTable::getInstance()
  ->createQuery('l')
  ->select('DATE_FORMAT(l.created_at,"%Y-%m-%d") as days, count(*) as num')
  ->where('l.user_id = ?',$id)
  ->groupBy('DATE_FORMAT(l.created_at,"%Y-%m-%d")')
  ->orderBy('days')
  ->count();
}
#symfonyが発行したSQL
SELECT COUNT(*) AS num_results FROM log l WHERE l.user_id = '1' GROUP BY DATE_FORMAT(l.created_at, "%Y-%m-%d");
結果、日付の区別無しに、ログの総数が返ります。

230 :
恥ずかしいミスした!
DoctrineCorectionは、DoctrineCollectionの間違いでした^^;

231 :
>>228
それならis_active int(1)とかでフラグ項目をDBのユーザーテーブルに持たせておいて、公開側では
myUserの初期化で$dbuser->getIsActive()の値を調べて強制ログアウトさせればいいんじゃない?
強制ログアウトさせたいユーザーは、管理者が裏画面からis_activeの値を更新して強制ログアウト側に
落とす。
username password is_active

232 :
ごめん、途中送信。
username password is_active
testuser ****** 1     ⇒ログインできる
nguser ****** 0     ⇒ログインできない&強制ログアウト

233 :
myUserにコンストラクタ定義すると、深い迷路に迷い込めそうな予感。。。

234 :
ちょっと語弊がありました。
グループ化された日付が1つだけの場合、グループ化されていないままのレコード総数が返ります。
日付が複数の場合、正しい値が返ります。

235 :
分かったら当たり前だけど、myUserのコンストラクタは
 public function __construct(sfEventDispatcher $dispatcher, sfStorage $storage, $options = array())
 {
  parent::__construct($dispatcher, $storage, $options);
 }
って書かないとダメなのね。__construct()とだけ書いてちょっと泥沼になった。

236 :
テンプレート内でvar_dump()すると、指定した変数以外もすんごい量がダンプされるんですけど
$thisとかも見に行ってるんですか??

237 :
>>236
変数といってもDoctrine_Recordのオブジェクトが入ってる変数だったらものすごい量でて当たり前。

238 :
フォームで、ユーザーに改ざんされたくない値を扱う方法で質問です。
formで隠したいパラメータ(from_id)をunsetしておいて、アクションで
> $message = new Message();
> $message['from_id'] = $this->getUser()->getAttribute('id');
> $form = new MessageForm($message);
とやる方法と、
formでunsetせずに
> $values = $this->getUser()->getAttribute($form->getName());
> $values['from_id'] = $this->getUser()->getAttribute('id');
> $form = $this->processForm($form, $values);
と上書きする方法の2通りがあると思うのですが、
どちらも安全でしょうか?
それとも、他に方法があるんでしょうか?

239 :
セッションがタイムアウトして、AuthenticatedとCredencialがクリアされたのに、
$this->getUser()->setAttribute()した値が残ってるのですが、
これって普通ですか?

240 :
>>239
認証とセッションデータをごっちゃにするなよ

241 :
DoctrineでのInnnerJoinの書き方で苦戦しています(汗
下記のSQL文でコマンドラインでは動いてるんですが、
どのように記述すればよいのでしょうか?
SELECT w.target_user_id as user_id, DATE_FORMAT(w.created_at,"%Y-%m-%d") as days,w.type as type,count(*) as num FROM warn w
INNER JOIN (
SELECT target_user_id,count(*) AS datas
FROM warn GROUP BY target_user_id
) AS SUB USING(target_user_id)
GROUP BY user_id,days,type
ORDER BY datas DESC ,user_id ASC,days ASC,type ASC;

242 :
ユーザー情報を持つUserAccountテーブルと、そのIDをカラムに持つBlogテーブルをリレーションさせておくと、
フォームの作成で下記のようなファイルが生成されます。
これが、ユーザー数が多くて、かつuser_idをunset()して使うケースではかなり無駄な気がします。
手作業でsetup()を上書きして、widgetをsfWidgetFormInputText、
validatorをsfValidatorIntegerに変える、という感じに書き換えたいのですが、
スキーマのオプションとかでsfWidgetFormDoctrineChoice()&$this->getRelatedModelName()を
使わないようにはできないんでしょうか?
$this->getRelatedModelName()の呼び出しは1回で済むはずなのに無駄なコードだし。。。
ユーザーが1万人になったら、フォームの表示のたびに2万件のレコード引っ張ってくるつもり?
abstract class BaseBlogForm extends BaseFormDoctrine
{
 public function setup()
 {
  $this->setWidgets(array(
   'id'          => new sfWidgetFormInputHidden(),
   'user_id'       => new sfWidgetFormDoctrineChoice(array('model' => $this->getRelatedModelName('UserAccount'), 'add_empty' => false)),
  ));
  $this->setValidators(array(
   'id'          => new sfValidatorChoice(array('choices' => array($this->getObject()->get('id')), 'empty_value' => $this->getObject()->get('id'), 'required' => false)),
   'user_id'       => new sfValidatorDoctrineChoice(array('model' => $this->getRelatedModelName('UserAccount'))),
  ));

243 :
sfWidgetFormDoctrineChoice::getChoices()
が呼ばれるのはrender()の時だけ?
大ポカだった。

244 :
sfGuardPluginを使わずに、自分でログインページを作ったのですが、
is_secure:true にした場合にログインページにforwardしてくれるのはいいのですが
認証成功後にforwardする前のページにredirectするにはどうすればいいでしょうか?

245 :
認証情報はセッションに入ってるものだと思ってました。
認証情報はどこに保存されているんでしょう??

246 :
ファイルアップロードで、ファイル名の「'」が「\'」になるんですけど
これってSymfonyの問題ですか?
PHPも初心者なもんでどうすればいいのか分かりません。。。

247 :
問題があるとしたらファイル名に「'」を使ってることかな

248 :
php初心者というかパソコン初心者レベルだな

249 :
セッション(認証?)が30分程度で切れてしまいます。
以下の設定だけでは、変更できないんでしょうか?
#.htaccess
php_value session.gc_maxlifetime 86400
php_value session.gc_probability 1
php_value session.gc_divisor 100
#setting.yml
all:
user:
class: myUser
param:
timeout: 86400

250 :
factories.ymlに書くんだと思う
user:
class: myUser
param:
timeout: 86400
こんな感じ

251 :
さんくす!

252 :
sfDoctrineGuardPlugin使ってます。
バックエンドで、is_super_adminなアカウントだけ閲覧を許可していんですけど
以下のsecurity.ymlでうまくいきません。クレデンシャルが違うんでしょうか?
index:
is_secure: true
credentials: admin
それと、新規登録時に
Notice: Undefined offset: 1 in D:\MyProject\symfony\lib\vendor\symfony\lib\config\sfGeneratorConfigHandler.class.php on line 68
という謎のエラーが出てしまいます。
sfGuardAuthに空のgenerator.ymlを作ると治るという情報があったのですが
治りませんでした。他に解決方法はありませんでしょうか?

253 :
>>252
credentails: [admin]
じゃなくて?
sfDoctrineGuardPlugin使ったことないからよくしらんけど

254 :
「Notice: Undefined offset: 1」のエラーのほうは、
http://www.symfony-project.org/blog/2008/11/12/call-the-expert-customizing-sfdoctrineguardplugin
を参考にしたAPP/congig/generator.ymlの変更をやめて、
中身を全部削除したらうまくいったみたい。

255 :
日別のアクセス数を集計しようとしてるのですが、正常にうごきません。
日付の比較がおかしくなっている感じがします。
スキーマはこんな感じです。
AccessLog:
 tableName: access_log
 actAs: { Timestampable: ~ }
 columns:
  user_id: varchar(50)

256 :
コードと同等(と思っている)のSQLをMySqlコマンドラインから実行すると、正常にいきます。
SELECT a.id, a.user_id, COUNT(*), DATE(a.created_at) AS date
FROM access_log a
WHERE (a.user_id = 'admin' AND a.created_at > '2010-11-01 00:00:00' AND a.created_at < '2010-11-29 23:59:59')
GROUP BY date ORDER BY a.created_at;
「->andWhere('a.created_at < ?',$end)」の行を抜かすと一応取得はできます。
原因はなんでしょうか?
$id = 'admin';
$start = "'2011-11-01 00:00:00'";
$end ="'2011-11-30 23:59:59'";
$this->accesslogs = Doctrine_Query::create()
->select('a.user_id, count(*) as count, DATE(a.created_at) as date')
->from('accesslog as a')
->where('a.user_id = ?',$id)
->andWhere('a.created_at > ?',$start)
->andWhere('a.created_at < ?',$end)
->groupBy('date')
->orderBy('a.created_at')
->execute();


257 :
ついでにfixture.ymlも書いておきます。
AccessLog:
 log1:
  user_id: admin
  created_at: '2010-11-13 21:56:54'
 log2:
  user_id: admin
  created_at: '2010-11-13 21:56:54'
 log3:
  user_id: admin
  created_at: '2010-11-14 21:56:54'
 log4:
  user_id: admin
  created_at: '2010-11-14 21:56:54'
 log5:
  user_id: admin
  created_at: '2010-11-15 21:56:54'

258 :
(たぶん)解決しました。
->from('accesslog as a')
じゃなくて
->from('accesslog a')
に変えると期待通りに動きました^^;
夜中3時間悩んだのに、昼に起きて5分で解決しました。
休憩や睡眠って大事ですね。みなさんもがんばってください。
なんで$endの行が無いときにうまくいったかは謎のままですが。。。

259 :
sfDoctrineGuardPluginって使ってる人いる??
symfony慣れてないくせして導入してみたんだけど、symfonyとバージョン合ってないのかな?
sfGuardRememberMeFilterが機能してない気がする。
settings.ymlで
enabled_modules: [default, sfGuardGroup, sfGuardUser, sfGuardPermission, sfGuardAuth, sfGuardForgotPassword]
を記述しても、バックエンドに追加されてない。
sfGuardUserは手動でバックエンドに追加できるけど、sfGuardPermissionは足りないファイルがたんまり。ネットで拾ってきてもまともに動かない。
あと、save-fixtureしてリロードすると、パスワードがハッシュされてログインできなくなる。
このあたり、どうにかなりませんか?


260 :
こうゆう複雑なSQLはDoctrineでできますか?
Doctrineは単純なSQLだけで、複雑な合成はPHPでやったほうがいいのかな。
SELECT u.id as u__id,
u.username as u__username,
s.date as s__date,
a.access as a__access,
s.sales as s__sales
FROM sf_guard_user u
LEFT OUTER JOIN
(SELECT user_id,
DATE(created_at) AS date,
SUM(amount) AS sales
FROM sales
GROUP BY user_id, DATE(created_at)) s
ON u.username = s.user_id
LEFT OUTER JOIN
(SELECT user_id,
DATE(created_at) AS date,
count(*) AS access
FROM access_log
GROUP BY user_id, DATE(created_at)) a
ON u.username = a.user_id
AND s.date = a.date
WHERE u.username = 'admin'
AND s.date > '2010-11-01 00:00:00'
AND s.date < '2010-12-01 00:00:00'
ORDER BY s.date;

261 :
これ、どうゆう意味ですか?
> 500 | Internal Server Error | Doctrine_Query_Exception
> The root class of the query (alias s) must have at least one field selected.
ユーザー毎の売上げを集計したいだけなんだけど。。。
#action.php
 public function executeSalelist(sfWebRequest $request)
 {
   $this->saless = Doctrine_Query::create()
   ->select('s.user_id as id, p.name, sum(s.amount) as amount')
   ->from('Sales s')
   ->leftJoin('s.Profile p')
   ->groupBy('id')
   ->execute();
 }


262 :
#schema.yml
Sales:
 tableName: sales
 actAs:    { Timestampable: ~ }
 columns:
  user_id:
   type: integer
  amount: integer
 relations:
   User:
    class: sfGuardUser
    foreign: id
    local: user_id
    type: many
    onDelete: cascade
    foreignType: many
    foreignAlias: Sales
   Profile:
    class: sfGuardUserProfile
    foreign: user_id
    local: user_id
    type: many
    onDelete: cascade
    foreignType: many
    foreignAlias: Sales

263 :
sfGuardPluginついでに。
> $this->setWidget('user_id', new sfWidgetFormDoctrineChoice(array('model' => $this->getRelatedModelName('User'))));
フォームのプルダウンでuser_id=0のアカウントを選択してポストすると、
user_id=1として格納されてしまいます。
なんで〜??

264 :
user_idをauto_incrimentにしてない?

265 :
selectからp.nameをとるととりあえずいける。
Profileがおかしいのかな?
Sales:
tableName: sales
actAs: { Timestampable: ~ }
columns:
user_id:
type: integer
amount: integer
relations:
User:
class: sfGuardUser
foreign: id
local: use_id
type: many
onDelete: cascade
foreignType: many
foreignAlias: Sales
Profile:
class: sfGuardUserProfile
foreign: user_id
local: user_id
type: many
onDelete: cascade
foreignType: many
foreignAlias: Profile

266 :
sfGuardUserProfile:
tableName: sf_guard_user_profile
actAs: { Timestampable: ~ }
columns:
id: integer
user_id:
type: integer
primary: true
bank_name: varchar(50)
bank_point: varchar(50)
bank_type:
type: enum
values: [ordinary, current]
default: ordinary
name: varchar(50)
bank_number: varchar(50)
relations:
User:
class: sfGuardUser
foreign: id
local: user_id
type: one
onDelete: cascade
foreignType: one
foreignAlias: Profile

267 :
フォーム難しいですね。。。
スキーマでは user_id(type:integer) にリレーションしてるんだけど、
フォームでは user_name(type:varchar(255)) で入力したい場合はどうすればいいですか?

268 :
Newのときは下記コードでうまく「ユーザー名入力→ユーザーIDに変換」できるようになったんですが、
Editのとき編集フォームがuser_idのままです。。。
 public function configure()
 {
  $this->widgetSchema['user_id'] = new sfWidgetFormInputText();
  $this->setValidator('user_id', new sfValidatorString(array('max_length' => 128, 'required' => true)));
  $this->validatorSchema->setPostValidator(new sfValidatorCallback(
   array(
    'callback' => array($this, 'validateUsername'),
   ),
   array(
    'invalid' => 'アカウント名を正しく入力してください。',
   )
  ));
 }

269 :
 public function validateUsername(sfValidatorBase $validator, $values)
 {
  if (strlen($values['user_id']))
  {
   $user = Doctrine_Core::getTable('User')->findOneByUsername($values['user_id']);
   if (!$user)
   {
    throw new sfValidatorError($validator, 'invalid');
   }
   $values['user_id'] = $user->getId();
  }
  return $values;
 }
}


270 :
コンストラクタ上書きでできたけど、上記含めてお作法的にこれでいいんかな。。。


271 :
このスレにはお世話になってるし、
だれかの役に立つかもしれないから、動いたコンストラクタのコードも一応書いときます。
けんちゃんより(はぁと)
 public function __construct($defaults = array(), $options = array(), $CSRFSecret = null)
 {
  if(isset($defaults['user_id']))
  {
   $user = Doctrine_Core::getTable('User')->find($defaults['user_id']);
   if($user)
   {
    $defaults['user_id'] = $user->getUsername();
   }
  }
  parent::__construct($defaults, $options, $CSRFSecret);
 }

272 :
他システムへのアクセスがあったときに、タスクを用いてSymfony側にアクセスログを取ろうとしています。
実行すると「There is no open connection」というエラーが出てしまいます。
なにがおかしいんでしょうか?
> $databaseManager = new sfDatabaseManager($this->configuration);
> $connection = $databaseManager->getDatabase('links')->getConnection();
を追加してみたのですが、
「 Database "links" does not exist.」
というエラーが出てしまいます。これは正しいDB名です。


273 :
C:\MyProject\link>php symfony link:access user01 111.111.111.111
#accessTask.class.php
<?php
class accessTask extends sfBaseTask
{
 public function configure()
 {
  $this->namespace = 'link';
  $this->name   = 'access';
  $this->addArgument('username', sfCommandArgument::OPTIONAL);
  $this->addArgument('ip', sfCommandArgument::OPTIONAL);
 }
 public function execute($arguments = array(), $options = array())
 {
  $access = new Accesslog();
  $access->setUsername($arguments['username']);
  $access->setIp($arguments['ip']);
  $access->save();
  $this->log('access from '. $arguments['ip']);
 }
}

274 :
>>273
・extends sfDoctrineBaseTaskにする
・executeの冒頭に
$configuration = $this->createConfiguration('users', 'cli');
new sfDatabaseManager($this->configuration);
と書く。
理屈は知らんがw
doctrineならこれで動くんじゃね

275 :
あ、ごめん。createConfigurationの最初の引数はapp名で。

276 :
できた〜!
しっかし重いなぁ。。。
まだ連動させてないけど、Doctrineがログ吐くのが悪さしないといいんだけど。
(-quiet指定したら、"-u","-i","-e"オプションが無いとエラーが出たのであとで調べる。)

277 :
マイグレーションについてなんですけど、
カラムの追加は公式ドキュメントでなんとなく分かりました。
ただ、テーブル(既存テーブルとのリレーション有り)を新たに追加する場合は
どうすればよいのでしょうか?
Symfonyが吐いたテーブル作成のSQL文をコピペしてprod環境で実行、
モデル等のファイルをアップロード、
キャッシュクリア
というような手作業になるのでしょうか?
ビルドはいらないですよね?

278 :
http://localhost/example/web/index.php → http://localhost/example/
にするのはhttpd.cnfをいじるんかねえ?チラ)

279 :
まだあまりsymfonyを理解していないのですが、
symfony doctrine:build --all --and-load
すると、まずデータベースがdropされますよね?
複数プロジェクトで共通のユーザー情報マスタDBを使うつもりでいるので
1つのプロジェクトを更新するたびにユーザー情報がdropされると困るのですが、
どのように構成すればよいでしょうか?
#仮にユーザー情報マスタDBのスキーマだけを持ったプロジェクトを作って、
#ほかのプロジェクトはユーザー情報DBをスキーマに記述しない構成も考えたのですが、
#モデル等が作られないのでリレーション等が働かない気がしています。

280 :
>>278
つttp://symfony-doc-ja.googlecode.com/svn/branches/1.2/html/book/09-Links-and-the-Routing-System.html#url.rewriting

281 :
初心者のくせにサーバでsymfony運用始めちゃったんですけど、
新しいテーブル追加するにはどうすればいいですか??
サーバでbuild-allするとdropしちゃいますよね?
一旦save-fixtureすることも考えたんですが
sfGuardPluginなんで、パスワードが変わっちゃいますよね?;;

282 :
>>281
build-allじゃなくて必要なタスクだけ実行すればいいんじゃないの?
やり方は色々あると思うけど
例えば新しいテーブルはSQLで作って
symfony --xml build-schema
symfony build --model
symfony build --forms
symfony cc
とか。

283 :
遅くなりました。
ちょっとそれでやってみることにします。

284 :
駄目フレームワークの典型symfony
だから誰も使わないし流行らない。

285 :
2.0で大きく変わるんだから、自身で悪い点は分かってるんだろうよ。
フレームワークは所詮道具なんで、どれを使ってもいくつも使ってもいいと思う。
ケースバイケース、適材適所で。
1個覚えれば他に移行するのも楽だよ。
俺はsymfonyともPHPとも心中する気は無いけど、
それでも、今現在の最善策だと思って使ってく。
5年も経てば、CakeでもZendでもない新しいフレームワークにみんな移ってると思うよ。
そんな気持ち。

286 :
多言語サポートしたいんだけど、
URLにdomain.com/jp/とかdomain.com/en/とかアドレスを分けたくない場合は
どうすればいいですか?
サーチエンジンからすると、分けてたほうがいいのかな??

287 :
なぜ英語はen(english)なのに日本語はjpですか?
その流れではjaなのではないのですか?

288 :
symfony使いこなせる人はスキル高いと思うよ
symfonyから学ぶことはたくさんある
symfony2.0への前準備として1.4勉強するといいよ

289 :
2.0のチュートリアル等の日本語化は誰がやるか決まってるの?

290 :
>>289
symfonyユーザー会で分担してやるんじゃね?やる気があるならユーザー会へ立候補どぞー

291 :
チュートリアルやってみたけどSubversion導入するところでめんどくさくなって挫折した。

292 :
>>284
まぁお前が無知だから使われてること知らないだけだけどな

293 :
Doctrineについて質問だけど、join系にサブクエリって入れれる?
どうもやり方が見つけられない・・・。

294 :
>>286
JavaScript で対応。jQuery プラグインなら jquery.localize.js とか MS 謹製の jQuery Globalization Plugin が見つかるね。

295 :
>>289
主だった人は執筆やら勉強の会の準備に忙しいから、

296 :
>>295 のつづき。すぐに翻訳はそろわないと思うよ。ただ、コードサンプルはわかりやすいから、英語が読めなくても内容をかなりつかめるんじゃないかな。

297 :
>>284
ガラパゴス基準で考えてほしくないな。github のウォッOランキングに入っているのでじゅうぶん人気はあると思うよ。
https://github.com/popular/watched

298 :
VPSも安くなったし、もう無理してPHP使う必要無い時代になったな。

299 :
>>298
パフォーマンスの問題というよりも、PHPでは体験できない新しい勉強をしたいということではないだろうか。世界の状況はどんどん変わってゆくのだから、>>285 と同じことだけど特定のフレームワークや言語に囚われる必然性はないよ。

300 :
シンプルとはいえない

301 :
>>298
何を使う時代?

302 :
VPSだからPHP要らない?
お前は何を言っているんだw

303 :
>>298の言いたいことはよく分かる。
PHPなんて糞だと思いつつも、格安鯖にはPHPとPerlしかないし…
と、他の言語に興味がありながら、なかなか手を出せなかった人にとってはいい転換期だと思う。
インフラの心配なく、自動スケールするGoogle App Engineとかもあるしね。
JavaとかPythonもやってみると意外と面白い。

304 :
確かに>>298が何を言おうとしているのかその意図がわからんな
VPSにしてWAS入れてとかの話なのか?
まあここはsymfonyスレだが・・

305 :
ルート権限あるなら、mod_perlでもPassengerでも自由にインストール出来るから名。
これまでのレンタルサーバの共用プランだと、mod_phpかPerl/CGIしか選択肢がなかった。
そういう事だろう。

306 :
Perlも最低限SSHでシェルにアクセスできんと
local::libでCPANモジュールぶっこみができないのがつらいところ

307 :
Doctrineで新しくレコード追加したわけだが、
追加したレコードのIDが取得できん。
$xxxx = new AAAAA();
: (各種設定setXXXX())
$xxxx->save();
$xxxx->getId();←常に0が返ってくる。
別のテーブルでも試してみて、原因は複合主キーだとは
わかっているんだが、どうやってInsertしたテーブルの
キーを取得すればよいのか誰か教えて欲しい。

308 :
スマホ対応どうしてますか?

309 :
$xxxx->id は?

310 :
symfony2勉強会人気ありすぎワロタ

311 :
ZF人気なさすぎワロタ

312 :
なぜ、Symfonyのスレが盛り上がらないのか?
その答えは単純明快である。
Symfonyの素晴らしさを理解できる優秀なエンジニアは
この世に一握りしかいないからである。
世間の評価など気にせずに、優秀なエンジニア達は
迷わずSymfonyを使えばいい。
Symfonyの素晴らしさを理解できる優秀なエンジニアだけで
Synfonyを独占すればいい。

313 :
symfonyはフレームワークじゃないって本当ですか?
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1062913895

314 :
www

315 :
APIの結果をページングしたい場合、
sfPagerを継承して独自のページャを作る、っていう方法であってますか?

316 :
手嶋屋のおかげでsymfonyの評価がた落ちだよ。

317 :
最近、諸事情でしぶしぶCakePHPを触ることになったのだが、
やっぱCakeのがシンプルで融通聞くと思い始めた。
symfony2は原型とどめてないしビジネス的に見てもCakeかなあ・・・
あとやっぱりschema.ymlとmigration両方書くのもめんどい。

318 :
symfonyつぎはぎすぎる

319 :
symfony1.0とPHP5.3って相性良くないですか?
なんかデバッグしにくい妙なエラーが・・
無理に5.3にせずに5.2で行く方が無難かな

320 :
newの前にある&を取ればいーんじゃね?

321 :
自分の書いたクラスでメソッドの修飾子をpublic publicと二回書いてて
5.2まではそれでも動いていたのが、5.3では動かなくなっていて
しかもそれがバッドノウハウ的にエラー表示を消してるところで起きていたので分からなかっただけでした・・orz

322 :
Symfony2のフォームについて教えてください。
一覧画面の各レコードの端にチェックボックスを置き、
チェックされたものを、一覧の下に用意した削除ボタンで一括削除、
というような事をしたいのですが
フォームをどのように作ればいいんでしょうか。
当然ながら削除チェックボックスは、永続化するものではありません。
(1) 削除対象のエンティティ&そのフォーム
(2) (1)に、削除チェックボックスを足したVO&そのフォーム
(3) (2)の配列を持つVO&そのフォーム
こんな感じで3重の入れ子にすればいけるかな、と思ったんですが
(2)の段階で既に画面表示がエラーになり、
考え方がおかしいのか、どこかで実装ミスしてるだけなのか判断できず困ってます。
そもそも↑この構成が面倒くさすぎるので、もっと簡単にやれれば嬉しいのですが。

323 :
a

324 :
Symfony2使ってる奴なんて奇特すぎる

325 :
DI、AOP、Agile、TDD、ファックだぜ〜

326 :
Symfony+Aptana(Eclipse)で開発しています。
AptanaにSymfonyコマンドを登録してやっているのですが、
他のSymfonyプロジェクトにエクスポートして持って行くと
うまく動いてくれなくて、結局手作業でパスなどを修正しています。
なにかうまく動かす方法はないでしょうか?

327 :
security.ymlについて質問させてください。
OpenPNE上で開発をしているのですが、$base_url/member/$idに対して、
URLの$idがどんな整数を受け取っても認証させるようにするにはどのように設定ファイルを書けばよいのでしょうか?
それとも複数のURLに対してまとめて設定するのは不可能なのでしょうか?
memberモジュール内で、
all
is_secure: false
$id
is_secure: true
credentials: admin
のようにしたいのですが、webや過去ログを見てもそれらしいものが無かったので、
ご存知の方がいらっしゃいましたら、お知恵をお貸しください。

328 :
>>327 公式SNSで聞いた方が早いと思う

329 :
すみません、symfonyで画像ファイルをデータベースに保存するのはどういう書き方になるのでしょうか?
Openpneの開発なので、file_binテーブルに入れる形にしたいです

330 :
どなたかDQLの書き方をお教え下さい
以下、結果は同じですがDQLでの指定がわからず…
SELECT * FROM Table1, Table2 WHERE Table1.id = Table2.id
SELECT * FROM Table1 JOIN Table2 WHERE Table1.id = Table2.id

331 :
addFrom

332 :


333 :
$q->from('Table1 t1')->addFrom('Table2 t2')->where('t1.id = t2.id')
$q->from('Table1 t1')->innerJoin('Table2 t2')
とか。

334 :
まちがえた
$q->from('Table1 t1')->addFrom('t1.Table2 t2')->where('t1.id = t2.id')
$q->from('Table1 t1')->innerJoin('t1.Table2 t2')
かな。

335 :
それってDQLじゃないんじゃ?
$q = $em->createQuery("SELECT t1, t2 FROM Table1 t1 INNER JOIN t1.Table2 t2 WHERE t1.id = t2.id");
かな?
間違ってるかもしれない
誰かフォローよろw

336 :
組み立ててからgetDqlすればよくね?

337 :
>>333,334,335,336
皆さん有り難うございました
doctrineはバージョン違うとかなり違うんですね…

338 :
度々スイマセン。
みなさんのお陰でJOINしたデータの取得が出来ました。
しかし、twig(Symfony2使ってます)にJOINされたデータの表示が出来ず…。
t1のデータはtest.idなどので表示できるのですが変数が分からず…t2ができないのです。
どなたか教えていただけませんでしょうか。
$q = $em->createQuery("SELECT t1, t2 FROM Table1 t1 INNER JOIN t1.Table2 t2 WHERE t1.id = t2.id");
$test = $q->getResult();
return $this->render('TestTest1Bundle:Default:index.html.twig', array('test' => $test));

339 :
>>338
まずdoctrine2が返してる生の$testの中身を見るべき。
テスト書くか、やり方わからなかったら最悪twigに渡す前の段階でvar_dumpとかでもいいから。

340 :
>>339
アドバイスありがとうございます。
中身を見て、t2のidが取得できていることは確認できました。
ただ、やはり変数が不明です。

341 :
どなたかお教え下さい

342 :
メリークリスマス!

343 :
このフレームワークって流行ってないのかな?

344 :
基礎的な部分だと思うので恐縮ですが、
どなたかご教授を…
sfFilterを継承したフィルタを自作しているのですが
フィルタの中でユーザーがログインしてるかどうかで
処理を分けたいのですが、
フィルタの中でどうやったらmyUserのインスタンスを
取得できるでしょうか…

345 :
sfContext::getInstance()->getUser()

346 :
>>345
お礼が遅くなりましたが、うまくいきました。
ありがとうございました。

347 :
symfony2劣化してないか?
なんでいちいちテンプレートの呼び出し指定しなきゃいけないんだよ
@Templateだとか$this->renderとか

348 :
Symfonyユーザー会のSymfony本(1.4ベース)とSymfony2のオンラインドキュメント
を見始めたけど、違いすぎて泣ける。
cakePHPとかRuby on Railsとか他のは使ったことがないけど、
ここまで変更が大きいのってWeb application Frameworkでは普通のこと?
Twigも2.0からの新機能?なのかもしれないけど、テンプレートの書き方も
ぜんぜん違うし・・
2.0覚えても、3.0になったらまた別物になるんだろうな・・・orz

349 :
>>348
2.0は完全に別物だな。
ただdjangoとかからの影響大きいから、そっち触ってればある程度わかるかもしれん。
軽くなったのはいいが、中規模までの開発効率はいいとはいえん。
よほどphpで自分用の勝手のいいライブラリを持ってたりしない限り、
php捨てて他の言語のフレームワーク移ったほうがいいかもしれんな

350 :
>>349
ありがとう
やっぱりこれは別物というくらいの変更ですか・・
自分ひとりで作るサイトで、PHP限定の縛りもないので
Djangoとか見てみます。

351 :

symfony2 ゲキ難関
symfony1ですら、難しかったのに、
そもそも、symfonyのエンジニア集まらないだろ。
だから開発コスト高いよ。

352 :
俺、元社労士で現エンジニアだけど、
プログラマーの単価は、通常の1.5倍ぐらいはあっていいと思うよ。
平均年収が450万円だったら675万ぐらいはもらっていいと思う。
学習量半端ないな。

353 :
CAKE覚える→CAKEつかわね
ZEND覚える→ZENDつかわね
Symfony覚える→これからはSymfony2の時代です。
そのほか環境面を合わせてどれだけ、走ればいいんだ?会社でかねだしてくれないし。

354 :
これまでの学習内容IT版
【実務】
PHP、SQL、DBチューニング、サーバー技術、ネットワーク技術、
Shell、セキュリティ技術、各種端末ツール、統合開発環境(Eclipse、Dreamweaver)
CAKE、ZEND、Symfony、JAVASCRIPT、AJAX、Jquery、PHPUnit、FlashActionScript
PHPunit等テストツール、PHPDocumentor等資料作成ツール、VISIO、XML、XSLT、DHTML、HTML、CSS
VisualStudio、ExcelVBA(ドキュメント効率化)、バックアップ技術(GIT、SVN、CVS)
WEBサーバ技術(Apache、IIS等)、各種設計技術(UML、DFD、業務プロセスフロー、プログラムフローチャート、
WBS、ERD、外部設計、要件定義)、ハードウェア技術、OS技術(Unix、Linux、Windows、Mac)
WEBブラウザ技術(GC、IE、FF、SF&各種アドイン)・・・・


355 :
【資格】
情報セキュリティスペシャリスト、ソフトウェア開発技術者、基本情報技術者
CCNP、CCNA、LPIC−LV2+LV1、WEBデザイン技能検定2級、OracleSilver+Bronze
VBAエキスパートスタンダード、WEBプログラミング+WEBクリエイター能力認定試験両方上級
情報処理能力検定1級、Cプログラミング1級、簿記検定2級、中小企業診断士4科目合格(運営・経情・財務・法務)
FP3級、MCA1科目、MOS上級1科目、ビジ法2級、社労士←

356 :
俺、元LSIエンジニアで現いわゆるSEだけど、
もっともらっていいはず、と思って辞めたわ。
数学、物理、回路設計技術の下地が必要な上に、
ハードウェア記述言語、各種開発・シミュレータツール、アセンブリ言語、C言語、補助的に使うスクリプト言語・・・
ただ、モノが売れないことには給料が出ないんだよ。
いまやどこのモノづくりメーカーもリストラの真っ最中。
結局、個人にしても企業にしても、いくら知識やリソースを溜め込んだところで
使いこなして生き残ることができなければ意味が無いんだよな。。

357 :
>>351
難関ってことはない。
ただ、開発効率があまり宜しくないだけ

358 :
>>356
自分で運営から開発までやりゃいいんだよ。
今ヒットしてるサービスってプログラマが一人で
やってたのが大きくなっちゃったってやつが多いじゃん。

359 :
symfony1系は不細工だけど気が利く娘
2系はパリコレで活躍できるが、地元の看板娘には使いづらいスーパーモデル。

360 :
symfony2でwebデバッグツールバーがapp_dev.phpの画面に表示されないんだけど、表示されるようにするにはどこで設定すればいい?

361 :
>>360
ビューの指定でbase.html.twigをextendsしたら出た気が。

362 :
>>360
普通にページ下部にあるだろ

363 :
symfony2が最強だな
小規模でも使えるのがいい

364 :
やばい。まじでやばい。
ちょっと助けてほしいのだけど「symfony cc」をしたら、
サーバが500エラーを返す様になってしまったのだけれども、
どうか神様お助け頂けませんでしょうか。

365 :
いただけません

366 :
久しぶりにPHPの世界、symfony1.xに戻ってきました。
かれこれ昔のソースを3時間ほどいじくってますが、
layout.phpを修正して「symfony cc」してもレイアウトが変わりません。
それと、index.phpが呼ばれたときはどのアクションが呼ばれるのでしょうか?
1年ちょいで痴呆が始まったようです;;
どなたかお助けを。

367 :
routing.ymlだな。ちょっと思い出してきた。

368 :
レイアウトもOK!余計なテンプレート作ってたみたい。スタイル悪すぎ。

369 :
symfony2はもう駄目だな。
services.xmlとかもう、設定ファイルだらけでJavaの古いクソフレームワークに退化してるわ

370 :
ymlかアノテーション使えば?
Symfobyは使いこなせもしてないのに遅いだの、わかり辛いだの言う人が多い印象
他のFWはもっとひどいぞ…

371 :
symfoby? また新手か?!

372 :
>>370
>ymlかアノテーション使えば?
アノテーションやymlは設定じゃないとでも思ってるのか?

373 :
修正・追加依頼が多いクライアントの案件でこいつを使うのは
実務者全員が死を見ると思うんですけど

374 :
むしろそういう案件向けのFWでは?
他のFWは融通きかなさすぎだし

375 :
Symfony2インストールしてweb/app_dev.phpのページを開いたらエラーがでた
Notice: include(): 1. h->opened_path=[null] h->filename=
[/var/www/Symfony/vendor/symfony/symfony/src//Symfony/Component/ClassLoader/DebugClassLoader.php]
in /var/www/Symfony/vendor/composer/ClassLoader.php on line 150 Call Stack: 0.0013 331164 1. {main}()
...
...
あとずっと同じような文が続いてる
環境はWin764bitでVirtualBox内のUbuntu12。
config.phpはちゃんと表示されてる。
Symfony2何回か入れなおしてるけど特に表示変わらず。
別PCではすぐWelcomeページ表示されたんだが、今回のエラー初めて見るのでわからない。
誰か教えて欲しい・・・

376 :
1.4(Doctrine)なんですが、作ったモジュールを削除するにはどうすればいいですか?
アクション、モデル、スキーマ、フィクスチャ、フォーム、フィルターを手作業で消しましたが
全てのモデル等を再構築しようとすると、SQLからDB作る時点(?)でエラーになります。
(Not Found DELETED_MODULE みたいなエラーが出る)

377 :
あいかわらずsymfonyは魔窟だなぁ

378 :
1だとForm周りの作りが酷かったけど
2はマシになったのか?

379 :
>>375だけど解決した。
APCのインストールをミスってたらしい・・・
インスコし直しで解決しました
>>378
1より改善されていて、2はModelと切り離して作れるようになった ってどっかに書いてあった

380 :
1.4です。
テンプレートの国際化の際、URLにcultureを含めないで
実現する方法はありませんか?

381 :
完全にオワコン

382 :
Symfony2 で、全Controllerに共通処理させたいんだけど、どうやればいいの?Listnerが正解?

383 :
Symfony2にいたっては、終わるどころか始まることさえなかった

384 :
でかい採用事例きかなくなったなw

385 :
>>382
Listenerですね。ユーザー会の誰かがブログに書いてた。

386 :
こういうやりとり見てると、やっぱSymfonyの完成度って低いと思っちゃうんだよねー

387 :
そもそもsymfony以前の問題だから。
PHP自体捨てられつつあるし

388 :
やっぱRailsなん?
仕様変わりすぎで、メンテコスト高そうなんだが。

389 :
仕様が数年変わらないフレームワークってなんだよ

390 :
と、symfony信者が申しております

391 :
symfony信者でいいから、質問の回答を早く頼む

392 :
やっぱ時代はdjangoかpyramidだろw
>>382
効率的なWebアプリケーションの作り方という本では、バンドル内にAppControllerを作って
自前コントローラをサブクラスにするやり方も載ってた気が

393 :
>>392
AppControllerを作成して継承する場合、
全てのControllerに共通の処理をさせるには
コンストラクタに記述するってことであっていますか?

394 :
ltsもでるしsymfonyほどまともなfwないじゃん
単に日本のPHP技術者のレベルが低くては日本では流行らないだけで

395 :
symfonyがまともとはこれいかに?

396 :
他にまともなのある?
ないでしょ

397 :
まぁ、いろいろ見たけどMVCとしての完成度は群を抜いて高いんじゃないか?
あ、2のほうな
ただ、現実的な問題として、これをいじれるような大きい案件
俺は受注できねぇんだよw

398 :
少なくともPHPの中では一番まともだなsymfony2は
使わないけど

399 :
例えば、どれと比べてsymfonyがまとも?
symfonyにできてCakeにできないところって?

400 :
>>399
できるだけなら素のPHPでもできる
それにFWとしての側面はsymfony2の一部でしかないし
小規模ならsilexもあるし、作りとしてはsymfony2以外選択肢ない
Zendくらい

401 :
抽象度が高い構造を持ってることと
他と比べて厳しめの規約を持っているってことだな。
まあ、規約を知るコストはあるし、
自分ルールで書きたくなる衝動を押さえるのがすごく歯がゆいこともあるが、
メンテはしやすいよ。
まあ、短期で作り捨てしてる人には向いてないが、
アクタが多数だったりする規模で、長期に手を入れていく場合に向いてる。
LTSもあるしね。

402 :
>>400
何が言いたいのか良く分からん。
なぜSymfony2以外に選択肢がないのかの説明を明確にして欲しい。
Zendはもっとたいしたことないし。

403 :
>>401
Zendもそうだけど、抽象化の度合いが無駄だと思う。
まぁsymfonyは、Zendほど無駄じゃないけど。
学習コストが高過ぎるよね。ほとんどの人はsymfonyの思想を理解できずに、オレオレ実装しちゃって、
仕様が入り混じって、ただでさえパスタなのに更にパスタになってる。
だったらsymfony使わずにオレオレ実装だけで作って貰った方がメンテしやすいシステムをいくつか見てきた。

404 :
つまり、Zendもsymfonyもダメなのは、抽象化が作者の趣味の領域になってると思われる点。
信者は盲信してるから、死後の世界を信じて苦行にも耐えるけど、まともな人間はとっとと見捨てる。

405 :
しかしZendは本当に使う価値がない。
Webアプリを作る上で最も重要なパーツは、FormとDBなのに、この2つが、あってもなくてもどうでもいい機能しかないんだよな。
不必要な機能ばっかりワンサカとある。

406 :
そういう意味ではDispatchしか使い道がないCIと価値は等価。

407 :
>>403
日本のPHPerは使いこなせないのが多いだろうね
cakephpはひどすぎるけど日本じゃ人気

408 :
日本は回線は世界一なのに開発者は低レベルだからな。
PHPユーザに限らず。
とりあえずPHPはさっさとマルチスレッドを実装しろ

409 :
>>407
例えばCakeのどこがひどい?
い一番ひどい所を教えて。

410 :
>>408
日本の開発者のレベルは意外と高いよ。
同じ国にいるのと、日本人のネガティブカルチャーが、同民族を貶めたいと思う気持ちで、そう思わせるだけ。
底辺のレベルはアメリカだってひどいよ。

411 :
>>410
高くねーよ
例えば日本発のフレームワークで世界に使われてるものって何?
他に比べて高いってんならそう判断できるソースを

412 :
仮に開発者のレベルが高かったとしても
リーダーを名乗って複数人束ねて外に表現していく能力は日本は低めなので
フレームワークのたとえはよろしくないかな。
あとそもそも学力低めの人がネットで文字書くのは日韓くらいだから
ネットだけ見てると日本のレベルが低く見えてくるってのもあるかもね。

413 :
>>411
なんで基準がPHP用のフレームワークなんだよ(苦笑
基準そのものが低いだろ…トホホ
日本発で開発的に使われてるプログラミング言語はあるけど、中国、韓国、インド、ドイツ、フランス、イギリス発で世界的に使われているプログラミング言語ってあったっけ?
日本人はフルスクラッチでOSを開発したけど、中国、韓国、インド、ドイツ、フランス、イギリスで開発されたOSってあったっけ?

414 :
>>412
君の書く日本語の方が、レベルが低くて心配だよ…

415 :
>>410
たぶん日本人開発者は平均的には他国の多くより上だろうと思う。
上は弱そうだよね。
別に頭が悪いんじゃなくて、やったるぜーがないというか。
自分もないですorz

416 :
>>349
>よほどphpで自分用の勝手のいいライブラリを持ってたりしない限り、
>php捨てて他の言語のフレームワーク移ったほうがいいかもしれんな
これはsymfonyがPHPフレームワークで最強って言いたいんでしょうか?
そんなこと手嶋屋が看過しませんよ!!しませんからねっ!

417 :
どなたか教えてください。
Ver1.4です。スキーマでmail,passwordを定義、
フォームでmail,password,re_passwordを作りました。
DBにはre_passwordを入れたくないのですが、どうすればいいでしょうか?
よろしくお願いします。

418 :
そういうくだらない問題を解決しなきゃいけないから、symfonyってホント駄目だと思うね…
ちなみに1.4系は1.2ほど使ってる人がいないから、解決策知ってる人が果たして現れるかどうか…

419 :
試しにアクションでre_passwordを追加しようと思ってフォームからre_passwordを消したのに
php symfony doctrine:build --all --and-load --no-confirmation
してもBaseフォームやschema.sql、DBにre_password(64)が作られる謎の現象が発生・・・。

420 :
それは使う側からみると謎の動作だけど、開発者側から言わせれば、仕様通りの動作なんだろうなぁ。

421 :
schema.yml → モデル、フォーム、DB が作られるのかと思ってましたけど、
他にもモデル、フォーム等を作るのに参照されているファイルってあるんですか?

422 :
モデルにゴミが残ってました・・・。

423 :
解決して良かったね

424 :
>>418
そういうくだらない問題が皆無なフレームワークを是非教えてください

425 :
symfonyっうより、Doctrineがダメなんじゃね?
だいたい、なんでカラム名をキャメルケースに変換しなけりゃならない必然性があるわけ?鬱陶しいちゅうねん

426 :
そもそも1.2はまだpropelがメインORM

427 :
modelなら、カラムuser_idがあるとして、
$model->getUserID()じゃなくて$model->user_idで取得できなかったっけ?

428 :
>>425
それを言ったら、Cakeの複数形の方が鬱陶しい。

429 :
1.4系です。
デフォルトのアクションで、executeDeleteの時だけ
$request->checkCSRFProtection();
するのはなぜですか?
executeCreateの時は自動でやってるんですか?

430 :
$form->isValid()
でCSRFチェックを行なっていて、deleteではフォームを見ないから、
という認識で良いのでしょうか?

431 :
てす

432 :
テストは失敗です

433 :
Symfony1.4で日本語メールを送る方法を色々とググって
試したのですが、理解が足りないのか、なかなかうまく行きません。
みなさんはどの方法を使っていますか?
URLかプラグイン名を教えて下さい。

434 :
$message = sfContext::getInstance()->getMailer()->compose();
$message->setCharset('iso-2022-jp');
$message->setEncoder(Swift_Encoding::get7BitEncoding());
//タイトルと本文はmb_convert_encodingでJISにしてからセット
で行けるよ。

435 :
やっぱ、sfのメール送信はいけてないと思うわー

436 :
じゃあ何ならいけてるの?Zend_Mail?mb_send_mail?それとも門外不出の俺俺ふれーむわーく?

437 :
少なくともデフォルトで多言語化されてないとダメだろ

438 :
日本語メールに対応していないフレームワークは多いと思うけど、少し手を加えればいい話でしょ。
>434みたいにではなくもう少し根元を変更してしまえば気にせず送信できるようになる。

439 :
CMSのez Publish5がsymfony2になったね

440 :2013/01/16
そんなマイナーなCMS知らんがな
TOP カテ一覧 スレ一覧 2ch元 削除依頼
IDにPerlが出たら神!PHPが出たらシメジ Part32 (480)
【UD】白血病患者を救おう!@webprog (417)
C言語のCGIを語りつつ普及するスレ (529)
【PHP】ツリー掲示板を作ろう (380)
セキュリティースレッド (243)
PHPで作られた有名サイトってあるの? (702)
--log9.info------------------
メーカー問わずに出してほしい銃を語るスレ (249)
【注文】◎マルゼンCA・LA870 9コキ目◎【殺到】 (961)
【すっとや?】鹿児島サバゲー事情【すっが!】 (773)
nobu_fukuoka (546)
【タニオコバ】GM7,M4を語るスレ その7【モデルガン】 (841)
【HK417】VFC製品総合スレ5【HK416C】 (886)
高知の【SUPER FREAKS】ってどうなのよ? (632)
ナイトビジョン総合スレ AN/PVS-19 (882)
ダットサイトはスコープに赤点付けたら代用できる (809)
安いネット通販の店を語ろうぜ (648)
【SUREFIRE】タクティカルライト総合スレ11W【ITI】 (443)
岡山のサバゲ事情3発目 (782)
【関東】東京ガン屋戦争5A1【秋葉原】 (673)
【山口県】サバゲーやらない?【限定】 (516)
流速カスタム情報交換スレ2 (497)
【カスタム】バレルで何が変わるの?【純正】 (314)
--log55.com------------------
未だに糖質制限を盲信してるのって情弱だけだよね
【初心者】ダイエット質問・相談スレPart244
体重別スレ 69.9kg〜60.0kg ★7
【今日も】 ジョギング@ 52 JOG 【ジョグ日和】
チラシの裏 96枚目@ダイエット板
【30代】100kg超が今更始めるダイエット【40代】21
スポーツクラブ&ジムで楽しく Part22
ウォーキング&ジョギング ダイエット115周目