フランチョスとsymfony
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/01/24(木) 21:26:07ID:???http://www.symfony-project.org/
コードスニペット
http://www.symfony-project.org/snippets/tag
プラグイン
http://trac.symfony-project.com/wiki/SymfonyPlugins
どうぞ つ
0561nobodyさん
2008/12/22(月) 14:49:59ID:???もうここに来る奴には用済みか?
symfony propel:data-loadで
Class '?JobeetJob' not found in /usr/share/pear/symfony/plugins/sfPropelPlugin/lib/addon/sfPropelData.class.php
ってでるわ。
一度だけ成功したんだけれど、最初からもう一度やってみようと思ったら、またでるようになった。
なんか抜けてるのかな?
0562nobodyさん
2008/12/22(月) 15:32:14ID:???0563561
2008/12/22(月) 15:54:53ID:???php symfony propel:build-modelですよね。
してます。
分からないので最初からもう一度やってみます。。。
0564nobodyさん
2008/12/22(月) 18:44:54ID:???0565561
2008/12/22(月) 19:40:37ID:???キャッシュクリアもやってます。
1.0以来久々だったので復習がてらやってるんですけど。
以前はあまり悩むことはなかったのですが。
日本語訳サイトと本家を行ったり来たりしてるから、何か間違ってるかも。
明日も休みだし、ゆっくりやるか。
0566nobodyさん
2008/12/22(月) 20:26:14ID:IJDiGLGOバージョンはいくつですか?
私は1.1.6で同じ症状で困ってます。
クラス名に特定の名前を使うと出ます。
スキーマに
t_condition:
_attributes: { phpName: Condition }
id:
name: {type:varchar(255), required: true}
name_s: {type:varchar(255)}
sort_order: {type:integer, default:0, required: true}
created_at:
updated_at
fixturesに
Condition:
trafic:
name: "test"
sort_order: 1:
これでsymfony propel-build-all-load sysすると
Unknown class "Condition".
と例外投げます。
このままクラス名をHogeとかに変えるとうまくいきます。
0567561
2008/12/23(火) 04:55:42ID:???1.2.1です。
>561の自分のレスを見るとクラス名に「?」が入ってるな。。。
設定ファイルの改行コードがくさい気がしてきた…。
明日、再度頑張ってやってみよう。
0568nobodyさん
2008/12/25(木) 20:37:41ID:???0569nobodyさん
2008/12/26(金) 07:37:20ID:???0570nobodyさん
2008/12/26(金) 22:09:47ID:???ttp://wiki.rubyonrails.org/rails/pages/Framework+Performance
自鯖で運用する場合パフォーマンスからみても
RailsよりPHP+Symfonyを選択する理由はなし?
0571nobodyさん
2008/12/27(土) 01:43:38ID:???一人でシコシコやってるだけなら好きにすればいい。
0572nobodyさん
2008/12/27(土) 02:09:03ID:???phpがwebアプリケーションのシェアとっちゃったから、急激な逆転はないでしょ
0573nobodyさん
2008/12/27(土) 11:09:40ID:???DBに接続しない、単純なページ表示するのにも、キャッシュが効いていない場合は
どうなってんだってくらいRailsは表示に時間がかかる。
じゃあキャッシュ効かせればいいじゃんって話なんだけど、
ちょっとした情報を取ってきて表示が変わるようなページに対しては、
毎回表示が遅くなる、という事に。
DBまわりは、自分はPropel等使ってないから単純な比較は出来ないな。
個人的には、パフォーマンスはPHP、書きやすさはRuby(Rails)な感じ。
0574570
2008/12/27(土) 22:14:46ID:???どうひいき目に見てもPHPのが速かった・・・
0575nobodyさん
2008/12/28(日) 04:54:43ID:???0577nobodyさん
2009/01/04(日) 23:00:05ID:???0578nobodyさん
2009/01/05(月) 08:37:49ID:???0580nobodyさん
2009/01/07(水) 00:42:52ID:???日本人はやる気ないなぁ。
確かに落ち目っぽいし。
0581nobodyさん
2009/01/07(水) 00:59:06ID:???0582nobodyさん
2009/01/07(水) 11:59:39ID:E9TXficjエンジニアに英語は必須でしょ。勉強しようよ。
そういう言う俺は公文の中学生英文法を勉強してるへたれだけど。
0583nobodyさん
2009/01/08(木) 10:30:11ID:RWe/YoFS0584583
2009/01/08(木) 14:04:48ID:RWe/YoFSactionでやらないで、generatorでやってしまいました。
actionだと
Propel::getDatabaseMap($connectionName);
でDatabaseMapを取得して、どうにかするのかな?
試してないけど。
0585nobodyさん
2009/01/12(月) 05:16:23ID:???doctrine-build-all-reload
すると、データベースを一回ドロップして作りなそうじゃないですか?
その時、encodingの値を無視してDEFAULT CHARACTER SET latin1で作っちゃうんですけど
設定でどうにかなりますか?
doctrine-build-all-reloadを使わないとか、mysqlの設定をいじってデフォルト値を変えちゃえばどうにかなるとは思うのですが
symfony側でどうにかならないかなあ。
0586585
2009/01/12(月) 05:17:13ID:JXhDeiPxすいません。
0587nobodyさん
2009/01/17(土) 00:20:55ID:LLHZVk4wMySQLのENUM型みたいなの。
イメージとしてはこんな感じです。
propel:
customer:
id: ~
sex: [male, female]
0588nobodyさん
2009/01/17(土) 02:22:45ID:???ORMで定義するんじゃないの?
0589587
2009/01/18(日) 05:03:02ID:cj4gRIwuちょっとよく分からなかったので、とりあえず保留・・・
別テーブル作ってmale, femaleの2つのレコードを作って対処しました。
別の質問なんですけど、generator.yml に password, password2 という
2つのフィールドを定義しています。
modules/user/validate/edit.yml というバリデータを用意して2つのフィールド
ともにrequiredにして、sfCompareValidatorで2つのパスワードが一致しているか
チェックしてます。
それ自体はとりあえず動作したのですが、やりたい事はユーザーの新規作成
の時はパスワード入力は必須にして、更新の場合は値の入力は任意で、
値を入力した場合のみ2つが一致するかチェックさせたいです。
ゴリゴリ書けば出来ると思いますが、一番楽な方法ってどんなんですか?
0590nobodyさん
2009/01/18(日) 11:39:22ID:???シコシコ書くしかないね。
0592nobodyさん
2009/01/22(木) 16:52:06ID:???これでフォーム周りがよくなったの?
0593nobodyさん
2009/01/22(木) 22:02:55ID:???悪くなった。
0595nobodyさん
2009/01/24(土) 21:08:57ID:BN/V3l3xpostとcommentという2つのモジュールがあるやつです。
postのedit画面でcommentの一覧表示をさせてますが、
これと同じ事をadmin generator(? generator.yml を使うやつ)で
できませんかね。
0598nobodyさん
2009/01/29(木) 21:43:36ID:rSa/9joZApacheにて、BASIC認証・SSL・nonSSL
の3つのディレクトリで構成したいのですが、
symfonyに適合させるためには、
webディレクトリ下にディレクトリを作成して、
フロントコントローラを移動するのが
ベストでしょうか?
0599nobodyさん
2009/01/29(木) 21:44:00ID:rSa/9joZ0600nobodyさん
2009/01/30(金) 14:23:56ID:???ここがよくわからん
BASIC認証+SSL
SSL
NonSSL
の三本立て?
どっちにしろSymfonyとは関係なさげ
0601nobodyさん
2009/01/30(金) 21:45:58ID:???3本立ての3システムです。
これは、1プロジェクトにしたいです。
Apacheは、ディレクトリ単位ででした
設定(.htaccess等)できないので。
symfonyのwebディレクトリも3ついると
思っています。
間違いがありましたらご指摘よろしくお願いします。
なんか勘違いしてる余寒・・・
0602601
2009/01/30(金) 21:47:29ID:???○Apacheは、ディレクトリ単位でしか
0603nobodyさん
2009/01/31(土) 08:04:46ID:???公開フォルダを3つに分ければ簡単に出来る。
でも同一コンテンツでセキュリティーレベルが違うって考えが
おかしい気がする。
0604601
2009/01/31(土) 11:44:52ID:???ご返答ありがとうございます。
具体的には、>>598のやり方で、
よいという事でしょうか?
同一コンテンツではありません。
事例的には、Amazonnとか
商品サイトと、商品注文サイト、会員サイト
の3つでセキュリティレベル違うのと同じです。
0605nobodyさん
2009/02/02(月) 18:51:41ID:???その方法だね。
ただ、action内で識別するロジックを忘れるな。
0606nobodyさん
2009/02/03(火) 18:04:37ID:7F1r2xmvformから来た?hoge=huga......................といっぱいついてくるクエリーはどうしてます?
セッションに保存するのも微妙だし
テンプレートで$_SERVER['QUERY_STRING']か取得してごにょごにょするのもどうかなと。
sfPropelPager自体には無さそうですよね?
sfPropelPagerを拡張してmodel側で$_SERVER['QUERY_STRING']をどうにかする感じでしょうか?
0607606
2009/02/03(火) 18:40:10ID:7F1r2xmvこの辺をうまく使う感じでしょうか?
0608nobodyさん
2009/02/04(水) 14:13:43ID:???簡単なクエリなら作れるけどANDとかORが複雑に絡み合ったりするとお手上げ。
なにがしたいのか意味がわからない。
0609nobodyさん
2009/02/04(水) 15:27:40ID:???0610608
2009/02/04(水) 20:32:27ID:???例えば
SELECT t_job.*
FROM t_job
WHERE
(t_job.ID IN ( SELECT v_rel_job_area.JOB_ID FROM v_rel_job_area WHERE v_rel_job_area.DISTRICT_ID = 1 ))
AND
(t_job.ID IN ( SELECT t_rel_job_category.JOB_ID FROM t_rel_job_category WHERE t_rel_job_category.CATEGORY_ID IN (1, 5, 6) ))
AND
( (t_job.STATUS IN (1, 2)) OR (t_job.STATUS = 0 AND t_job.ID IN ( SELECT t_rel_job_publish.JOB_ID FROM t_rel_job_publish WHERE t_rel_job_publish.PUBLISH_ID = 1)) )
こんなクエリ作れなくない?
作れるのか?
なんかCriteria::CUSTOMを同じかカラム名でaddすると上書かれて前のクエリ消えるし
addAndですると括弧が変なところについておかしなことになるし
公式見ても複雑なものは生SQLで、みないな事書いてない?
0611nobodyさん
2009/02/05(木) 14:30:33ID:???テンプレート内で、取得したいときって
$sf_context->getActionStack()->getLastEntry()->getActionInstance()->getVarHolder()->getAll()
ってわざわざ書かないとだめ?
0612nobodyさん
2009/02/05(木) 14:38:32ID:???Criteriaがダメなんじゃなくて、そもそもその文抽象化されてないから。
まぁ俺はサブクエリビルドクラス使って対処してるけど。
0615nobodyさん
2009/02/10(火) 10:59:01ID:HED7VAZrとい問題が起きました。どこでエラーになっているかを表示、あるいはログに記録する方法はあるでしょうか?
0616nobodyさん
2009/02/10(火) 20:29:08ID:???sfValidatorManagerの拡張クラスを作って、
それをValidate実行時に使わせることってできる?
0617nobodyさん
2009/02/11(水) 20:07:05ID:???0618nobodyさん
2009/02/12(木) 13:08:50ID:???0619nobodyさん
2009/02/12(木) 17:37:15ID:???0620nobodyさん
2009/02/12(木) 22:36:13ID:???0621nobodyさん
2009/02/12(木) 23:54:55ID:???なぜか1.0のメンテナンス終了が2010年の1月で1.2のメンテナンス終了が2009年の11月なのでどちらで作っていくべきか迷ってるんですが。。。どれが良いと思いますか?
0622nobodyさん
2009/02/13(金) 02:57:30ID:???最近始めたので、1.2使ってる
なので、どれがいいかは分からない
1.2でルーティング周りのクラスが追加されていて、特にsfRouteCollectionを使用すると、より簡潔にrouting.ymlを記述出来るようなので、
これから始めるのなら、1.2の方がいいんじゃないの?
0623nobodyさん
2009/02/14(土) 03:58:23ID:???そうでないなら1.2。
0624nobodyさん
2009/02/14(土) 19:37:59ID:???同じような人、結構いそうな気がするけど。
0625nobodyさん
2009/02/15(日) 02:18:10ID:???どんなバグだったか忘れたけど
0626nobodyさん
2009/02/15(日) 02:23:40ID:???0627nobodyさん
2009/02/15(日) 02:29:06ID:???0628nobodyさん
2009/02/15(日) 04:25:24ID:???単純なパフォーマンスでも5.2系の方が優れてるはず
0629nobodyさん
2009/02/15(日) 12:28:12ID:???メール送信を実装しようと思ったのですが、
$mail = new sfMail();
とすると、
Class 'sfMail' not found
になってしまいます。
なにか設定が必要なのでしょうか?
0633nobodyさん
2009/02/15(日) 14:07:13ID:???0634nobodyさん
2009/02/15(日) 14:11:46ID:LyJslojLだね。Redhat/CentOSの5は5.1。
>>628
そりゃま、完全に1から自分でインストールできるんならね。
流石にPHP4はもう使わなくてすむとは思うがw
0635nobodyさん
2009/02/16(月) 01:09:30ID:???smfony 1.2の場合
sfContext::getInstance()->getController()->genUrl($internal_uri, $absolute);
↑url_forの実装
$internal_uriに内部URL
$absoluteは相対パスならfalse、絶対パスならtrueを渡す
0636nobodyさん
2009/02/16(月) 08:41:43ID:???0637nobodyさん
2009/02/16(月) 12:40:27ID:???0638nobodyさん
2009/02/16(月) 13:00:38ID:Eg6IU/sqリポジトリにあげる前に一度symfony plugin:install プラグイン名しちゃって
No release available for plugin プラグイン名
というエラーメッセージがでたんです。
で、その後ファイル上げてから何度やっても同じメッセージでインストールできなくなっちゃいました。
ためしに別のサーバーに入れてみたら普通にインストールできました。
symfony cc
とか
pear clear-cache
とか
rm -f cache/.pear
とか
pear channel-update plugins.symfony-project.org
とかやってみたけどだめでした。
サーバー再起動もだめでした。
どなたか方法ご存知の方いらっしゃいませんか?
0639633
2009/02/16(月) 16:25:53ID:???ありがとうございます。
$this->genUrl()
でダメだったのであきらめてました。
でも、なんでこんなに長いんだろう・・・;
0640nobodyさん
2009/02/16(月) 16:48:05ID:???0641nobodyさん
2009/02/16(月) 23:37:58ID:???補足
アクション内からなら、
sfContext::getInstance()->getController()を
$this->getController()に変更出来る(やってることは同じ。少しは短くなった?)
また、内部URLではなく、ルート名と、クエリパラメータにする値が分かっているのなら、アクション内で
$this->generateUrl($route, $params, $absolute)を呼ぶことでURLを生成することができます。
ここで、
$routeはルート名
$paramsはモデルオブジェクトか値の配列。
ただしモデルオブジェクトが渡せるのは、ルートのoptions['type'] === 'object'の時のみ。
(一言でうまく説明出来ないので、詳細はsfObjectRoute::generate()のソース見て)
配列であれば、タイプに関係なく渡せる。
クエリパラメータが不要な時は空配列(array())
$absoluteは>>635同様、絶対パスか相対パスかどうか
わたしは、アクション内でリダイレクトのURLを作成する際にgenerateUrl()を使用しています。
0642nobodyさん
2009/02/17(火) 20:01:10ID:K56TvPG0まぁ、副問い合わせも使うんだし、当たり前といえば当たり前か。
やってみたことある人いる?
0643nobodyさん
2009/02/18(水) 08:04:45ID:???DBテーブル定義を修正しようとして、schema.ymlを修正し、
./symfony propel-build-all を実行すると、
DBテーブルの内容が全部消えてしまいます。
今はダンプファイルを取っておいて、あとで書き戻すことで対応していますが、
何かもっと洗練された方法はないでしょうか?
0644nobodyさん
2009/02/18(水) 09:08:41ID:???0645643
2009/02/18(水) 09:25:54ID:???propel-load-data というコマンドがあるようです。
しかしこれは、DBにセットするデータをyamlファイルで用意してやらなければ
なりません。WEBブラウザなどからDBに入力したデータをyamlファイルに書き出
す方法は無いようなので、yamlファイルを作るのはちょっと手間に感じられます。
これならダンプファイルを取っておいて、それをエディタで修正してロードす
るほうが現実的なような...。
0646nobodyさん
2009/02/18(水) 12:45:51ID:???どうしたらいいですか?
0647nobodyさん
2009/02/18(水) 19:49:24ID:???自分は
http://www.symfony-project.org/plugins/sfPropelSqlDiffPlugin
これをつかってるよ。
0648643
2009/02/18(水) 21:35:13ID:???ありがとうございます。参考にさせていただきます。
Plugins | sfPropelMigrationsLightPlugin | 1.1.2 | symfony | Web PHP Framework
http://www.symfony-project.org/plugins/sfPropelMigrationsLightPlugin
こんなのもあるようです。Rails の Migration と同じなのかしら。
0650nobodyさん
2009/02/18(水) 21:51:22ID:???$c =new Criteria();
$c->add(TJobPeer::ID,
"(t_job.ID IN ( SELECT v_rel_job_area.JOB_ID FROM v_rel_job_area WHERE v_rel_job_area.DISTRICT_ID = 1 ))
AND
(t_job.ID IN ( SELECT t_rel_job_category.JOB_ID FROM t_rel_job_category WHERE t_rel_job_category.CATEGORY_ID IN (1, 5, 6) ))
AND
( (t_job.STATUS IN (1, 2)) OR (t_job.STATUS = 0 AND t_job.ID IN ( SELECT t_rel_job_publish.JOB_ID FROM t_rel_job_publish WHERE t_rel_job_publish.PUBLISH_ID = 1)) )
", Criteria::CUSTOM);
$rs = TJobPeer::doSelect($c);
0651nobodyさん
2009/02/19(木) 20:08:27ID:???Propelなら、モデルのsaveメソッドを呼び出した後、単にgetすればOK。
Doctrineは知らんw
0652nobodyさん
2009/02/24(火) 21:06:31ID:???symfony1.0の時はされたと思うんだけど、1.2からされなくなってるみたいで。
あと、1.2で実行したSQL文そのものって取得できますか?(1.0でのgetLastExecutedQueryのような)
0653nobodyさん
2009/02/24(火) 21:19:50ID:???SQL表示されるよ
symfonyどこにインストールしてるか知らんけど、pearから取ってきたのなら、
javascriptを有効にした上で、
data/symfony/web/sfに対して、仮想ディレクトリ(エイリアス)を作るか、
プロジェクトのwebフォルダにコピーすれば、いけるはず。
また、この情報は、実行したログを解析してるだけだろうから、ログ直接眺めてみたらいいんじゃない?
1.2から使い始めたので、getLastExecutedQueryとか分かんね。
これも、ログ見たらいいんじゃないの?としか言えない
0655nobodyさん
2009/02/25(水) 13:06:51ID:???>>654
database.ymlのclassnameをprodと同じにしてたのが原因だったみたいです。。
DebugPDOに変えたらSQL表示されました
getLastExecutedQueryはログがどうやってSQL取り出してるか探してみます
0656nobodyさん
2009/02/25(水) 13:11:42ID:???絶対実行とセットだから、サブクエリやろうとすると独自拡張に頼らざるを得ない
0657nobodyさん
2009/02/27(金) 14:01:43ID:???セッションIDをURLで埋め込むから出来ないよね?
0658nobodyさん
2009/02/28(土) 23:20:00ID:???0659nobodyさん
2009/03/03(火) 15:02:29ID:???$sql = BasePeer::createSelectSql($criteria, array());
0660nobodyさん
2009/03/10(火) 07:45:12ID:???あのさ、$c->add(ModelPeer::ID , 1);
とかやってごらん
idのとこが?になってるだろ?
?を置換する独自拡張が必要という意味だって思わなかった?
あと、第二引数は参照になってるから、 array()なんてやっちゃ駄目だよ。
勉強になったかな?
■ このスレッドは過去ログ倉庫に格納されています