問題人物リスト
tukimiya@ディノ
massie@アシアル
同じビルに入ってるウノウに技術力で完璧に負けてるディノw
既に、ディノのスレになってるわ。
もう止めようぜ。
ディノスレは俺が責任を持って埋めておいたぜ。
doctrine Nest Relationsにバグがあるな。
最悪だ。
DoctrineってSymfony独自のO/Rマッパーですか?
独自ではないが、symfonyプロジェクトチームが開発支援
backendでfrontendのモジュールそのまま使用したいと思うのですが、
frontendのソースをそのままコピーするのは避けたいと思います。
何かいい方法はありませんか?
ロジックをクラス化してlibに入れれば使えたと思う
共通のモジュールをlib/actionに入れて、backendやfrontendはそれをextendして書くとか。
OpenPNEでそういうことやってる
OpenPNEってSymfony2化するんかなぁ。
また、作り直すの大変だね。
2系にしないならフレームワークなんか使うなよって感じだが
2系に作り直すのは簡単に出来るのか?
symfony 1.3.4 and 1.4.4でたよ〜
Symfony2っていつでるのよ?
>>17 アルファ版なら前から出てるよ。
漏れはベータぐらいになったら勉強し始める予定
symfonyの1.4落として遊んでる初心者です。
Webでも書籍でもORM周りの解説がどれもPropelばかりで
Doctrineの解説がほとんど無いんですけどー!
あと、symfonyコマンドって前と1.4では変わってたりする?
古い解説サイトのコマンドが動きませんよー!
22 :
nobodyさん:2010/04/19(月) 08:16:33 ID:GfLHeq5W
ユーザー会に勉強会告知来たな〜
23 :
nobodyさん:2010/04/19(月) 08:49:18 ID:GfLHeq5W
あ、あと前回の勉強会だけど浜松町でやるやつは良かったよ。
初心者にも優しい感じだった。
24 :
nobodyさん:2010/04/27(火) 03:27:23 ID:YqVPAvHC
新しくSymfony本が出る予定とかないんでしょうか?
Doctrineについて書かれている本を読んでみたい。
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
あ・・けんちゃん♥ そこは違うわ・・
今、Jobeetのチュートリアルやってるんだけど
symfonyムズいねぇ。
28 :
25:2010/04/27(火) 22:21:42 ID:???
kenの部分は書き換えてあります、念のためw
あたし、けんちゃん(はあと)のために、doctrine:build-modelヘルプ書いちゃう
-----
The task read the schema information in config/doctrine/*.yml
======================
from the project and all installed plugins.
-----
config/doctrineの配下に置いてみたら?
schema.ymlって普通にやってればconfig/doctrineの中に生成されるよね。
31 :
nobodyさん:2010/05/20(木) 21:42:41 ID:mTAkupUK
index.phpからactions.class.phpまでの流れをステップインで見てみたが。
2時間やっても終わらなかったんであきらめた。
これは実務には使えんな
アホすぎワロタ
なんでsymfonyは何時までたってもCakePHPに勝てないのですかぁ?
勝負してないからじゃないかな
うわ、このスレにまでcake厨が押し寄せてきたのかよ
>>34 勝負しないでどうすんだよ。
やるからにはNo1目指してるだろうよ。
>>35 Cake厨じゃねーよ。
symfonyがCakeにユーザー数や実績で負けてるのは
周知の事実だろ。
スレの伸びからして差は歴然
実績はcakeよりsymfonyの方が出してるんだけどな。
つーかろくなSNSツールがでなくてOpenPNEスレでも暴れてると思ったら、
このスレでも絡んでくる時点でCake厨だろw
無自覚な分たちが悪いな
OpenPNEって「ろく」なSNSか?
SymphonyでSNS作るとああなっちゃうのか?
誰かCIとかCakeでも挑戦すればいいのに。
greeはethnaだけど、greeという実績があるから開発現場でethna最強ってわけでもないでしょ
ネタが無いだけで、スレ見てるやつはけっこういるんだなw
>>36 なにをもってしてNo1かっていう尺度の問題だろ。
ユーザー数が多いからっていいフレームワークとは限らんし。
>>42 ユーザー数は十分な尺度だろ。
実績も十分な尺度だ。
逆に何がある?
>>43 実績は十分な尺度だと思うよ。(そしてsymfonyも十分実績ある)
ユーザー数は微妙なところだな。「初心者向けフレームワーク」
と銘打てばユーザー数は重要になるだろうけど、symfonyはそういう
ところを目指してるわけじゃないと思うし。
openpneってsymfony使って退化したよな
ま、Cakeの方にも書いたがCakeのソースはなんつーか、下品に感じるわ。
設定より規約、というよりOOPよりarray、みたいな感じ。
EC-CUBEを触ったあとに戻ってくるとソースの綺麗さに感動する
それはsymfonyに限ったことじゃないだろう?
wordpress (ry
しっかし流行んねースレだなw
Symfonyを触ってみたいと思っているのですが、2.0からがらっと変わるのでしょうか?
今から1.4とかを勉強して、それが2.0に行かせるでしょうか?
2.0は別物だと思っていい。
どっちで勉強するかは今の51さんのレベル次第。
元ソース読んでいける&時間あるなら2.0。
日本語の情報とか本とかないと無理、っていうなら1.4かな。
やっぱり別物なんですか・・・ありがとうございます
おとなしく2.0がでて情報がでてくるのを待つとします
仕事でもあと1年は1.4かなあ。だいぶ変わってるので不安も多し。
symfony(& Doctrine)を公式サイトで勉強中です。
クエリーを作成するのに、「$this->createQuery('a')」で始めているものと、
「Doctrine_Query::create()」で始めているものの2パターンあるのですが、
違いは何でしょうか?
>>55 HogeTableクラス内で $this->createQuery("a")
モデルの外(action)or違うテーブル・モデル内でDoctrine_Query::create("a")別解としてDoctrine::getTable("Hoge")->createQuery("a")
>>55 個人的には・・・
$table->createQueryは、主にそのテーブルのレコードをモデルオブジェクトとして得たいときに使う。
実際、自動的にselect * from テーブルがSQLに付加される。
Doctrine_Query::create()は、複数のテーブルを使って集計した結果を得たいときなどに使う。
こちらはselectも明示的につけないといけないので、
まっさらな状態からSQLを構築できる。
symfonyって新規開発にしか使えないですよね。
出来ると思うよ。
できると思うよ。
>>60 既存のDBが正規化されてればほぼ大丈夫じゃないかな。
スキーマからmodel作るときに一緒にデータ消しちゃわないように注意してね
お前等、自信無し無しだなー
既存のDBがあっても問題なくつかえるって。
日本でsymfonyが使われてないのって、やっぱり英語力のなさが原因かな?
>>64 日本語情報とソース読みだけで開発には支障ないから英語力は関係ないと思うけど…。
大手はsymfony使うぐらいならJavaを使い、中小は鯖環境のせい(1.0とか1.1の頃は
PHP5使うには専鯖かxreaか?という感じ)でそもそも選択肢に入れてなかった気がする。
特にPHP5必須というのが依頼主にも業者にも評判悪かった気がする。
敢えて言えば安定性を好む国民性?
66 :
nobodyさん:2010/07/03(土) 19:18:23 ID:a/sQBQv/
propelでスマートにテーブル分割する方法ないかな…
ユーザIDベースで分割したいんだけども。
>>65 未だにPHP5で躊躇しますか・・・
そもそもフレームワークを使うという概念自体が普及していない気もしますねえ。
symfony勉強会の参加者4人ぽっちワロタ
CakePHP勉強会と大違いだなw
>>68 Yiiなんかどうなるんだよ。けどな、YiiマスターするともうCakeには戻れんな。
多分PHP関係無い
ファイアーウォールとかhttpサーバーが変
httpサーバの設定は、本家Jobeetの通りなんですが、
どこを修正すればいいですか?
知らんがな
知らんとか、多分とか、理由は簡単だろ?!
symfony 使いはどんだけレベル低いねん!!
まぁ、理由は俺も教えんけどなー
75 :
72:2010/07/16(金) 02:15:02 ID:???
遅くなりましたが自己解決しました^^;
ソース見たら↓があるからこれで出てるだけじゃね
<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 :
age:2010/07/20(火) 07:16:23 ID:Dma6cx4R
1.4でモデルから、アクション→テンプレートの結果を文字列として
取得したい場合はどうしますか。
>>78 アクションじゃなくてコンポーネントにして、partialヘルパーをロードしてget_component
80 :
age:2010/07/20(火) 09:40:57 ID:Dma6cx4R
現に、アクションで書いている内容をpartialにコピーするのは
間違えが起きる気がする。
他にいい方法はありませんか?
82 :
age:2010/07/20(火) 10:23:10 ID:Dma6cx4R
コンポーネントで呼び出すのと、file_get_contents()を比較すると
やっぱり、file_get_contents()の方がオーバーヘッドですよね。
83 :
age:2010/07/20(火) 11:18:27 ID:Dma6cx4R
取り急ぎ、コンポーネントで対応しました。
ありがとう!
symfonyってJAVA覚えるより難しくない?
symphonyならJavaより難解かも
じゃあJAVAするかなー。symfony覚えたところで難易度の割りに…って感じだし。
JAVA覚えたほうが将来的にもよさそう。ただ派遣の仕事しかなさそうだけど。
symfony>>>Java>>>>>>>>>>>>cakePHP>>>>>>>>>PHP
わざとtypoしたのに
typoする理由は何だったんですか?
曲のほうを差してたんでしょ。
てかどっちかっていうとsymfonyのがtypoなんだがw
てかJavaだけ覚えるよりはsymfony覚える方が難しいかもしれんが、
Java+Javaの糞フレームワーク覚えてウェブアプリ作るよりは
symfonyのが間違いなく簡単。
symfonyは難しいというより、日本語ドキュメントがしっかりしてないだけだな
なぜ誰もちゃんとしたsymfonyの本出さないんだ?出したら売れるだろ
93 :
nobodyさん:2010/07/22(木) 19:22:33 ID:yEVWanhm
92は正解。
>>92 え?しっかりしてるじゃん。本家のサイト内に日本語のjobeetがある
95 :
nobodyさん:2010/07/22(木) 20:38:37 ID:yEVWanhm
よくわかるエクセルみたいなもの
その手の本を欲しがるのはだいたい共用サーバ使いでsymfony動かすのが
そもそも大変だし、専用サーバ使う人は公式ドキュメントで十分だし。
公式ドキュメント十分じゃねえ!
結局ソース追いかけてprintf良くやる
10日でおぼえるsymfonyでないかなぁ〜
printfとか・・・
PDTとデバッガ使えよ
var_dumpが基本だろ。
YiiならCVarDumperがある。完璧ではないが、
Yii:trace(CVarDumper::dumpAsString(ほげほげ)); が重宝する。
timkonyのルーティングむずすぎ
jobeetの日本語はわけわからんな
1.4までは、Fabienのフレームワーク作る勉強にすぎん
本番は2.0からってことで、2.0の日本語ドキュメントでてから始めようかsymfony
っていうよりフレームワークを
Fabienいい奴だよなぁ〜
あれでワケ分からんなら何もできんな
おまいらもうsymfony2で開発しているのかよ?
いや〜まだまだ先でしょ。
自分は2年後くらいを想定。
1.4.*を使い続けるよ。積み重ねた実績あるし安定しているしね。
2はだいぶ変わってるから実戦投入は怖い。
戦後教育は文部省と日教組の不毛のイデオロギー対立により本来の教育を蔑ろにし、主役である子供達を放置してきた。最初にその犠牲となっ
たのがいわゆる「団塊チルドレン」と呼ばれる世代である。彼らは歪んだ「権利・自由・平等」を教えられ、「責任・義務」を教えられないま
まに育った。日教組は彼らに経済と言う物差ししか与える事ができず、信念・哲学・自尊心という価値からは程遠い「金と物」にしか価値を見
出せない貧しい精神を育んだのだ。この事は「失われた十年」と呼ばれる90年代に於ける彼らの生き様に大きく影響した。
子供は幼児期に於いて父性と母性の対比の中で社会性を獲得する。「亭主元気で留守が良い」と言うコピーがはやったが、父性不在の家庭はや
がて「団塊チルドレン」の社会性の無さの原因となった。当時オバタリアンと呼ばれた世代は、戦後処理もろくに済んでいないのに平気で海外
へ出かけ、金に飽かせてブランド商品を買い漁り、傲慢さを世界中にまき散らした。彼らの世代に特徴的であるこの品性・品行の悪さは、後の
世代のライフ・スタイルにまで影響を与えた。それ以上に、欧米諸国が未だに日本人を蔑視し、アジア諸国が不信感を持ち続けている事への鈍
感は不幸でさえある。団塊の世代が戦後の営みの中で経済力に見合う人生観や価値観、広義の品性・品行やモラルを獲得していれば日本社会は
ここまで歪まなかっただろう。
90年代は「失われた十年」と呼ばれている。経済と言う物差ししか持たなかった我々は、旧来の発想で経済的な豊かさを追求し続けたが故にバ
ブルの崩壊をもたらした。その時不幸だったのは「我々は何処へ行くのか?」と言う根源的な迷いに気付かなかった事だ。この事が90年代を無
為に浪費した最大の原因である。団塊の世代は欧米を追う間は素晴らしい能力を発揮したが、追いついた後のビジョンを描く想像力が欠如して
いた。彼らの責任では無い。社会が彼らにその様な能力を要求しなかったのだ。村上龍の「あの金で何が買えたか」が売れたと聞くが、悲しい
のは未だにその程度の次元でしかバブルを検証できないメンタリティーの低さである。検証すべきは「何故我々が貧しい価値観しか持ち得なか
ったのか」と言う事である筈だ。まさしく教育の問題である。冒頭で述べた様に信念・哲学・自尊心を育む努力を怠らなければ、もっと違った
社会があった筈である。
doctrineのモデルについて
モデルメソッドを作成するときに通常のクラスにメソッドを作るのか、
****Tableのクラスにメソッドを作るのか悩みます。
テーブルに展開するようなデータを取得するときに****Tableクラスにメソッドを
作ると聞いたのですが、一件だけ取得するようなものはどちらにメソッドを
加えますか?
生PHPでつまずいたのでフレームワークを検討中です。
質問なのですが、symfonyでフォームからファイルアップロードする場合、
ファイルサイズ20Mとかになっても正しく対応できますか?
また、「50Mまで」などの制約をつけることは出来ますか?
つphp.ini
php.iniってレンタルサーバでも変更できますか?
無理でしょ。
つホスティング or おれおれホスト
ini_set memory_limitでぐぐれ
.htaccessを使う方法とか、いろいろあったんですね。
勉強になりました!
memory_limitぢゃなくて、post_max_sizeぢゃないの?
upload_max_filesizeという説もあるよ。
いずれにせよSymfonyと関係ない質問だ
post_max_size と upload_max_filesize は、ini_setできないっぽい。。
memory_limit でほんとに動作するの??
だから php.iniだって。
質問ですが、symfonyを使用した場合idカラムって必須ですか?
既存DBを使用する場合ってPKが既に決まっているかと思うのですが、、
idをPKにしなかったら何か不具合とかありますか。
ぐぐると、idを使用しないとConvention over Configurationに反す
るとかでてきたのでカラムを追加すべきなんだろうか。。
>>121 必須でもないし不具合もないよ
あったほうがそれっぽいってだけ
>>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 :
121:2010/08/23(月) 23:19:28 ID:???
>>122,123
なるほどー。ありがとうございます。助かりました。
Jobeetチュートリアルやってます。
php symfony doctrine:build --all --and-load
の説明が、「フォーム、フィルター、モデルを生成し、データベースを削除してからすべてのテーブルを再作成します。」
とありますが、スキーマにカラムを追加しても、実際のDB(MySQL)に反映されません。
先にテーブルのドロップを手作業でやらないといけないのでしょうか?
126 :
125:2010/08/27(金) 17:33:30 ID:???
すいません、反映されてました><
モジュール名を途中で変えたい場合、ちまちまいじって頑張るしかない?
初心者ですいません。
Jobeet見てフォーム作ってみたんですが、入力した日本語が???になってしまいます。
DB(MySQL)はutf8で作って、layoutファイルのlangも'ja'に変えてあります。
130 :
129:2010/08/29(日) 22:26:26 ID:???
コマンドラインでやったらMySQLがオカシイみたいです。
失礼しました!
sfConfig::get('sf_upload_dir')が、
内部パスだったり外部パスだったりするのは仕様ですか?
132 :
131:2010/08/31(火) 01:16:38 ID:???
キャッシュクリアしたら再現しなくなった。2日ぶりに寝よ。。。。
アクションやコンポーネントをcronジョブやシェルスクリプトから呼び出したい場合は
どうすればいいですか?
フォームから大きなファイルのアップロードするときに、
プログレスバーを表示したいのですが、
どのようにすれば実現できますか?
ちょっといじってみてるんだけど
enablePlugins('sfDoctrinePlugin')
してると Article とか User とか使いたい名前のフォームを
sfDoctrinePlugin\test\functional\fixtures\lib\form\doctrine
にロードしに行ってしまう。
これって別の名前使うしかないんですかね?
136 :
135:2010/08/31(火) 21:02:07 ID:cyjNvO0b
環境は apache, mod_php 5.3, symfony 1.4.6 です。
Symfony2はもう使えますか?
コンソール使えるようになった?
Jobeet19日目の、国際化とローカライぜーションをやってるのですが
何度見直しても日本語訳が表示されません。
みなさんはちゃんとできたのでしょうか?
あと、messages.xmlを「php symfony i18n:extract」コマンドで更新するたびに
訳した<target>の中身がクリアされちゃうのは仕方ないんですかね。。。
1個追加するだけで、全部やりなおしなのはかなり面倒です。
最新のZendに、Autoloader.phpが含まれてない。。。
検索機能使えなくなっちゃう?
質問です
Autoloader.phpの場所勘違いしてた><
ちゃんとありました。
ダウンローダーを作ってるのですが、
中身にlayoutの内容が含まれてしまいます。
action内で、viewを無効化すればいいと思っているのですが
どうすれば無効化できますか?
action内で
return sfView::NONE;
viewの無効化できました!
ネットのサンプルいろいろ見て試していますが、
どうやってもダウンロードじゃなくて、ブラウザ内で開いてしまう。。。
しばらく格闘しそうです。。
ひんと
$this->getResponse()
146 :
144:2010/09/04(土) 18:15:43 ID:???
いまこんな感じ(説明のためパスチェック等省いてます)なのですが、
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;
}
DBからフィクスチャを作成する方法はありませんか?
148 :
138:2010/09/05(日) 16:15:03 ID:???
日本語訳、ちゃんとでるようになりました。
message.xmlの文字コードがおかしかったようです。
eclipseから見たら化けてて、修正したらきちんと表示されました。
特に文字コードを変えるようなことはした覚えないんだけどね。。。
149 :
144:2010/09/06(月) 00:49:18 ID:???
QuickTimeをインストールすると、mp3がダウンロードできなくなるというオチでした。
すみません、教えてください。
BaseFormDoctrineを継承したformクラスの中で、
getParameter('xxx')を使いたいのですが、
どのようにすればよいでしょうか
getValue('hoge')でできない?
sfContext::getInstance()->getRequest()->getParameter('xxx')
ってやればどこからでも使えるでしょ
view.ymlの国際化ってできますか?
meta language等を、カルチャーに応じて変えたいんだ。
とりあえずpreExecute()で実装しちゃったけど
他に方法があるなら聞いておきたい。
154 :
153:2010/09/08(水) 03:09:32 ID:???
preExecute()でやると、モジュール増えたとき大変だ。。。
どうやるのが最適解でしょうか?
filter
CSRF対策を一時的にOFFにするにはどうすればいいですか?
>>156 sfForm::disableCSRFProtection();
「500 Internal Server Error」ページの上書きってどうやってできますか?
/web/errors/error500.phpを設置しても、反映されませんでした。
/config/error/error.html.php に変更されたようです
error.html.php の中身を「Test」ってだけにしてみたんだが、
IEだとブラウザの吐く500エラーページになってしまう。。。
FF、Safari、GoogleChromeは問題なかった。
symfony はキチガイ仕様だってばさ
symfonyはじまったな。
どう始まったの? Ver2.0の話??
JobeetとMore With Symfony読んだんですけど、
ほかにも「これは読んでおけ!」っていうのありますか?
>>1にまとめて書いてほしいけど、次スレは何年後か分かんないもんで><
分からない > チュートリアル
の次は実践だろ。なんか作れよ
作ったけど、もっとコア部分の理解を深めたいと思って。。
なんのために?
>>167 それってソース読むのが一番じゃね?つーか、それに勝るものはないw
とりあえずプラグインとか自分で作りたいから。
んで将来的には自分でフレームワークを作りたい。
ソースは時々grepして見てるけど、
もうちょっと全貌というか概略から勉強したいんだよね。
自分でフレームワークとか四角い車輪すぎるだろ
自作FWは設計とかデザパタとかOOとか勉強になる
ただ実戦投入してはいけないw
あとセキュリティ方面の知識も身につくな
ぶっちゃけいまさらFWつくるのに労力費やすのはナンセンス。
PHPのプログラム的セキュリティもFWの流儀に従ってれば、
たいていは問題ない。
それよりFW使って、みんなを楽しませる、おもしろいサービスつくろうぜ!
自分で作ったフレームワークでみんなを楽しませる面白いサービスが作れたら最高ですの
いやーそう妄想するのは楽しいけど、結局、何も出来ないまま終わる・・・
人がやれることは限られてるのだ。時間もね。
symfony freezeってコマンド名変わった??
ひょっとしてsymfonyって、mod_rewriteないと使えない?
使えない事無いけど、mod_rewriteあったほうがかっこ良いURLでサービス出来るね
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 :
181:2010/09/18(土) 19:55:07 ID:???
初めてだから、どうすればいいか分からないエラーだらけ。
>Fatal error: Class 'sfValidatorSfCryptoCaptcha' not found
Autoloaderがうまく機能してないんかな。。
183 :
181:2010/09/18(土) 20:33:10 ID:???
svnが失敗してディレクトリ構造ぶっこわしてたみたいです。
plugin下を手動で再配置して直りました。
でもまた新しいエラーが。
>500 | Internal Server Error | sfConfigurationException
>The route "captcha_refresh" does not exist.
ローカルでは動くのに、なんでこんなにエラー出るんだろ。。。
184 :
181:2010/09/18(土) 21:54:41 ID:???
ふぅ。またもsvnがおかしなことしてくれてたぜ。
今度はCaptchaImageがxになるぜ!まったくなんてヤローだ。
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
しょうがなく英語版軽く見てみたけど、日本語訳したやつ適当すぎだろ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
Ver1.2にしたら出てきた!
何度かスキーマ書き換え&Doctrineジェネレータ使っただけで、自分でコードを書いてないのにエラーになる。
>Fatal error: Call to a member function getId() on a non-object in
>showSuccess.php on line 5
List,New,Editは問題なし。Showのみエラー。なんででしょう??
./symfony cc
キャッシュはクリアしてます。
ccはキャッシュが残ることあるんで、
cacheディレクトリ以下全削除もしました。
モジュール作った後にスキーマ書き換えると、
テンプレートが更新されないのがイヤなので、
module以下のactionとtemplateを削除して
再度モジュール生成、なんてことをしたのがマズかったのかな。。。
もう少し分かってきたことを書きます。
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
別名でモジュール作り直しても、同様にshowでエラーになります。。。
スキーマの問題でしょうか。。。
>php symfony doctrine:generate-module --with-show
> --non-verbose-templates frontend response2 response
responseって名前がだめなんじゃね?変数の名前変えてみたら?
$this->response = Doctrine_Core::getTable('response')->find(array($request->getParameter('id')));
↓
$this->resObj = Doctrine_Core::getTable('response')->find(array($request->getParameter('id')));
とか。
テンプレート側も修正が必要になるけど置換一発で行けるでしょ
195 :
194:2010/09/28(火) 19:48:24 ID:???
テーブル名から他の名称まで、responseを別名に変えてうまくいきました!
感謝です!!
JobeetJobやってるんですが、カテゴリの表示順を変えるにはどうすればいいでしょうか?
sfWidgetFormDoctrineChoiceの中もちょっと見たのですが分かりませんでした。
実運用の時には、「リストの2番目に新しいカテゴリ名を追加したい」なんていう
変更はよくあると思うので、何かやり方はあると思うんですが。。。
メアド欄だけのフォームを作ろうと思っています。
スキーマを作って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 :
198:2010/10/04(月) 01:35:50 ID:???
とりあえず、テンプレートに手作業でFORMタグ書いて対応しました。
ところで、sfValidatorEmailが、アドレスに「"」「,」「:」「\n」なんかがあっても
許容しちゃうんだけど、みんなこのまま使ってるの??
俺は怖いから書き換えたけどね。
200 :
198:2010/10/04(月) 16:19:34 ID:???
「new MyformForm()」じゃなくてテンプレート内の「echo $form」で失敗してるようでした。
ひょっとして、モデルも作らないとダメってことですか?
継承元がBaseFormDoctrineだとmodelも必要になりそう。
BaseFormからextendして、DBに何か保存するならsaveメソッドの中で直接何か書きなはれ
sfValidatorSchemaCompare も sfValidatorEmail等 も、バリデート失敗時は「Invalid」が表示されますよね。
普通は国際化して、「入力が正しくありません」などに変えると思います。
新規登録画面でパスワードを2回入力させて、そのチェックに sfValidatorSchemaCompare を使っているので、
失敗時には「入力が正しくありません」じゃなくて「パスワードが一致しません」にしたいんです。
なんとかエラーメッセージを区別できないもんでしょうか?
ソースを見た感じ、"throw_global_error"オプションを設定して、自分でcatchしてハンドリングすればできそうな気もしているのですが
どこでどうハンドリングすればいいのか分かりません。
sfValidatorSchemaCompare.class.phpの117行目の「$error = new sfValidatorError($this, 'invalid', 」の
'invalid'を書き換えればひとまず対処できますが、sfValidatorSchemaCompare を他の用途で使うときに
適切でないエラーメッセージになってしまうので、ソースを直接いじるのは遠慮したいです。
どのように対処すればよいでしょうか?
204 :
203:2010/10/05(火) 18:40:45 ID:???
コンストラクタの$messageで変更できました。
長々と失礼しました。
コアを書き換えるなよ・・・
207 :
nobodyさん:2010/10/08(金) 20:05:54 ID:vQ/FE4Nt
コマンド実行が楽そうやね。
次のプロジェクトはNetbeansで作ってみるかな。
208 :
nobodyさん:2010/10/08(金) 20:09:07 ID:vQ/FE4Nt
Eclipseでやると、別窓でコマンド叩く用のシェルと自前のチートシートをエディタで開いてないとダメで、
スキーマ書き換えると、lib下やらをリフレッシュしないといけないから
毎度毎度面倒なんだよね。
コマンドはExternal Toolsでいいだろ
ExternalToolsはリフレッシュもしてくれるんだねぇ。便利。
php symfony doctrine:build --all --and-load --no-confirmation
php symfony doctrine:data-load
php symfony cc
このへんはいけるけど、
symfony generate:module frontend hoge
なんかは対応できないよね?
スレチだけど。
便利すぎるだろ。。。
自前で簡易キャッシュ機構作りたいんですけど、
レイアウト有り/無しのhtmlをファイルに保存するにはどうしたらいいですか?
wgetで取って保存、ってのは無しでお願いします。
それは自前で作るじゃなくて作ってもらうって言うんだ
いや、ヒントだけでよかったんだよ。
いま開発環境ないPCだけど、Renderフィルター覗けばなんか分かりそうな気がしてきた。
forward404Unless()で404エラーページに飛んだとき、
prod環境でも第2引数を画面に表示するにはどうすればいい?
初心者ですいません。
Table:
columns:
id:
name:
のように定義した状態で、
executeCreate内でnameフォームの値を取得するのに「$request->getParameter('name')」や「$form['name']->getValue()」
としてみたのですが、値が取得できません。
フォームの値を取り出すにはどのようにやればいいのでしょうか?
218 :
217:2010/10/10(日) 22:15:33 ID:???
$requestArray = $request->getParameter($form->getName());
$requestArray['name']
で取得できたんですけど、毎回こうやらないとダメなんでしょうか(汗)
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
#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 も見てみたのですが、
バージョン違いなのか全く動きませんでした。
>>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();
に変えたらどう?
fetchOne()に変えて、$thread['User']['name'] で取得できました!
SQLも新しく発行されていないようです。
ただ、$thread->getId() の構文が使えなくて $thread['id'] に全部書き換えないといけませんけど><
サンプルに合わせて言い方変えちゃいましたけど、
実際はfetchArray()で取得して、foreach()でループさせました。
とりあえずうまく行ったようです。
$form->isValid()に失敗したとき、失敗の内容はどうやって取得できますか?
具体的には、CSRFチェックに引っかかったとき、自動的にhoge/newにリダイレクトさせたいんです。
>>224 sfErrorSchemaにでも、入ってるんじゃないの?
$form->getErrorSchema()だったかな?
特定のユーザーを、強制ログアウトさせるにはどうすればいいですか?
>>226 myUserの初期化メソッドで通常の処理の後にIDみて強制ログアウトする処理を足す。
>>227 すいません、そうゆう意味じゃないです。
たとえば、管理者が荒らし行為真っ最中のユーザーを見つけたら、
そいつのセッションやらクレデンシャルやらをクリアしてログアウトさせることをイメージしてました。
セッションにユーザーIDを入れておき、
全セッションファイルをトラバースして、
「id|i:(\d)+:123;」みたいにマッチしたファイルを削除すればいいかな?
symfony関係なくなっちゃうけど。。。
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");
結果、日付の区別無しに、ログの総数が返ります。
恥ずかしいミスした!
DoctrineCorectionは、DoctrineCollectionの間違いでした^^;
>>228 それならis_active int(1)とかでフラグ項目をDBのユーザーテーブルに持たせておいて、公開側では
myUserの初期化で$dbuser->getIsActive()の値を調べて強制ログアウトさせればいいんじゃない?
強制ログアウトさせたいユーザーは、管理者が裏画面からis_activeの値を更新して強制ログアウト側に
落とす。
username password is_active
232 :
231:2010/10/14(木) 19:08:38 ID:???
ごめん、途中送信。
username password is_active
testuser ****** 1 ⇒ログインできる
nguser ****** 0 ⇒ログインできない&強制ログアウト
myUserにコンストラクタ定義すると、深い迷路に迷い込めそうな予感。。。
234 :
229:2010/10/15(金) 17:53:24 ID:???
ちょっと語弊がありました。
グループ化された日付が1つだけの場合、グループ化されていないままのレコード総数が返ります。
日付が複数の場合、正しい値が返ります。
分かったら当たり前だけど、myUserのコンストラクタは
public function __construct(sfEventDispatcher $dispatcher, sfStorage $storage, $options = array())
{
parent::__construct($dispatcher, $storage, $options);
}
って書かないとダメなのね。__construct()とだけ書いてちょっと泥沼になった。
テンプレート内でvar_dump()すると、指定した変数以外もすんごい量がダンプされるんですけど
$thisとかも見に行ってるんですか??
>>236 変数といってもDoctrine_Recordのオブジェクトが入ってる変数だったらものすごい量でて当たり前。
238 :
nobodyさん:2010/10/16(土) 17:14:44 ID:JUO6sOS6
フォームで、ユーザーに改ざんされたくない値を扱う方法で質問です。
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 :
nobodyさん:2010/10/16(土) 20:04:03 ID:JUO6sOS6
セッションがタイムアウトして、AuthenticatedとCredencialがクリアされたのに、
$this->getUser()->setAttribute()した値が残ってるのですが、
これって普通ですか?
>>239 認証とセッションデータをごっちゃにするなよ
241 :
nobodyさん:2010/10/18(月) 18:54:39 ID:3g1bUgIr
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 :
nobodyさん:2010/10/19(火) 02:27:53 ID:0CIYXc+U
ユーザー情報を持つ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 :
nobodyさん:2010/10/19(火) 21:06:26 ID:0CIYXc+U
sfWidgetFormDoctrineChoice::getChoices()
が呼ばれるのはrender()の時だけ?
大ポカだった。
244 :
nobodyさん:2010/10/20(水) 16:50:03 ID:mJZvzEer
sfGuardPluginを使わずに、自分でログインページを作ったのですが、
is_secure:true にした場合にログインページにforwardしてくれるのはいいのですが
認証成功後にforwardする前のページにredirectするにはどうすればいいでしょうか?
245 :
239:2010/10/21(木) 01:56:28 ID:???
認証情報はセッションに入ってるものだと思ってました。
認証情報はどこに保存されているんでしょう??
246 :
nobodyさん:2010/11/04(木) 18:06:43 ID:kCotlNfK
ファイルアップロードで、ファイル名の「'」が「\'」になるんですけど
これってSymfonyの問題ですか?
PHPも初心者なもんでどうすればいいのか分かりません。。。
問題があるとしたらファイル名に「'」を使ってることかな
php初心者というかパソコン初心者レベルだな
セッション(認証?)が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
factories.ymlに書くんだと思う
user:
class: myUser
param:
timeout: 86400
こんな感じ
さんくす!
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を作ると治るという情報があったのですが
治りませんでした。他に解決方法はありませんでしょうか?
>>252 credentails: [admin]
じゃなくて?
sfDoctrineGuardPlugin使ったことないからよくしらんけど
254 :
252:2010/11/13(土) 21:33:07 ID:???
日別のアクセス数を集計しようとしてるのですが、正常にうごきません。
日付の比較がおかしくなっている感じがします。
スキーマはこんな感じです。
AccessLog:
tableName: access_log
actAs: { Timestampable: ~ }
columns:
user_id: varchar(50)
コードと同等(と思っている)の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();
ついでに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'
(たぶん)解決しました。
->from('accesslog as a')
じゃなくて
->from('accesslog a')
に変えると期待通りに動きました^^;
夜中3時間悩んだのに、昼に起きて5分で解決しました。
休憩や睡眠って大事ですね。みなさんもがんばってください。
なんで$endの行が無いときにうまくいったかは謎のままですが。。。
sfDoctrineGuardPluginって使ってる人いる??
symfony慣れてないくせして導入してみたんだけど、symfonyとバージョン合ってないのかな?
sfGuardRememberMeFilterが機能してない気がする。
settings.ymlで
enabled_modules: [default, sfGuardGroup, sfGuardUser, sfGuardPermission, sfGuardAuth, sfGuardForgotPassword]
を記述しても、バックエンドに追加されてない。
sfGuardUserは手動でバックエンドに追加できるけど、sfGuardPermissionは足りないファイルがたんまり。ネットで拾ってきてもまともに動かない。
あと、save-fixtureしてリロードすると、パスワードがハッシュされてログインできなくなる。
このあたり、どうにかなりませんか?
260 :
nobodyさん:2010/11/15(月) 21:25:47 ID:WH+q5o59
こうゆう複雑な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;
これ、どうゆう意味ですか?
> 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 :
261:2010/11/15(月) 23:41:34 ID:???
#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
sfGuardPluginついでに。
> $this->setWidget('user_id', new sfWidgetFormDoctrineChoice(array('model' => $this->getRelatedModelName('User'))));
フォームのプルダウンでuser_id=0のアカウントを選択してポストすると、
user_id=1として格納されてしまいます。
なんで〜??
user_idをauto_incrimentにしてない?
265 :
261:2010/11/16(火) 13:36:35 ID:???
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 :
261:2010/11/16(火) 13:38:26 ID:???
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
フォーム難しいですね。。。
スキーマでは user_id(type:integer) にリレーションしてるんだけど、
フォームでは user_name(type:varchar(255)) で入力したい場合はどうすればいいですか?
268 :
267:2010/11/16(火) 21:27:44 ID:???
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 :
267:2010/11/16(火) 21:31:08 ID:???
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 :
267:2010/11/16(火) 22:50:03 ID:???
コンストラクタ上書きでできたけど、上記含めてお作法的にこれでいいんかな。。。
271 :
267:2010/11/16(火) 23:45:05 ID:???
このスレにはお世話になってるし、
だれかの役に立つかもしれないから、動いたコンストラクタのコードも一応書いときます。
けんちゃんより(はぁと)
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);
}
他システムへのアクセスがあったときに、タスクを用いてSymfony側にアクセスログを取ろうとしています。
実行すると「There is no open connection」というエラーが出てしまいます。
なにがおかしいんでしょうか?
> $databaseManager = new sfDatabaseManager($this->configuration);
> $connection = $databaseManager->getDatabase('links')->getConnection();
を追加してみたのですが、
「 Database "links" does not exist.」
というエラーが出てしまいます。これは正しいDB名です。
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']);
}
}
>>273 ・extends sfDoctrineBaseTaskにする
・executeの冒頭に
$configuration = $this->createConfiguration('users', 'cli');
new sfDatabaseManager($this->configuration);
と書く。
理屈は知らんがw
doctrineならこれで動くんじゃね
あ、ごめん。createConfigurationの最初の引数はapp名で。
できた〜!
しっかし重いなぁ。。。
まだ連動させてないけど、Doctrineがログ吐くのが悪さしないといいんだけど。
(-quiet指定したら、"-u","-i","-e"オプションが無いとエラーが出たのであとで調べる。)
マイグレーションについてなんですけど、
カラムの追加は公式ドキュメントでなんとなく分かりました。
ただ、テーブル(既存テーブルとのリレーション有り)を新たに追加する場合は
どうすればよいのでしょうか?
Symfonyが吐いたテーブル作成のSQL文をコピペしてprod環境で実行、
モデル等のファイルをアップロード、
キャッシュクリア
というような手作業になるのでしょうか?
ビルドはいらないですよね?
まだあまりsymfonyを理解していないのですが、
symfony doctrine:build --all --and-load
すると、まずデータベースがdropされますよね?
複数プロジェクトで共通のユーザー情報マスタDBを使うつもりでいるので
1つのプロジェクトを更新するたびにユーザー情報がdropされると困るのですが、
どのように構成すればよいでしょうか?
#仮にユーザー情報マスタDBのスキーマだけを持ったプロジェクトを作って、
#ほかのプロジェクトはユーザー情報DBをスキーマに記述しない構成も考えたのですが、
#モデル等が作られないのでリレーション等が働かない気がしています。
初心者のくせにサーバでsymfony運用始めちゃったんですけど、
新しいテーブル追加するにはどうすればいいですか??
サーバでbuild-allするとdropしちゃいますよね?
一旦save-fixtureすることも考えたんですが
sfGuardPluginなんで、パスワードが変わっちゃいますよね?;;
>>281 build-allじゃなくて必要なタスクだけ実行すればいいんじゃないの?
やり方は色々あると思うけど
例えば新しいテーブルはSQLで作って
symfony --xml build-schema
symfony build --model
symfony build --forms
symfony cc
とか。
283 :
281:2010/12/27(月) 05:22:49 ID:ZrwXahVr
遅くなりました。
ちょっとそれでやってみることにします。
駄目フレームワークの典型symfony
だから誰も使わないし流行らない。
2.0で大きく変わるんだから、自身で悪い点は分かってるんだろうよ。
フレームワークは所詮道具なんで、どれを使ってもいくつも使ってもいいと思う。
ケースバイケース、適材適所で。
1個覚えれば他に移行するのも楽だよ。
俺はsymfonyともPHPとも心中する気は無いけど、
それでも、今現在の最善策だと思って使ってく。
5年も経てば、CakeでもZendでもない新しいフレームワークにみんな移ってると思うよ。
そんな気持ち。
多言語サポートしたいんだけど、
URLにdomain.com/jp/とかdomain.com/en/とかアドレスを分けたくない場合は
どうすればいいですか?
サーチエンジンからすると、分けてたほうがいいのかな??
なぜ英語はen(english)なのに日本語はjpですか?
その流れではjaなのではないのですか?
symfony使いこなせる人はスキル高いと思うよ
symfonyから学ぶことはたくさんある
symfony2.0への前準備として1.4勉強するといいよ
2.0のチュートリアル等の日本語化は誰がやるか決まってるの?
>>289 symfonyユーザー会で分担してやるんじゃね?やる気があるならユーザー会へ立候補どぞー
チュートリアルやってみたけどSubversion導入するところでめんどくさくなって挫折した。
>>284 まぁお前が無知だから使われてること知らないだけだけどな
Doctrineについて質問だけど、join系にサブクエリって入れれる?
どうもやり方が見つけられない・・・。
294 :
nobodyさん:2011/01/15(土) 13:43:19 ID:PxyuICb1
>>286 JavaScript で対応。jQuery プラグインなら jquery.localize.js とか MS 謹製の jQuery Globalization Plugin が見つかるね。
295 :
nobodyさん:2011/01/15(土) 13:44:44 ID:PxyuICb1
>>289 主だった人は執筆やら勉強の会の準備に忙しいから、
296 :
nobodyさん:2011/01/15(土) 13:57:41 ID:PxyuICb1
>>295 のつづき。すぐに翻訳はそろわないと思うよ。ただ、コードサンプルはわかりやすいから、英語が読めなくても内容をかなりつかめるんじゃないかな。
297 :
nobodyさん:2011/01/15(土) 14:10:43 ID:PxyuICb1
VPSも安くなったし、もう無理してPHP使う必要無い時代になったな。
299 :
nobodyさん:2011/01/15(土) 22:12:45 ID:PxyuICb1
>>298 パフォーマンスの問題というよりも、PHPでは体験できない新しい勉強をしたいということではないだろうか。世界の状況はどんどん変わってゆくのだから、
>>285 と同じことだけど特定のフレームワークや言語に囚われる必然性はないよ。
シンプルとはいえない
VPSだからPHP要らない?
お前は何を言っているんだw
>>298の言いたいことはよく分かる。
PHPなんて糞だと思いつつも、格安鯖にはPHPとPerlしかないし…
と、他の言語に興味がありながら、なかなか手を出せなかった人にとってはいい転換期だと思う。
インフラの心配なく、自動スケールするGoogle App Engineとかもあるしね。
JavaとかPythonもやってみると意外と面白い。
確かに
>>298が何を言おうとしているのかその意図がわからんな
VPSにしてWAS入れてとかの話なのか?
まあここはsymfonyスレだが・・
ルート権限あるなら、mod_perlでもPassengerでも自由にインストール出来るから名。
これまでのレンタルサーバの共用プランだと、mod_phpかPerl/CGIしか選択肢がなかった。
そういう事だろう。
Perlも最低限SSHでシェルにアクセスできんと
local::libでCPANモジュールぶっこみができないのがつらいところ
Doctrineで新しくレコード追加したわけだが、
追加したレコードのIDが取得できん。
$xxxx = new AAAAA();
: (各種設定setXXXX())
$xxxx->save();
$xxxx->getId();←常に0が返ってくる。
別のテーブルでも試してみて、原因は複合主キーだとは
わかっているんだが、どうやってInsertしたテーブルの
キーを取得すればよいのか誰か教えて欲しい。
スマホ対応どうしてますか?
$xxxx->id は?
symfony2勉強会人気ありすぎワロタ
ZF人気なさすぎワロタ
なぜ、Symfonyのスレが盛り上がらないのか?
その答えは単純明快である。
Symfonyの素晴らしさを理解できる優秀なエンジニアは
この世に一握りしかいないからである。
世間の評価など気にせずに、優秀なエンジニア達は
迷わずSymfonyを使えばいい。
Symfonyの素晴らしさを理解できる優秀なエンジニアだけで
Synfonyを独占すればいい。
www
APIの結果をページングしたい場合、
sfPagerを継承して独自のページャを作る、っていう方法であってますか?
手嶋屋のおかげでsymfonyの評価がた落ちだよ。
最近、諸事情でしぶしぶCakePHPを触ることになったのだが、
やっぱCakeのがシンプルで融通聞くと思い始めた。
symfony2は原型とどめてないしビジネス的に見てもCakeかなあ・・・
あとやっぱりschema.ymlとmigration両方書くのもめんどい。
symfonyつぎはぎすぎる
symfony1.0とPHP5.3って相性良くないですか?
なんかデバッグしにくい妙なエラーが・・
無理に5.3にせずに5.2で行く方が無難かな
newの前にある&を取ればいーんじゃね?
自分の書いたクラスでメソッドの修飾子をpublic publicと二回書いてて
5.2まではそれでも動いていたのが、5.3では動かなくなっていて
しかもそれがバッドノウハウ的にエラー表示を消してるところで起きていたので分からなかっただけでした・・orz
Symfony2のフォームについて教えてください。
一覧画面の各レコードの端にチェックボックスを置き、
チェックされたものを、一覧の下に用意した削除ボタンで一括削除、
というような事をしたいのですが
フォームをどのように作ればいいんでしょうか。
当然ながら削除チェックボックスは、永続化するものではありません。
(1) 削除対象のエンティティ&そのフォーム
(2) (1)に、削除チェックボックスを足したVO&そのフォーム
(3) (2)の配列を持つVO&そのフォーム
こんな感じで3重の入れ子にすればいけるかな、と思ったんですが
(2)の段階で既に画面表示がエラーになり、
考え方がおかしいのか、どこかで実装ミスしてるだけなのか判断できず困ってます。
そもそも↑この構成が面倒くさすぎるので、もっと簡単にやれれば嬉しいのですが。
a
Symfony2使ってる奴なんて奇特すぎる
DI、AOP、Agile、TDD、ファックだぜ〜
Symfony+Aptana(Eclipse)で開発しています。
AptanaにSymfonyコマンドを登録してやっているのですが、
他のSymfonyプロジェクトにエクスポートして持って行くと
うまく動いてくれなくて、結局手作業でパスなどを修正しています。
なにかうまく動かす方法はないでしょうか?
security.ymlについて質問させてください。
OpenPNE上で開発をしているのですが、$base_url/member/$idに対して、
URLの$idがどんな整数を受け取っても認証させるようにするにはどのように設定ファイルを書けばよいのでしょうか?
それとも複数のURLに対してまとめて設定するのは不可能なのでしょうか?
memberモジュール内で、
all
is_secure: false
$id
is_secure: true
credentials: admin
のようにしたいのですが、webや過去ログを見てもそれらしいものが無かったので、
ご存知の方がいらっしゃいましたら、お知恵をお貸しください。
すみません、symfonyで画像ファイルをデータベースに保存するのはどういう書き方になるのでしょうか?
Openpneの開発なので、file_binテーブルに入れる形にしたいです
330 :
nobodyさん:2011/12/08(木) 15:13:46.08 ID:ift+em7E
どなたかDQLの書き方をお教え下さい
以下、結果は同じですがDQLでの指定がわからず…
SELECT * FROM Table1, Table2 WHERE Table1.id = Table2.id
SELECT * FROM Table1 JOIN Table2 WHERE Table1.id = Table2.id
addFrom
332 :
nobodyさん:2011/12/10(土) 02:17:59.00 ID:ECmz/c7m
?
$q->from('Table1 t1')->addFrom('Table2 t2')->where('t1.id = t2.id')
$q->from('Table1 t1')->innerJoin('Table2 t2')
とか。
まちがえた
$q->from('Table1 t1')->addFrom('t1.Table2 t2')->where('t1.id = t2.id')
$q->from('Table1 t1')->innerJoin('t1.Table2 t2')
かな。
それってDQLじゃないんじゃ?
$q = $em->createQuery("SELECT t1, t2 FROM Table1 t1 INNER JOIN t1.Table2 t2 WHERE t1.id = t2.id");
かな?
間違ってるかもしれない
誰かフォローよろw
組み立ててからgetDqlすればよくね?
337 :
330:2011/12/11(日) 12:46:05.30 ID:???
>>333,334,335,336
皆さん有り難うございました
doctrineはバージョン違うとかなり違うんですね…
338 :
330:2011/12/18(日) 19:39:18.47 ID:???
度々スイマセン。
みなさんのお陰で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));
>>338 まずdoctrine2が返してる生の$testの中身を見るべき。
テスト書くか、やり方わからなかったら最悪twigに渡す前の段階でvar_dumpとかでもいいから。
340 :
330:2011/12/19(月) 16:48:58.15 ID:???
>>339 アドバイスありがとうございます。
中身を見て、t2のidが取得できていることは確認できました。
ただ、やはり変数が不明です。
341 :
330:2011/12/21(水) 21:43:34.80 ID:???
どなたかお教え下さい
342 :
nobodyさん:2011/12/25(日) 01:46:29.36 ID:hWL/9d8S
メリークリスマス!
このフレームワークって流行ってないのかな?
基礎的な部分だと思うので恐縮ですが、
どなたかご教授を…
sfFilterを継承したフィルタを自作しているのですが
フィルタの中でユーザーがログインしてるかどうかで
処理を分けたいのですが、
フィルタの中でどうやったらmyUserのインスタンスを
取得できるでしょうか…
sfContext::getInstance()->getUser()
346 :
344:2012/03/04(日) 01:15:58.41 ID:???
>>345 お礼が遅くなりましたが、うまくいきました。
ありがとうございました。
symfony2劣化してないか?
なんでいちいちテンプレートの呼び出し指定しなきゃいけないんだよ
@Templateだとか$this->renderとか
Symfonyユーザー会のSymfony本(1.4ベース)とSymfony2のオンラインドキュメント
を見始めたけど、違いすぎて泣ける。
cakePHPとかRuby on Railsとか他のは使ったことがないけど、
ここまで変更が大きいのってWeb application Frameworkでは普通のこと?
Twigも2.0からの新機能?なのかもしれないけど、テンプレートの書き方も
ぜんぜん違うし・・
2.0覚えても、3.0になったらまた別物になるんだろうな・・・orz
>>348 2.0は完全に別物だな。
ただdjangoとかからの影響大きいから、そっち触ってればある程度わかるかもしれん。
軽くなったのはいいが、中規模までの開発効率はいいとはいえん。
よほどphpで自分用の勝手のいいライブラリを持ってたりしない限り、
php捨てて他の言語のフレームワーク移ったほうがいいかもしれんな
>>349 ありがとう
やっぱりこれは別物というくらいの変更ですか・・
自分ひとりで作るサイトで、PHP限定の縛りもないので
Djangoとか見てみます。
351 :
nobodyさん:2012/06/01(金) 01:48:55.10 ID:sOx9VKNN
symfony2 ゲキ難関
symfony1ですら、難しかったのに、
そもそも、symfonyのエンジニア集まらないだろ。
だから開発コスト高いよ。
352 :
nobodyさん:2012/06/01(金) 01:51:45.27 ID:sOx9VKNN
俺、元社労士で現エンジニアだけど、
プログラマーの単価は、通常の1.5倍ぐらいはあっていいと思うよ。
平均年収が450万円だったら675万ぐらいはもらっていいと思う。
学習量半端ないな。
353 :
nobodyさん:2012/06/01(金) 01:59:04.97 ID:sOx9VKNN
CAKE覚える→CAKEつかわね
ZEND覚える→ZENDつかわね
Symfony覚える→これからはSymfony2の時代です。
そのほか環境面を合わせてどれだけ、走ればいいんだ?会社でかねだしてくれないし。
354 :
nobodyさん:2012/06/01(金) 02:13:25.95 ID:sOx9VKNN
これまでの学習内容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 :
nobodyさん:2012/06/01(金) 02:22:25.13 ID:sOx9VKNN
【資格】
情報セキュリティスペシャリスト、ソフトウェア開発技術者、基本情報技術者
CCNP、CCNA、LPIC−LV2+LV1、WEBデザイン技能検定2級、OracleSilver+Bronze
VBAエキスパートスタンダード、WEBプログラミング+WEBクリエイター能力認定試験両方上級
情報処理能力検定1級、Cプログラミング1級、簿記検定2級、中小企業診断士4科目合格(運営・経情・財務・法務)
FP3級、MCA1科目、MOS上級1科目、ビジ法2級、社労士←
俺、元LSIエンジニアで現いわゆるSEだけど、
もっともらっていいはず、と思って辞めたわ。
数学、物理、回路設計技術の下地が必要な上に、
ハードウェア記述言語、各種開発・シミュレータツール、アセンブリ言語、C言語、補助的に使うスクリプト言語・・・
ただ、モノが売れないことには給料が出ないんだよ。
いまやどこのモノづくりメーカーもリストラの真っ最中。
結局、個人にしても企業にしても、いくら知識やリソースを溜め込んだところで
使いこなして生き残ることができなければ意味が無いんだよな。。
>>351 難関ってことはない。
ただ、開発効率があまり宜しくないだけ
>>356 自分で運営から開発までやりゃいいんだよ。
今ヒットしてるサービスってプログラマが一人で
やってたのが大きくなっちゃったってやつが多いじゃん。
symfony1系は不細工だけど気が利く娘
2系はパリコレで活躍できるが、地元の看板娘には使いづらいスーパーモデル。
symfony2でwebデバッグツールバーがapp_dev.phpの画面に表示されないんだけど、表示されるようにするにはどこで設定すればいい?
>>360 ビューの指定でbase.html.twigをextendsしたら出た気が。
symfony2が最強だな
小規模でも使えるのがいい
やばい。まじでやばい。
ちょっと助けてほしいのだけど「symfony cc」をしたら、
サーバが500エラーを返す様になってしまったのだけれども、
どうか神様お助け頂けませんでしょうか。
いただけません
久しぶりにPHPの世界、symfony1.xに戻ってきました。
かれこれ昔のソースを3時間ほどいじくってますが、
layout.phpを修正して「symfony cc」してもレイアウトが変わりません。
それと、index.phpが呼ばれたときはどのアクションが呼ばれるのでしょうか?
1年ちょいで痴呆が始まったようです;;
どなたかお助けを。
367 :
366:2012/07/15(日) 17:26:12.55 ID:???
routing.ymlだな。ちょっと思い出してきた。
368 :
366:2012/07/15(日) 18:03:33.36 ID:???
レイアウトもOK!余計なテンプレート作ってたみたい。スタイル悪すぎ。
symfony2はもう駄目だな。
services.xmlとかもう、設定ファイルだらけでJavaの古いクソフレームワークに退化してるわ
ymlかアノテーション使えば?
Symfobyは使いこなせもしてないのに遅いだの、わかり辛いだの言う人が多い印象
他のFWはもっとひどいぞ…
symfoby? また新手か?!
>>370 >ymlかアノテーション使えば?
アノテーションやymlは設定じゃないとでも思ってるのか?
修正・追加依頼が多いクライアントの案件でこいつを使うのは
実務者全員が死を見ると思うんですけど
むしろそういう案件向けのFWでは?
他のFWは融通きかなさすぎだし
375 :
nobodyさん:2012/09/30(日) 17:24:12.53 ID:YkWGcPob
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ページ表示されたんだが、今回のエラー初めて見るのでわからない。
誰か教えて欲しい・・・
1.4(Doctrine)なんですが、作ったモジュールを削除するにはどうすればいいですか?
アクション、モデル、スキーマ、フィクスチャ、フォーム、フィルターを手作業で消しましたが
全てのモデル等を再構築しようとすると、SQLからDB作る時点(?)でエラーになります。
(Not Found DELETED_MODULE みたいなエラーが出る)
あいかわらずsymfonyは魔窟だなぁ
1だとForm周りの作りが酷かったけど
2はマシになったのか?
>>375だけど解決した。
APCのインストールをミスってたらしい・・・
インスコし直しで解決しました
>>378 1より改善されていて、2はModelと切り離して作れるようになった ってどっかに書いてあった
1.4です。
テンプレートの国際化の際、URLにcultureを含めないで
実現する方法はありませんか?
完全にオワコン
Symfony2 で、全Controllerに共通処理させたいんだけど、どうやればいいの?Listnerが正解?
Symfony2にいたっては、終わるどころか始まることさえなかった
でかい採用事例きかなくなったなw
>>382 Listenerですね。ユーザー会の誰かがブログに書いてた。
こういうやりとり見てると、やっぱSymfonyの完成度って低いと思っちゃうんだよねー
そもそもsymfony以前の問題だから。
PHP自体捨てられつつあるし
やっぱRailsなん?
仕様変わりすぎで、メンテコスト高そうなんだが。
仕様が数年変わらないフレームワークってなんだよ
と、symfony信者が申しております
symfony信者でいいから、質問の回答を早く頼む
やっぱ時代はdjangoかpyramidだろw
>>382 効率的なWebアプリケーションの作り方という本では、バンドル内にAppControllerを作って
自前コントローラをサブクラスにするやり方も載ってた気が
>>392 AppControllerを作成して継承する場合、
全てのControllerに共通の処理をさせるには
コンストラクタに記述するってことであっていますか?
ltsもでるしsymfonyほどまともなfwないじゃん
単に日本のPHP技術者のレベルが低くては日本では流行らないだけで
symfonyがまともとはこれいかに?
他にまともなのある?
ないでしょ
まぁ、いろいろ見たけどMVCとしての完成度は群を抜いて高いんじゃないか?
あ、2のほうな
ただ、現実的な問題として、これをいじれるような大きい案件
俺は受注できねぇんだよw
少なくともPHPの中では一番まともだなsymfony2は
使わないけど
例えば、どれと比べてsymfonyがまとも?
symfonyにできてCakeにできないところって?
>>399 できるだけなら素のPHPでもできる
それにFWとしての側面はsymfony2の一部でしかないし
小規模ならsilexもあるし、作りとしてはsymfony2以外選択肢ない
Zendくらい
抽象度が高い構造を持ってることと
他と比べて厳しめの規約を持っているってことだな。
まあ、規約を知るコストはあるし、
自分ルールで書きたくなる衝動を押さえるのがすごく歯がゆいこともあるが、
メンテはしやすいよ。
まあ、短期で作り捨てしてる人には向いてないが、
アクタが多数だったりする規模で、長期に手を入れていく場合に向いてる。
LTSもあるしね。
>>400 何が言いたいのか良く分からん。
なぜSymfony2以外に選択肢がないのかの説明を明確にして欲しい。
Zendはもっとたいしたことないし。
>>401 Zendもそうだけど、抽象化の度合いが無駄だと思う。
まぁsymfonyは、Zendほど無駄じゃないけど。
学習コストが高過ぎるよね。ほとんどの人はsymfonyの思想を理解できずに、オレオレ実装しちゃって、
仕様が入り混じって、ただでさえパスタなのに更にパスタになってる。
だったらsymfony使わずにオレオレ実装だけで作って貰った方がメンテしやすいシステムをいくつか見てきた。
つまり、Zendもsymfonyもダメなのは、抽象化が作者の趣味の領域になってると思われる点。
信者は盲信してるから、死後の世界を信じて苦行にも耐えるけど、まともな人間はとっとと見捨てる。
しかしZendは本当に使う価値がない。
Webアプリを作る上で最も重要なパーツは、FormとDBなのに、この2つが、あってもなくてもどうでもいい機能しかないんだよな。
不必要な機能ばっかりワンサカとある。
そういう意味ではDispatchしか使い道がないCIと価値は等価。
>>403 日本のPHPerは使いこなせないのが多いだろうね
cakephpはひどすぎるけど日本じゃ人気
日本は回線は世界一なのに開発者は低レベルだからな。
PHPユーザに限らず。
とりあえずPHPはさっさとマルチスレッドを実装しろ
>>407 例えばCakeのどこがひどい?
い一番ひどい所を教えて。
>>408 日本の開発者のレベルは意外と高いよ。
同じ国にいるのと、日本人のネガティブカルチャーが、同民族を貶めたいと思う気持ちで、そう思わせるだけ。
底辺のレベルはアメリカだってひどいよ。
>>410 高くねーよ
例えば日本発のフレームワークで世界に使われてるものって何?
他に比べて高いってんならそう判断できるソースを
仮に開発者のレベルが高かったとしても
リーダーを名乗って複数人束ねて外に表現していく能力は日本は低めなので
フレームワークのたとえはよろしくないかな。
あとそもそも学力低めの人がネットで文字書くのは日韓くらいだから
ネットだけ見てると日本のレベルが低く見えてくるってのもあるかもね。
>>411 なんで基準がPHP用のフレームワークなんだよ(苦笑
基準そのものが低いだろ…トホホ
日本発で開発的に使われてるプログラミング言語はあるけど、中国、韓国、インド、ドイツ、フランス、イギリス発で世界的に使われているプログラミング言語ってあったっけ?
日本人はフルスクラッチでOSを開発したけど、中国、韓国、インド、ドイツ、フランス、イギリスで開発されたOSってあったっけ?
>>412 君の書く日本語の方が、レベルが低くて心配だよ…
>>410 たぶん日本人開発者は平均的には他国の多くより上だろうと思う。
上は弱そうだよね。
別に頭が悪いんじゃなくて、やったるぜーがないというか。
自分もないですorz
>>349 >よほどphpで自分用の勝手のいいライブラリを持ってたりしない限り、
>php捨てて他の言語のフレームワーク移ったほうがいいかもしれんな
これはsymfonyがPHPフレームワークで最強って言いたいんでしょうか?
そんなこと手嶋屋が看過しませんよ!!しませんからねっ!
どなたか教えてください。
Ver1.4です。スキーマでmail,passwordを定義、
フォームでmail,password,re_passwordを作りました。
DBにはre_passwordを入れたくないのですが、どうすればいいでしょうか?
よろしくお願いします。
そういうくだらない問題を解決しなきゃいけないから、symfonyってホント駄目だと思うね…
ちなみに1.4系は1.2ほど使ってる人がいないから、解決策知ってる人が果たして現れるかどうか…
試しにアクションでre_passwordを追加しようと思ってフォームからre_passwordを消したのに
php symfony doctrine:build --all --and-load --no-confirmation
してもBaseフォームやschema.sql、DBにre_password(64)が作られる謎の現象が発生・・・。
それは使う側からみると謎の動作だけど、開発者側から言わせれば、仕様通りの動作なんだろうなぁ。
schema.yml → モデル、フォーム、DB が作られるのかと思ってましたけど、
他にもモデル、フォーム等を作るのに参照されているファイルってあるんですか?
422 :
419:2012/11/11(日) 23:29:41.07 ID:???
モデルにゴミが残ってました・・・。
解決して良かったね
>>418 そういうくだらない問題が皆無なフレームワークを是非教えてください
425 :
nobodyさん:2012/11/14(水) 19:53:35.42 ID:zP8rSMne
symfonyっうより、Doctrineがダメなんじゃね?
だいたい、なんでカラム名をキャメルケースに変換しなけりゃならない必然性があるわけ?鬱陶しいちゅうねん
そもそも1.2はまだpropelがメインORM
modelなら、カラムuser_idがあるとして、
$model->getUserID()じゃなくて$model->user_idで取得できなかったっけ?
428 :
nobodyさん:2012/11/17(土) 18:15:20.39 ID:J5xOH7kR
>>425 それを言ったら、Cakeの複数形の方が鬱陶しい。
1.4系です。
デフォルトのアクションで、executeDeleteの時だけ
$request->checkCSRFProtection();
するのはなぜですか?
executeCreateの時は自動でやってるんですか?
430 :
429:2012/11/26(月) 14:34:56.47 ID:???
$form->isValid()
でCSRFチェックを行なっていて、deleteではフォームを見ないから、
という認識で良いのでしょうか?
てす
432 :
71:2012/12/13(木) 08:49:46.30 ID:???
テストは失敗です
Symfony1.4で日本語メールを送る方法を色々とググって
試したのですが、理解が足りないのか、なかなかうまく行きません。
みなさんはどの方法を使っていますか?
URLかプラグイン名を教えて下さい。
$message = sfContext::getInstance()->getMailer()->compose();
$message->setCharset('iso-2022-jp');
$message->setEncoder(Swift_Encoding::get7BitEncoding());
//タイトルと本文はmb_convert_encodingでJISにしてからセット
で行けるよ。
435 :
71:2012/12/25(火) 13:48:56.16 ID:???
やっぱ、sfのメール送信はいけてないと思うわー
じゃあ何ならいけてるの?Zend_Mail?mb_send_mail?それとも門外不出の俺俺ふれーむわーく?
少なくともデフォルトで多言語化されてないとダメだろ
日本語メールに対応していないフレームワークは多いと思うけど、少し手を加えればいい話でしょ。
>434みたいにではなくもう少し根元を変更してしまえば気にせず送信できるようになる。
CMSのez Publish5がsymfony2になったね
そんなマイナーなCMS知らんがな
ez publishのレベルでマイナーとか言ってる奴は、転職したほうがいいわ
マジでそんなの無名
Symfony2を採用した時点で普及せんがな
普及っていうのが
>>443みたいな素人の個人サイトでも使われるって意味なら、
間違いなく普及しないだろうな。
エンタープライズ向けだし。
手嶋屋のダメさがSymfonyのダメさになってるよな
SNS作るのにどんだけかかっとんねん
Symfonyやめて他のフレームワークに移ったら、大便出た時ぐらいすっきりするぜ。
いっそのことPHPやめて他の言語に移ったら、釣りから帰って風呂入った時ぐらいすっきりするぜ。
俺も昔はSymfonyが最強だと思ってたが大間違いだったわ。他の世界を覗いてみるもんだ。
symfonyが最強だなんてご冗談を
たぶん、すごい幸せな人なんだよ
449 :
nobodyさん:2013/03/16(土) 15:35:14.45 ID:M2Xy8ZlI
レンサバでセッションが30分で切れてしまうのですが、
ページ開いている間は切れないようにしたいです。
どのようにすればよいでしょうか?
ajaxでポーリング
>>446 本職のプログラマでPHP好きな人はほとんどいないが、いかんせん求人ではPHPが圧倒的に多い
自分はRailsが好きだけど、諸般の事情でPHPばかりやるはめになってる
452 :
nobodyさん:2013/03/18(月) 03:37:53.31 ID:xUKiG9Ar
962 :非公開@個人情報保護のため:2013/03/15(金) 13:51:30.88
お知らせ
市原警察署の生活安全課の帰化人創価警官の指導の元、
入学式から2週間ほど、在日の創価学会員を主体とした自称防犯パトロールが、
2週間ほど行われることになりました
生活安全課の指導であることと、パトロールであることは、
絶対に公言してはいけないとの指導も、帰化人創価警官より出ています
期間中は2人組の在日の創価学会員が、頻繁に創価批判者の自宅周辺を、
うろつき回ると思われます
日本人の方は、充分に注意してください
>>451 >
>>446 > 本職のプログラマでPHP好きな人はほとんどいないが、いかんせん求人ではPHPが圧倒的に多い
> 自分はRailsが好きだけど、諸般の事情でPHPばかりやるはめになってる
だからクソみたいな納品されんのか
454 :
449:2013/03/22(金) 21:11:45.11 ID:???
>>450 定期的に通信させる関数を検索したら
periodically_call_remote()
というのがあったのですが、実際に呼びだそうとすると
未定義とエラーが出てしまいます。。。
>>454 どこで見つけたの?
それ、誰か自分で実装しただけとか?
456 :
449:2013/03/25(月) 14:40:10.19 ID:???
最近Symfony2を勉強しはじめた者ですが、
アドバイスをいただきたいことがあります。
共通のライブラリを使う場合は、
/vendor 以下に格納するように設計されているというのが分かったのですが、
オートロードのパスのとおし方が分かりません…。
/vendor/composer/autoload_namespaces.php
こちらに追記すれば良いのかと思ったのですが、
さのファイルはネームスペースを使っているライブラリ用みたいですし…。
https://github.com/serbanghita/Mobile-Detect これをバンドル内で使いたいのでオートロードさせたいのですが、
どのような位置に置いて、どのファイルをいじってパスを通せば良いのか、
どうか助言をお願いします。
>>457 composer対応してるライブラリみたいだからcomposer.jsonのrequireに
mobiledetect/mobiledetectlibを足すだけで行けるよ。
足した後はphp composer.phar update
>>458 ありがとうございます!
composerも全然理解できていなかったので勉強します。
なおcomposer非対応のライブラリを使う場合は
どのようにするものなのでしょうか。
vendor以下に自分で適当にディレクトリを作って
そこに放り込むのでしょうか。
加えての質問失礼します。
symfony2でのtrailing slashの扱いについてです。
サイト内リンクを貼る際に
{{ path('link') }}
こちらで /pageurl/ この出力を期待しているのですが
symfony2ではURL末端はスラッシュなしが標準になっているようで
どのようにRouteの設定をしても /pageurl こうなってしまいます。
解決策について、どうかお知恵をお貸し願います。
失礼しました
>>460は勘違いでした。
シンプルに
@Route("/test/", name="test")
これだと期待通りに、
path('test')で/test/が出力されます。
/index.htmlがリクエストされた際にも対応しようと下記のにすると、
@Route(
"/test/{filename}",
name="test"
requirements = {
"filename" = "|index\.html"
},
defaults = { "filename" = "" }
)
path('test')で出力されるのは/testになってしまいます。
上記パターンではもスラッシュありを出力するような書き方がありましたら
どうかご教授願います。
symfony1.4を使用しており、アプリケーション名を変更したら、確かに画面に表示はされるんですが、
画面の一番上の行に
Warning: include(Test.php): failed to open stream: No such file or directory in 〜変更前のパス〜
Warning: include(): Failed opening 'Test.php' for inclusion (include_path='.:/usr/share/pear:/usr/share/php') in 〜変更前のパス〜
というエラーが出てきており困っております。
変更したのは、以下の箇所なんですが、他に変更するべきところってありますか?
/appsの中にある、アプリケーション名(ディレクトリ名)を変更
/web配下のファイル名とその中に記述のある、$configuration = ProjectConfiguration::getApplicationConfiguration('アプリ名', 'dev', true);変更
symfony ccをしてもダメで、cacheフォルダから昔のアプリ名のディレクトリを削除してもダメでした。
他にここを見ろってわかる方いたらお願いします。
symfony1系って、アクションとテンプレートが近いディレクトリにあるから、編集しやすいんだよな
rails系にしてもsymfony2にしても、コントローラとテンプレートが遠すぎて探すのめんどい
CSSデザインが当たり前の今時、デザイナーがHTMLいじらす必要なんて無いし、絶対近いほうがいいと思うんだが
近いとか遠いとかの概念がよくわからん
シンボリックリンクで好きに配置すれば?
>近いとか遠いとかの概念がよくわからん
そんなこともわからないほど頭が弱いなら無理して考えなくていいよ
そんなシンボリックリンクを作る手間をかけさせる事自体無駄な設計
>>459 ライブラリ側がcomposer非対応でもPSR-0に対応してればcomposer.jsonのautoloadに書くことで使えるよ
PSR-0じゃなかったらapp/autoload.phpで手動で$loaderにパスを追加することになる。
$loaderはSymfony\Component\ClassLoader\UniversalClassLoaderじゃなくて
Composer\Autoload\ClassLoaderだから書き方は要注意。
>>466 ありがとうございます!
とても勉強になりました。
書き方も気をつけてやってみます。
Symfonyバージョン2ですがtwigを編集したり
コントローラーを書き換えたものが実環境に反映されません。
php app/console cache:clear --no-warmup
これでキャッシュがクリアされるという記事を見ましたが
実行しても反映されません。
/app/cache/prodを削除するとやっと反映されます。
web/app.phpでは
$kernel = new AppKernel('prod', false);
となっていますがここら辺に間違いがあるのでしょうか。
お詳しい方教えてください。
>>468 app/console cache:clear --env=prod --no-debug --no-warmup
--envで、キャッシュクリア対象の環境の指定が必要(この場合は、prod)かな。
指定がない場合デフォルトだとdev環境の方のキャッシュがクリアされるはず。
>>469 ありがとうございます!
クリアできました!
こういうのは英文のドキュメントくらいしか
情報が載っているサイトはないのでしょうか。
>>470ですがすみません、日本語ドキュメントにも書かれていました。
教えて下さい。
Symfony 2.2.0 → 2.2.1 にアップデートしたいのですが
composer のコマンドひとつでアップデートできるものなのでしょうか。
>>472 プロジェクトのディレクトリに移動して
php composer.phar update
本家とのタイミングで2.2.1以上になる事態を避けたいなら、
バージョンが上がりすぎないようにcomposer.json で
"symfony/symfony" のところを 2.2.1 に書き換えて実行。
最近はあまりないけど、たまに動かん時があるから注意。
>>473 ありがとうございます!
さっそく試してみます!
iPhoneアプリ. Windowsアプリを売って生き残れ Ver 1.7 リンク数61
Http://qr. net/kh4y
476 :
nobodyさん:2013/05/21(火) 22:52:07.42 ID:eIWlTZvw
symfony2を使っているのですが、twigファイル内で普通のPHPコードを
書くことは出来ないのですか?
例えば、PHPの関数strtotimeを使いたい場合、twigファイル内で
<? echo strtotime(〜); ?> とやってもうまく行きません。もちろん、
twigファイル内で{{ 〜|strtotime() }} と書いてもうまく行きません。
Smartyの{php}{/php} のように、普通のPHPコードを書くことは出来な
いのでしょうか?
>>476 できません。
strtotimeを使う処理はコントローラに書くべき。
モデルに書くべき。
本来ビューにphpコードを書かなきゃいけないというのは設計が悪いと思うけど、
そういう設計をしたいならtwigを止めてphpテンプレート使えばいいんじゃね?
というかSymfony2(+Doctrine2)でstrtotimeを使わないといけない場面が想像
できないんだが…。
480 :
nobodyさん:2013/05/23(木) 23:16:42.07 ID:zrU9EndH
>>476 様
>>477 様
>>478 様
>>479 様
ご回答ありがとうございます。twigでは書けないのですね。あるAPIを使用
して取得した時刻が「20130522」のような形式なので、これをstrtotimeして
からdateで「2013-05-22」としたかったのですが、twig内でやるべきでは
ないのですね。ありがとうございました。
>>480 Twigでは出来ないというだけで、
表示としての加工ならView側で実装すべきだよ
Twig拡張すればええんでね?
Model側でタイムスタンプに変換しておくべきとかならまだしも
strtotime() = PHPコード = Viewに書くべきでは無い! みたいなレスが多いね
イレギュラーな処理は「無理」「出来ない」で片付ける、典型的なフレームワーク脳だな・・・
普通にtwigの拡張書くだろ
cakeでも使っといたほいがいんじゃねーのw
DQLがゴミすぎて笑える
キャッシュのせいでエラー位置特定しづらいのも問題だわ
メリットが何も見えてこないんだが・・・。
これで開発効率上がった現場ってあるの?
ただの継ぎ接ぎをSymfonyとは勘違いも甚だしい。
Twig 内での書き方について教えてください。
app.request.scheme などでリクエスト内容の取得ができますが、
コントローラの
/**
* @Route(…,
* defaults = { "example" = "" }
* )
* @Template
*/
defaults で指定したexampleの値を取得することは可能なのでしょうか。
よろしくお願いします。
テンプレ変数に渡せばいいだろ
twigで変数をキーに入れてハッシュ作るって出来ないんでしょうか?
例えば
$hashkey='aaa';
array($hashkey=>'bbb');
を表現するのに
{hashkey:'bbb'}
と書くとダメって言われるんですがこれはtwig的には許されない?
>>489 defaults={"example" = "..."}がついてるアクションメソッドが$exampleをreturnしていれば(@Templateついてるから)
ビュー側でexampleで参照できる
>>492 あー、やっぱ思想的にそうしてるんですね…
これ通るように実装するのは手間じゃないだろうから、そうなのかな、とは薄々思ったんですが
gitのスレッドまで教えてもらって、とってもスッキリしました。
ありがとうございます。
symfony2なのですが、リダイレクトすると
Redirecting to リダイレクト先のURL.
と記載されたページをはさんでから転送されてしまうのですが
このページを表示させず直接リダイレクトするには
どうすれば良いのでしょうか?
/**
* @Route("/test/", name = "test")
*/
public function testAction()
{
return $this->redirect($this->generateUrl('nextpage'), 302);
}
>>495 config.ymlとか、config_dev.yml の web_profilerの設定でintercept_redirects はfalseになってる?
>>496 レスありがとうございます
はい。入っていますが表示されてしまいます
>>497 falseになってるなら、あとは、cacheクリアかな
>>498 アドバイスありがとうございます
ですがキャッシュクリアしてもやはり出てしまいます
301リダイレクトだと大丈夫なのですが…
バージョン2.3.2を利用しています
403エラーページを出したいURLも404エラーページが出てしまいます
mod_rewriteの記述はデフォルトのままから変えていないのですが
なにかテクニックが必要なのでしょうか
>>500 RewriteCond %{REQUEST_FILENAME} !-d
を追加で行けないかな?
>>501 書き加えましたがだめでした
ところで質問したあとに気づいたのですが
エラーページもSymfonyで制御して出すようにしているので
mod_rewriteは関係なかったですね…
symfony2.3.3で、doctrine:generate:crudを使用しているのですが、作成されるviewがtwigになります。
これを作成される段階で、phpテンプレートにしたいのですが、方法などありますか?
doctrine寄りの質問になるのかもしれませんが…
Softdeletable で論理削除を利用しているのですが
論理削除されたレコードがDBに残っている状態のときに
ユニーク制約のひっかかる id のオブジェクトを登録をしようとすると
制約にひっかかってしまって登録されません。
てっきり勝手に on duplicate key update 指定が入るかと思ったのですが
実行されているSQLを確認したところそういったこともないようでして…
こういったことを想定すると、オブジェクトを生成してpersistで登録するのではなく
prepareでSQLを発行して登録するしか回避法はないでしょうか
お詳しい方ご助言をお願いします
phalconのスレは無いのかな?
サイトのドメイン名によって使用するコントローラを
切り替えることは可能なのでしょうか
…Bundle\Controller\ 以下に配置したコントローラは
すべて読み込まれてしまうようなのですが
たとえば
example.com だったなら AaaController.php
example.jp だったなら BbbController.php
だけ読み込む、というようにしたいのです。
Routingの設定でhostってのがあるからそれにマッチさせれ
509 :
nobodyさん:2014/04/20(日) 22:42:37.07 ID:oUBZc4dT
>>510 なるほど
でもNotEmpty制約も効いてないみたいなんですよね
一応見なおして他の部分はサンプル通りになっているはずなんですが…