トップページ⇒php
1001コメント266KB

lt;?php symfonyとフランチョスのスレ ?gt;

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/11/18(土) 08:05:59ID:???
■symfony
http://www.symfony-project.com/

■askeet
http://www.symfony-project.com/askeet

■The symfony book
http://www.symfony-project.com/content/documentationHome.html

■symfonyで作られたサイトはこちら
http://www.symfony-project.com/trac/wiki/ApplicationsDevelopedWithSymfony#Japan


ver.1まで間近 がんばれフランチョス & ファビエンヌ フュージョンで
開発パワー2倍だ!


0511nobodyさん2007/03/08(木) 07:19:41ID:???
symfony本家のカンファレンスのページに
ちんぽにーの名で書き込んだ奴
お前らの一人だろw
0512nobodyさん2007/03/08(木) 07:24:20ID:???
>>510
やめた方がいいことはないだろw
何の弊害もないんだから。
自前クラスとsymfonyパッケージ中のクラスの区別が付いて
むしろいいんじゃね?
05135032007/03/08(木) 08:34:31ID:???

インクルードすればいいのかなと思ったんだけど、、
sfのどのファイルをインクルードすればいいのか分からない。
0514nobodyさん2007/03/08(木) 15:32:06ID:???
もっと基礎からやった方がいいんじゃないか?
静的ファイルからインクルードするという意味が分からない
JavaScriptを吐いて動的に表示するというわけでもなさそうだし。
0515nobodyさん2007/03/08(木) 18:00:16ID:???
http://www.mail-archive.com/[email protected]/msg00559.html

インストールしてみたのですが、これと同じ症状が出て困っています。
読むとeAcceleratorを入れていると問題みたいなのですが
ウチはそんなの入れてないですし…。
0516nobodyさん2007/03/08(木) 19:10:47ID:???
普通のHTMLからsymfonyのviewの値を参照したいんだよ。
0517nobodyさん2007/03/08(木) 19:14:57ID:???
普通のHTMLにそんな機能はない
0518nobodyさん2007/03/08(木) 19:35:45ID:???
で、その普通のhtmlというのに表示させたい値というのは
symfonyで誰が見たどの時点の値なんだと聞いている
0519nobodyさん2007/03/08(木) 20:37:17ID:???
使ってる用語の曖昧さといい
symfony使うの早すぎる段階だろ…常識で考えて。
簡単簡単て言われてるけど全然簡単なものじゃないよこれ。
素のPHPの方がはるかに簡単。
0520nobodyさん2007/03/09(金) 01:02:21ID:???
>>516
MVCの意味とか分かってますか?
そもそも、なんでsymfony使ってるんだ?
0521nobodyさん2007/03/09(金) 03:43:04ID:???
>>507
お前はもっと公式をよく読め。
symfonyは変数もクラスもアッパーキャメルケースをコーディング規約としています。
例外は二つ、symfonyコアクラスにはsfを、そしてテンプレートでは
アンダースコアでセパレートされた名前を使います。
コアクラスでsfを使っているのは、既存のPHPクラスライブラリとの重複を避けるため。

http://www.symfony-project.com/book/trunk/02-Exploring-Symfony-s-Code#Symfony%20Core%20Classes
0522nobodyさん2007/03/09(金) 05:46:42ID:???
myActionやmyUserもMyAction,MyUserにした方がいいんかな
0523nobodyさん2007/03/09(金) 09:25:56ID:???
アッパーキャメルケースって言葉初めて聞いたw
調べてみたらなるほどこういうことか。。
0524nobodyさん2007/03/09(金) 11:19:08ID:???
http://gekibaka.s181.xrea.com/oreask/gekibaka
0525nobodyさん2007/03/09(金) 11:46:45ID:???
すみません、今日symfonyインストールしたんですが、
Win機:symfony.batができていて、symfonyコマンドも使える(init-project〜propel-model-buildまでOK)
CentOS機:phpのbinディレクトリにsymfonyはできているが、symfonyコマンドが使えない
という状態に陥って困っています。

どちらもローカルPCで、pearコマンドでインストールしました。
Cent機ではpearコマンドを使うときphpのbinディレクトリから./pearとして使っていたのですが、symfonyの
コマンドでプロジェクトを作る時は、プロジェクトディレクトリに居ないといけませんよね?
どうやって使えばいいのでしょうか??
私のやり方は何か根本的に間違っていますか?

phpは5.2.1をjp.php.netからDLしてソースからビルドしたものです。
configure時に--disable-cgi --enable-cliでCLI版を指定済みです。
どなたか分かる方いらっしゃいましたら教えていただけませんか?
0526nobodyさん2007/03/09(金) 12:23:24ID:???
PEAR_BINにパスひとつ通せやしないこんな世の中じゃ
0527nobodyさん2007/03/09(金) 12:37:32ID:???
>>523
初めて聞いたておまえ…
0528nobodyさん2007/03/09(金) 18:39:40ID:???
俺も聞いたことなかったよ
なんとなく慣習的にクラス名はアッパー
メソッド名はローワーのキャメルケースにしてたけど
0529nobodyさん2007/03/09(金) 18:42:28ID:???
ん?変数もアッパーキャメル…?
なんか気持ち悪くね?
0530nobodyさん2007/03/09(金) 20:02:05ID:???
使いやすくする為に個人的なクラス群を作って
どんなプロジェクトでもいれてるんだが
i とか v もそうしないとだめなのかね
0531nobodyさん2007/03/09(金) 20:20:53ID:???
FOR ($I=0;$I<100;$I++)
とか書くとBASICっぽいw
0532nobodyさん2007/03/09(金) 21:38:10ID:???
>>521
symfonyのコードの変数どこ見てもlower camelcaseじゃん
ドキュメント間違ってるんじゃね?
0533nobodyさん2007/03/10(土) 00:39:04ID:???
アッパーキャメルでアッパー決めるぅ〜♪
0534nobodyさん2007/03/10(土) 03:23:40ID:???
>>529
俺もそう思ったが、実際そう書いてある
0535nobodyさん2007/03/10(土) 03:26:54ID:???
>>524

Warning: session_write_close() [function.session-write-close]: write failed: Disk quota exceeded (122) in /virtual/gekibaka/php/lib/php/symfony/user/sfUser.class.php on line 214

Warning: session_write_close() [function.session-write-close]: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp) in /virtual/gekibaka/php/lib/php/symfony/user/sfUser.class.php on line 214
0536nobodyさん2007/03/10(土) 03:37:25ID:???
>>524
よく発見したな
0537nobodyさん2007/03/10(土) 03:49:53ID:???
>>455
なかなかよさそうと思ってそんな感じにしようと思ったが
全部同一クラスだとテーブル独自のラップが出来ないな
やっぱ1テーブル1クラスがよさげ
0538nobodyさん2007/03/10(土) 04:02:46ID:???
>>454
>railsのactiverecordを真似てphpで実装しようとすると
>どうしても言語実装のせいで限界が出てくるので
別にrails真似てつくったものでもないし、
activerecord自体を真似るのに言語実装の限界も関係ないよ。
propelはもっとずっと前からあるものだし。
activerecordを真似るのはPHPでもさほど難しいことではない。

propelのコード生成は俺はむしろ助かってるけどね。
activerecordみたいに実体がないと、IDEとかでの保守がすげぇ大変。
コード補完やPHPソース側でテーブルの構造がさっと確認できるpropelのような
マッパの方がずっといい。特にテーブル数が増えてくるとそう感じる。
0539nobodyさん2007/03/10(土) 04:21:07ID:???
http://wiki.rails2u.com/2005%2F06%2F02
こことか面白い実験してるな
0540nobodyさん2007/03/10(土) 07:58:00ID:???
loginActionを作成しても
デフォルトのCredentials Requiredページに飛ばされる
何・故?
0541nobodyさん2007/03/10(土) 09:04:03ID:???
frontend でちゃんとlogみろ。
{sfUser} automatic user logout
こんなログないか?
0542nobodyさん2007/03/10(土) 09:12:50ID:???
レスありがとう
なんと正しいテンプレートファイルがないだけだった
ない時は代替で変なの出さずにエラーにしてくれYO!
0543nobodyさん2007/03/10(土) 09:19:08ID:???
普通のActionだとテンプレートファイルがない時はエラーになるのに…
なんだこの糞仕様
fabienが許せない (#゚Д゚)フルフル
0544nobodyさん2007/03/10(土) 09:26:40ID:???

日本人の考え not equal フラ公の考え
0545nobodyさん2007/03/10(土) 09:28:14ID:???
Error404もテンプレートをなくすとデフォルトテンプレートが表示される
イレギュラーなページでは
テンプレートが作られないケースもあるだろうという配慮なのか・・・
0546nobodyさん2007/03/10(土) 10:05:15ID:???
If you need to remove a file defined at a higher level,
just add a minus sign (-) in front of the file name in the lower-level definition

view.ymlの
親設定を子設定中で取り消しできるこのアイデアはクールだな
何かのパクリ?
0547nobodyさん2007/03/10(土) 10:56:16ID:???
初心者ですいません。この記事を参考に作っているのですが
ttp://codezine.jp/a/article/aid/704.aspx

ttp://localhost:/mytest_dev.php/helloworld
で管理モードでアクセス出来るのですが、肝心の
ttp://localhost:/helloworld
でアクセスすると Apache の404エラーが出てしまいます。
mod_rewrite の設定は、変えてないのですが…
05485472007/03/10(土) 11:24:50ID:???
すまん。事故解決。これから頑張る。
0549nobodyさん2007/03/10(土) 11:41:01ID:???
codezineのおかげで爆発的にユーザが増えそう。

たぶん日本語の本も出版されるであろうし。
0550nobodyさん2007/03/10(土) 15:42:17ID:???
Browsing Your Own YAML Fileっていうけどさー
毎回パースさせてたら遅くてしかたないだろ…常識で考えて。
0551nobodyさん2007/03/10(土) 15:45:07ID:???
普通YAMLはキャッシュするだろ・・・常識で考えて。
0552nobodyさん2007/03/10(土) 15:47:46ID:???
勝手にキャッシュしてくれんの?
0553nobodyさん2007/03/10(土) 16:04:54ID:???

する。
cacheディレクトリ見れ。
0554nobodyさん2007/03/10(土) 16:25:10ID:???
oh! smart!
0555nobodyさん2007/03/10(土) 21:37:03ID:???
$config = sfConfig::get('sf_app_module_dir').'/'.$this->getModuleName().'/config/convert.yml';
$array = sfYaml::load($config);

Action内にこんな感じに書いたが
cache内に変化ないよ?
何か書かないといけないの?
0556nobodyさん2007/03/10(土) 23:53:03ID:???
config_handlers.ymlで設定したりsfConfigCacheクラス使ったりしたらできた
しかしYAMLっていまいち書きにくいな
普段タブインデントにしてるのに
YAMLだけスペースだし
縦に長くなると上の要素と横位置合わせるのだるいし。
0557nobodyさん2007/03/11(日) 00:00:48ID:???
君のエディタにスペースインデント機能はないのかい
0558nobodyさん2007/03/11(日) 01:54:35ID:???
CredentialsとAuthenticateの違いは何ですか?
Credentialsに複数のロールを持たせられるようですが
まったくロールがない=Authenticateされてない
ということではないのでしょうか?
Authenticateが何のためにあるのか分かりません。
やはりフランス人は馬鹿なのでしょうか?
0559nobodyさん2007/03/11(日) 05:56:58ID:???
>>557
使ってるのはZend Studioで
カスタマイズでスペースインデントとタブインデント切り替えられるんだけど
一時的なインデント設定ができないんだよね。
範囲選択してスペース押した時にスペースインデント出来たらいいんだけど…。
0560nobodyさん2007/03/11(日) 11:39:02ID:???
>>558
とりあえず馬鹿なのはお前だな。それだけは教えてあげよう。
0561nobodyさん2007/03/11(日) 13:50:52ID:???

おまいら、sf_timeout:どのくらいに設定してますか?
3600?

0562nobodyさん2007/03/11(日) 17:22:24ID:???
>>560
その答えでは「CredentialsがAuthenticateを包含する」という真理に対する
反論になっていませんね。
0563nobodyさん2007/03/11(日) 17:25:11ID:???
さいきん変な奴が増えたな。
0564nobodyさん2007/03/11(日) 18:49:35ID:???
>>538
propelが真似てるのはJavaのTorqueだな。
0565nobodyさん2007/03/11(日) 19:04:18ID:???
actionで下のようにオブジェクトごと
細かく、viewに渡すのと、viewでわける方法とどちらがいいのでしょうか。
$bbb = $obj->getBBB();
$this->aaa = $obj;
$this->bbb = $bbb;
0566nobodyさん2007/03/11(日) 19:20:12ID:???
>>558
setAuthenticated/getAuthenticatedはsymfonyの管理下にあるサイト全体に対して認証状態にあるかどうか。
credentialsは、ページごとにユーザが表示する権利を持っているかどうか。
0567nobodyさん2007/03/11(日) 22:18:50ID:???
Authenticatedせずに
credentialsに値を設定することはありえますか?
05685602007/03/11(日) 22:41:33ID:???
つまりAuthenticatedは
何らかのログイン状態にあることをおおざっぱに示した
不完全な指標である・・・
そのように考えてよろしいですか?
>>563
あなたは昭和51年度生まれの無職ですね。
05695602007/03/11(日) 22:46:46ID:???
そもそもAuthenticatedというロールをcredentialsに持たせるようにしたらいいだけ
ですし・・・
やはり、Authenticatedは不要としか思えませんね・・・
ここがRoRを猿真似したフレームワークの限界でしょうか・・・
0570nobodyさん2007/03/11(日) 23:13:08ID:???
>>565
ValueObject的なオブジェクトだったらオブジェクトごと渡すかな
結局はオブジェクトの性質によるんじゃない?
0571nobodyさん2007/03/11(日) 23:45:57ID:???
>>569
そんなこと言ったら$_SESSIONあるんだから、Credentialsも不要じゃん。
Symfonyには(というかMojaviの頃からだけど)ログインという形で一貫した方式が用意されているんだから、Authenticatedは意味としても至極わかり易いと思うよ。
さらに細かく、ユーザごとに個別のアクセス権限を与えたいときはCredentialsも使えるようになっているわけだし。
別にCredentialsをAuthenticatedの代替として使ってもいいけど、その分さらに細かくしっかりした仕様設計が必要になるというだけのこと。
05725602007/03/11(日) 23:48:28ID:???
うーむなるほど・・・
先にAuthenticatedが生まれ、後からCredentialsが加えられたと・・・
それなら分かります。ありがとうございました。
0573本家5602007/03/12(月) 08:23:00ID:???
いつの間にかオレの偽者が出没してるwww
てか、偽者のオレ、おまえ明らかに>>558だろ。

あのさ、おまえが馬鹿だってのは事実だろ。例えばLinuxユーザーが
root権限を持ってても、ログインしてなきゃ意味がないだろ。
単に自分が理解できないだけのくせに
>>やはりフランス人は馬鹿なのでしょうか?
って言うのはかなり失礼。フランス人が嫌いなら国産のフレームワーク
使えば??
0574nobodyさん2007/03/12(月) 08:25:46ID:???
偽物っていうか数字間違えただけじゃね?
0575nobodyさん2007/03/12(月) 09:03:40ID:???
あなたは昭和51年度生まれの無職ですね。
0576nobodyさん2007/03/12(月) 09:26:26ID:???
本当は>>558=>>560なのを隠蔽工作しようとしてたりして
0577nobodyさん2007/03/12(月) 09:26:56ID:???
昭和51年度生まれの奴まじ気になる
なんでそんな自虐的なスレに入り浸ってるんだよw
0578nobodyさん2007/03/12(月) 11:21:39ID:???
http://www.phppro.jp/seminar/
0579nobodyさん2007/03/12(月) 14:05:02ID:???
>>578
マニュアル読めばわかることを、5000円も払って教えてもらうのか?
0580nobodyさん2007/03/12(月) 21:12:13ID:???
>>521
関連して、DBのテーブル名にも命名規則があるね。
守らないと使えない機能が出てくる。
守ると便利機能が使えるけど守らなくてもいい、という所もあるけど
中には守らないとライブラリ単位でそもそも使えなくなる、という所もある。
0581nobodyさん2007/03/12(月) 21:29:27ID:???
そうそう!
テーブル名とカラム名がかぶってて大変だったわ。
0582nobodyさん2007/03/12(月) 23:24:06ID:???
guessworkの中の人がsymfony関連のシートみたいの作ったみたい
http://www.sooey.com/journal/2007/03/12/637/
0583nobodyさん2007/03/12(月) 23:28:22ID:???
ってか技術者に英語は必須なの?
お前ら英語できる?
0584nobodyさん2007/03/12(月) 23:59:53ID:???
sfMySQLSessionStorageこれ使っているひといる?
0585nobodyさん2007/03/13(火) 00:58:53ID:???
>>584
使ってるよ
0586nobodyさん2007/03/13(火) 01:01:33ID:???
【PHPウォッチ】第33回 “PHP版Ruby on Rails”symfonyフレームワーク1.0正式リリース!
http://itpro.nikkeibp.co.jp/article/COLUMN/20070311/264502/?ST=oss&P=1
0587nobodyさん2007/03/13(火) 07:28:11ID:???
ちょい遅いよね。
0588nobodyさん2007/03/13(火) 12:00:44ID:???
symfonyは、propelでDBからモデルクラス生成をすると
例えばUserInfoテーブルからUserinfoクラスが生成されるように
一定の規則に基づいて名前が変換される。

ところでsfPropelManytoManyの第二引数は
テーブル名としてもクラス名としても使われている。
なのでテーブル名とクラス名が異なる場合、
テーブル名に合わせればクラスが存在しないと言われクラス名に合わせればテーブルが見つからないという。

つまり、symfony(propel)による自動変換の時に
少しでも名前が変わってしまうようなテーブル名の付け方では
使えないライブラリが出てくるということ。

という理解は合っているだろうか?
DBの命名規則ってどうしてますか?規約とかある?
05895882007/03/13(火) 12:15:45ID:???
補足:
sfPropelManyToMany::getRelatedObjectsの事です。
0590nobodyさん2007/03/13(火) 13:15:00ID:???
>>588
symfonyもいくらなんでもそこまでダサくないよ。
schema.ymlを記述する時に、

tagged_relation:
_attributes: { phpName: Tagged }

みたいに生成されるクラス名を明示しておけば、

$this->bookmarks = sfPropelManyToMany::getRelatedObjects($tag, 'Tagged');

と書いても問題なく動きます。
0591nobodyさん2007/03/13(火) 15:32:58ID:???
>>590
ありがとう
把握
0592nobodyさん2007/03/13(火) 16:40:49ID:???
_idで推測してFK扱いにする機能、
_IDって書くと機能しないのな。
ちょっとハード杉
0593nobodyさん2007/03/13(火) 16:57:47ID:???
>>592
それは、過去に大文字、小文字の差異のせいで色々苦労した経緯があるからじゃないかな。
(で、結局全部小文字で扱うような流れになった訳だが。)

http://www.net-newbie.com/trans/creole.html
↑ここの「もし連想配列を使おうとしているのであれば、デフォルトの振舞いはフィールド名を小文字で返すようになっていることに留意してほしい。」以下を読んでみると雰囲気分かると思うよ。
0594nobodyさん2007/03/13(火) 18:20:37ID:???
新しくモジュールを作った時たまに
lib/model/omに作られるbase○○Peerクラスで
Fatal error: Cannot redefine class constant
というエラーが出る。
実際にファイルを見てみると確かに同じ定数を二度定義している。
(TABLE_NAMEという定数)
でしかもその二つの定数の内容が違うのでどっち消していいか分からなくなる。
0595nobodyさん2007/03/13(火) 18:27:00ID:???
>>594



584とおなじ。
05965942007/03/13(火) 19:03:30ID:???
原因判明。
モデルクラスがtable_name(対応しているテーブル名)と各カラムの定数を持つのだけど、
table_nameというカラムがあったために同じ名前で二度定数が定義されていた。
0597nobodyさん2007/03/13(火) 20:32:58ID:???
MySQLのテーブル名やカラム名は全部バッククォートで囲んで欲しいな
0598nobodyさん2007/03/13(火) 20:40:20ID:???
モデルクラスのTABLE_NAMEのとこにバッククォートつけてみたら
そんなテーブル定義されていませんエラー

schema.ymlのテーブル名のとこにバッククォートつけてみたら
なぜか反映されず(消されてしまってる?)

エスケープシーケンスつけても変わらず。

予約語になってるテーブル名は使えないのか?
0599597=5982007/03/13(火) 20:47:28ID:???
失礼、schema.ymlにバッククォート付きでテーブル名書いたら出来た。
もうちょっと使ってみないとどこかで不具合あるかもしれないが・・・
0600nobodyさん2007/03/14(水) 02:32:58ID:???
>>586
>また,日本語でのドキュメントとしては,おやぢ組氏により翻訳されたものがあるため,こちらを読み進めても良いだろう。

ワロタ
0601nobodyさん2007/03/14(水) 03:36:02ID:???
>>579
独学で1日かかる以上のことが分かるんだったら
まあまあ安いんじゃね?
0602nobodyさん2007/03/14(水) 11:03:10ID:???
おまいら RDB は MySQL 使ってるやつが多いのか?
schema は yaml で書いてるの?
0603nobodyさん2007/03/14(水) 11:34:44ID:???
当然!
0604nobodyさん2007/03/15(木) 02:48:34ID:???
yamlなんかでいちいち書くわけねーじゃん。
ER図どうすんだよ
0605nobodyさん2007/03/15(木) 05:53:05ID:???
パフォーマンス対決でジャンゴに大敗してたsymfony
1.0になって少しはマシになったのかいプゲラ?
0606nobodyさん2007/03/15(木) 07:43:23ID:???
基本的に何も変わってません。
0607nobodyさん2007/03/15(木) 09:13:54ID:???
「プゲラ」って久しぶりに見た
0608nobodyさん2007/03/15(木) 13:37:56ID:???
セキュリティーホールだらけのPHPで
もっさりFW使うってどんだけMだよw
0609nobodyさん2007/03/15(木) 13:50:07ID:???
>>604
ん?
1.schema.yml
2.propel-build-sql
3.propel-insert-sql
4.dbdesigner4
0610nobodyさん2007/03/15(木) 15:49:53ID:9ghaU3pB
俺はMySQLじゃなくてPostgreSQLなんだけど、
dbdesigner4 が使えるという点だけがうらやましぃ。。。
■ このスレッドは過去ログ倉庫に格納されています