トップページphp
981コメント269KB

【PHP】Yii Framework

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2010/12/10(金) 00:41:11ID:???
PHP5 用 Framework Yii (イー) Framework スレ

公式
http://www.yiiframework.com/

チュートリアル
ttp://www.yiiframework.com/doc/guide/

公式フォーラム
ttp://www.yiiframework.com/forum/index.php?/forum/21-japanese/
0175nobodyさん2011/10/05(水) 21:56:55.85ID:???
>>174
どんなfunctionの第3引数が面白いんだい?

getAbc()は試してみよっと
0176nobodyさん2011/10/05(水) 23:47:59.94ID:???
CActiveRecordのwith()は感動した
イーガーローディングってやつな
0177nobodyさん2011/10/06(木) 03:27:48.56ID:???
Yiiの求人ある?
0178nobodyさん2011/10/06(木) 09:51:50.26ID:???
あるよ
http://www.yiiframework.com/forum/index.php?/forum/15-job-opportunities/
https://www.odesk.com/jobs/skill/yii-framework/
http://www.freelancer.com/work/yii-framework-job/
0179nobodyさん2011/10/06(木) 14:22:39.36ID:???
海外の求人(泣)

<?php echo CHtml::activeDropDonwList('yii_id', $yii_id, $model->yiiOptions, array('submit' => '')); ?>
とか便利だよ。第4引数でしたすみません。選択すればsubmitボタンを押さず条件絞ったりできる
$model->yiiOptionsはモデルにメソッドを作っておく
public function getYiiOptions() { ほにゃらら }

0180nobodyさん2011/10/18(火) 10:07:58.93ID:???
完全にスレが死んでますな
php自体人口が減ってるのか?
0181nobodyさん2011/10/18(火) 14:30:27.90ID:???
特に盛り上がる話題が無いだけかと
Cakeみたいに質問の多い場所もあるからね
0182nobodyさん2011/10/18(火) 20:38:15.62ID:???
http://www.google.co.jp/trends?q=cakephp%2Csymfony%2Ccodeigniter%2Cyii&ctab=0&geo=all&date=mtd&sort=0
0183nobodyさん2011/10/18(火) 20:47:13.10ID:???
世界的には検索数が順調に伸びてるのになぁ
0184nobodyさん2011/10/18(火) 21:25:08.82ID:???
採用数が増えないと何とも
0185nobodyさん2011/10/20(木) 22:49:10.09ID:wuD0xn5y
Yiiって、テーブルのフィールド名に縛りってある?
例えば主キーはidでなければならないみたいな。
0186nobodyさん2011/10/20(木) 23:16:19.10ID:???
ない。
cakeみたくテーブル名とモデルの命名規則もない。
0187nobodyさん2011/10/21(金) 00:16:47.69ID:1AJsmT5x
おお、それはいいね。
0188nobodyさん2011/10/22(土) 14:49:28.07ID:???
複数のフィールドでのユニークチェックがデフォルトでは
サポートされていないってドキュメントに書いてあってびっくりした

別のフィールドをつくってカンマ区切りなどでデータ登録しときましょうみたいな感じだったな。
ちょっとめんどくさかった。
0189nobodyさん2011/10/22(土) 14:59:49.68ID:???
>>188
modelにvalidate rule書けばいいんじゃないの?
あと話違うけど、複数フィールドのuniqueってデータベース自体では設定できるものもあるの?
0190nobodyさん2011/10/22(土) 20:37:32.57ID:???
>>189
自分でvalidation ruleをcountByAttributes使って書かないといけない。
単一だったらrules()にuniqueの配列追加したらそれでOKだよね。
そういういみでのデフォルト

DBの複合のuniqueは一般的に使われる大体のDBであるんじゃね?
とりあえずmysql postgresql oracleにはある
0191nobodyさん2011/10/22(土) 20:49:58.10ID:???
>>190
ほぅDBで複数Fieldのuniqueも判定出来るんだね
探してみる
0192nobodyさん2011/10/23(日) 01:17:56.99ID:???
複数のフィールドでユニークって複合キーってことじゃなくて?
0193nobodyさん2011/10/25(火) 23:10:53.87ID:???
複合キーを必要とするシステムって大半はろくなもんじゃないから
別にサポートなくてもいいとは思ってしまう
0194nobodyさん2011/10/25(火) 23:57:03.59ID:???
複合キーがある設計はけっこうめんどくさいことが多いな。
正規化してテーブル分けた方が最終的にいいものが出来る気がする
0195nobodyさん2011/10/26(水) 00:18:52.00ID:???
でもpostとtagだったりcategoryだったりを紐付けるときは、
どうしてもMANY_MANYが必要だよね。
0196nobodyさん2011/10/26(水) 17:49:46.36ID:???
MANY_MANYの何が駄目なんだい?
0197nobodyさん2011/10/26(水) 23:34:08.68ID:???
MANY_MANYは複合キーのとき必須だよ。
全然駄目じゃない。
0198nobodyさん2011/10/27(木) 17:09:44.97ID:???
AR賢いよね
MANY_MANYも余裕で吸収してくれる
イーガーローディング使えば、読み出し回数も減らせるし
0199nobodyさん2011/10/27(木) 19:50:26.07ID:Oi33f/rV
>>194
正規化すれば複合キーが消えるなんてことはないんだけどな。
複合キーを消すため別途主キー用の項目を設ける(いわゆるid項目)
は明らかに正規化崩し。

正規化の結果複合キーが現れるのは普通にあることだし、それを理由に
ろくなシステムじゃないとか言っちゃう奴が設計するシステムの方が危なっかしい。
0200nobodyさん2011/10/27(木) 20:43:39.56ID:???
YiiのARは設計が素晴らしいと思う。
0201nobodyさん2011/10/28(金) 02:19:36.20ID:???
Yii2.0ではMongoDBがサポートされるらしい。まだまだ先の話だが。
0202nobodyさん2011/10/28(金) 11:58:39.90ID:???
relationしたときのdefaultScopeのデータベースAliasの扱いが難しかったような記憶がある
0203nobodyさん2011/10/28(金) 23:12:06.39ID:???
getTableAliasを使えばよい。
0204nobodyさん2011/10/29(土) 01:01:31.03ID:???
アクションによってモデルのbeforeSave()の挙動を変えたいときって
シナリオを使うのか、Yii::app()->controller->action->idを使うのは、どっちがいいかわかんない
0205nobodyさん2011/10/31(月) 21:30:27.37ID:???
beforeSaveの処理内容だったらactionのIDで振り分けたほうがいいんじゃねえの
個人的にはシナリオはrulesを分けるために使うって認識なんだが
0206nobodyさん2011/10/31(月) 21:38:08.08ID:???
actionのIDって1ならこの処理、2ならこの処理ってswitch等で処理分けするってこと?
0207nobodyさん2011/10/31(月) 23:30:13.53ID:???
actionのidはidってなってるけど、コントローラ名だ。
0208nobodyさん2011/10/31(月) 23:55:00.29ID:???
訂正、アクション名。
0209nobodyさん2011/11/01(火) 01:10:53.88ID:???
IDは数値ってイメージがあるのは凄くわかるけど、実際は識別子だしな
文字列であっても一意に識別できる値であればID
0210nobodyさん2011/11/02(水) 00:57:20.04ID:???
>>205
なるほどー。参考にします。ありがとう。
0211nobodyさん2011/11/05(土) 01:52:25.82ID:nAFFPCR9
Yiiのコードって若干気持ち悪いな
代入で = の前後にスペース入ってなかったり
こんな感じ↓
$duration=$this->rememberMe ? 3600*24*30 : 0; // 30 days
0212nobodyさん2011/11/05(土) 12:19:31.90ID:???
大規模サイトはsynfony小規模はCakePHPが定番ですが
Yiiは大中小どのへんをカバーできますか?
0213nobodyさん2011/11/05(土) 12:53:50.24ID:???
自分の活動してる範疇ではそれが定番かもしれないが
0214nobodyさん2011/11/05(土) 14:20:40.80ID:???
え?そうなんですか?例えば5ページのものをわざわざsynfonyで作る企業とかあるんですか?
0215nobodyさん2011/11/05(土) 14:50:03.58ID:???
極端な
まあ5ページでもよほど動的なら…いやどういうケースなら5ページになるのか想像つかないな
別案件で作ったテンプレ流用でさくっと終わらせたいとかなら、10数ページ程度のインフォメーションサイトでも無意味ではないんじゃね
0216nobodyさん2011/11/05(土) 15:44:40.23ID:???
企業サイトなら普通にありますが
0217nobodyさん2011/11/05(土) 16:57:31.06ID:???
規約ガチガチ(大規模用途)
ゆるゆる(中小規模用途)

ってことじゃね?指揮官次第でどっちでもいいんだろうが。
0218nobodyさん2011/11/07(月) 17:22:40.12ID:???
中小向けって感じじゃね
大規模の要件ってのを知らないから、大規模向けに向いてないとは言えないけど
0219nobodyさん2011/11/07(月) 17:30:32.03ID:???
Yiiは中、大規模向けに設計されています
どう考えても小規模向けって感じではないです
0220nobodyさん2011/11/07(月) 18:43:39.36ID:???
まぁ大規模小規模の定義が無いから何とも言えんがな
0221nobodyさん2011/11/07(月) 20:13:52.22ID:???
ディレクトリ構成もわりと自由に変えれるから、あとは各人のスキル次第。
0222nobodyさん2011/11/07(月) 22:50:47.25ID:???
>>219
そりゃすまんこ
でも、上にあるような5ページくらいのサイトでも、コントローラのメソッドとビュー書くだけだからな
これにurlManagerとか簡単に設定して使えるから、小規模向けも作りやすいと思うんだよな
0223nobodyさん2011/11/08(火) 01:23:34.30ID:???
そもそも固定の型にはめないとUIが作れないって程ガチガチな作りじゃないから
小さいプロジェクトだろうが大きいプロジェクトだろうが、使い方さえ理解してりゃ開発は優位に進めれるよ
大規模向けーだの小規模むけーだの、そういう括りで考えること自体アホらしい
0224nobodyさん2011/11/08(火) 01:54:02.16ID:???
巨大なプロジェクトの場合は否応無にFW等環境は制限されるだろう
ここを見ている時点で中小規模の開発案件関係者であることは自明

迷い無く自分の好きなFWを選択すれば宜しい
0225nobodyさん2011/11/08(火) 09:49:01.38ID:CETMnjOe
「Yii 比較したいFW」
で検索すると、比較したブログ記事が見つかるから参考にして決めるといい
まだ海外の記事しか出にくいけどね
0226nobodyさん2011/11/08(火) 10:03:07.28ID:???
それよりやっぱりYiiの記法が違和感ありまくり
class Test
{
  private $_id=1;
}
↑"{"の前に改行入れるのは好みの問題として、
代入式のイコールの前後にスペース入れないのはYiiでしか見たことないw
お前ら違和感ない?
0227nobodyさん2011/11/08(火) 10:10:50.82ID:???
>>226
違和感あったけど
狭い画面で開発するのであれば適しているね
0228nobodyさん2011/11/08(火) 10:57:52.51ID:???
違和感あるよな
コーディング規約はひとそれぞれだからな、しょうがなす
0229nobodyさん2011/11/08(火) 11:45:46.55ID:???
ていうか最近その書き方伝染ってしまった…
0230nobodyさん2011/11/08(火) 16:35:46.18ID:???
自分もif文の波括弧なしは「あり」だと思ったので使わせてもらってます
「=」や「=>」は、やっぱりスペースがあったほうがYii

developerのqiangさん曰く、自分はそういう風に書いてしまうのだそう
でも、コーディング規約はそれぞれ作ってね、っていう

Yiiとの比較はSymfonyやCakePHPがターゲットじゃないですか?
ただ、検索して出てくる比較は安易な比較なので、あまり参考になりません

CakePHPがある程度触れるようになったら
結構Yiiも似たり寄ったりなので、それほど難しくはない思います
ただ、日本語の情報が少ないので、英語ができたほうがYii
0231nobodyさん2011/11/08(火) 19:26:53.52ID:???
ソースのフォーマット整えるやつ
そういうのを使ったらいいんじゃね?

使ったことないけど
現実的に読めるソースになるのかな
0232nobodyさん2011/11/08(火) 19:46:39.34ID:???
気に食わないのがあったら、Eclipseなりのフォーマッタで整形すりゃいいだろ
自分が規約を定義できる立場なら好きに作ってコーディングすりゃいいし、
きまった規約があるなら、それにあわせた定義をつくっておきゃボタンひとつで整形終わる

スペースや改行、インデントの有無なんて、機械的に見れば同じコードなわけで
それを気になるからって、人間が手直しするのは馬鹿げてる。至極どうでもいいと思う
0233nobodyさん2011/11/08(火) 19:59:13.03ID:???
同意
逆に自分がどこをいじったか解り易くて良いんじゃね?と考えるとかw
0234nobodyさん2011/11/09(水) 16:14:04.65ID:???
>>232みたいな当たり前なこと言ったら話題がなくなるだろ!
0235nobodyさん2011/11/09(水) 20:27:48.93ID:???
かといって、ホワイトスペースvsタブだの、括弧の位置などの話題が広がっても、不毛でしかないわな
0236nobodyさん2011/11/09(水) 21:03:09.89ID:???
まあたしかに他の規約に慣れてると多少違和感あるね。
無駄なスペースやカッコをできるだけ排除しているようだ。
ある意味合理的だが。
コアファイルはいじらないのが前提だし、自分で書くコードは好きにしたらいいさ。
読むだけなら全然問題ないし、ディスるほどじゃないね。

>>235
まったくだ。
0237nobodyさん2011/11/09(水) 23:32:54.04ID:???
あー、でもまぁ一応実行時コンパイルな言語の場合
無駄な文字は削除したほうがファイルを読み込む時間は短く高速になるから
スペースの有無や改行の有無にもまったく意味がないわけではないんだっけか
つっても、どの道よほどシビアな環境じゃないと体感できる差にはならないのだろうけれど

どちらにせよ、FW内は基本いじらないのが前提だから、
自分の編集するファイルだけ気に入るコードスタイルを使えば問題ないと思う

話題がほしいなら、こういうのとかどうか
ここ見てるyii使ってる奴は、どういう用途で使ったり、どんなものを作ってる?
0238nobodyさん2011/11/10(木) 00:46:48.70ID:???
>>237
つうてもキャッシュやアクセラレータがさくっとその微々たる差さえなかったことにしてくれるからなあ

あと話題振り乙
俺はまだ遊びつつ適用性考えてる感じ
今はZFをライブラリ的に使ってる程度の業務です
フルスタック未経験なんで、Cakeより便利なのかどうかもまだよくわかってないす
0239nobodyさん2011/11/10(木) 09:46:00.60ID:???
とりあえずYiiの基本になれてきたら
アクションの再利用と、Giiのカスタマイズを勉強するといいですよ
他のPHPフレームワークでは味わえない生産性の高さにびっくりします
0240nobodyさん2011/11/10(木) 15:41:02.90ID:???
>>239
ここら辺のノウハウほしいわー
実際widgetとかをgiiで作ってる人はどんな感じで使ってるのか知りたい
example落ちてないよね?
0241nobodyさん2011/11/10(木) 15:42:26.17ID:???
あ、補足
>>240はHow toを知りたいんじゃなくて、
giiでこんなものを自動生成するとすごい便利ですよ、みたいなのが知りたい
0242nobodyさん2011/11/10(木) 17:29:15.87ID:???
俺も>>239みたいなんに興味ある
0243nobodyさん2011/11/10(木) 18:41:11.34ID:???
俺のコードを見ろー
って感じでババーンとアップしてる人とかいたら飛びついちゃうぜ!

ああなんて他力本願な考えだ
0244nobodyさん2011/11/10(木) 18:52:24.80ID:???
取り敢えずScafoldingのタイトル等は翻訳対応タグに囲まれてないので
全て対応するように書き換えてみるとか?

(というよりそうされていない理由が良く解らないが)
0245nobodyさん2011/11/10(木) 19:39:45.95ID:???
ここから適当にDLして中身見ると勉強になりますよ
ttp://www.yiiframework.com/extensions/?tag=gii
0246nobodyさん2011/11/10(木) 19:55:52.80ID:???
>>244
>Scafoldingのタイトル等は
これってどういう意味?
0247nobodyさん2011/11/11(金) 18:29:30.59ID:???
「Yiiのコードがどうであれ、自分のコーディング規約を守ればいいじゃない」
っていう人がいるけど、生成されるコードに手を加えるのがFWのやり方だろ。
自分が編集した部分だけ、タブがスペースで、FWの元の部分がタブ文字だったりするのはちょっとな
置換したらいいとか言う人もいるが、コアファイルまで手を加えるのか?

最終的にはやっぱりFWの通りコーディングすることになるから、
変なコーディングだと違和感を感じてしまってしょうがない

まぁ我慢して慣れるしかないんだろうけどな
0248nobodyさん2011/11/11(金) 19:33:40.64ID:???
揚げ足とろうってわけじゃないけど
> 生成されるコードに手を加えるのがFWのやり方だろ
はちょっと違うかな。それはいわゆる scaffold

っていうかもう終わった話題だけど、先のあれは
タブvsスペースとか、何も生み出さない戦いとかし出す人がでるからやめようぜって話だよ
> FWの元の部分がタブ文字だったりするのはちょっとな
世界共通のコーディング規約があるわけじゃないし、そんな些細な事気にしてたらハゲるだけだと思うぞ
コードを眺めてうっとりする気持ちはすごくわかるけど、
そんなことに時間割くよか、出来上がったもんみてうっとりする時間取ろうぜ

それでも気になっていやだお耐えられないお!
ってんなら、そこはほぼ文字列こねくり回すのが仕事なWebマらしく
ボタンひとつで全コードをこねくり回してお気に入りスタイルに修正する
俺々フォーマッターでも作ったほうがおそらく有意義だと思うw
0249nobodyさん2011/11/11(金) 21:57:55.43ID:???
お安い御用です
0250nobodyさん2011/11/12(土) 13:17:16.40ID:???
gridview使いにくいなーと思ったから、CListView使ってたんだけど、
実はいろいろ機能があって、gridviewの方が使いやすいということに気付きました
0251nobodyさん2011/11/12(土) 23:34:37.70ID:???
そもそもgrid, list, detail系のViewWidgetは管理画面でしか使っていない俺
0252nobodyさん2011/11/13(日) 02:28:31.69ID:???
>>251
というと、ページネーションは別のライブラリで実装を?
Yii使う意味あんまなくね?
0253nobodyさん2011/11/13(日) 04:18:18.34ID:???
入れ子のフォームをどうやったらすっきりとDBに登録出来るかなあと試行錯誤してみたら、
以下のようにCJuiTabsのタブを使うと、なんかかっこいい
アクション側では$model1->save()と$model2->save()をトランザクションで囲って、
form1とform2の内容をまとめてDBに登録する感じ

<?php echo CHtml::beginForm(); ?>
<?php
$this->widget('zii.widgets.jui.CJuiTabs', array(
'tabs' => array(
'フォーム1' => $this->renderPartial('form_mod_form1', array('model'=>$model1), true),
'フォーム2' => $this->renderPartial('form_mod_form2', array('model'=>$model2), true),
),
));
?>
<?php echo CHtml::submitButton('登録'); ?>
<?php echo CHtml::endForm(); ?>
0254nobodyさん2011/11/13(日) 04:22:13.73ID:???
>>251
同じく!
管理画面系では使えるけど、表側だと使いにくい。

>>252
俺はページャーはCLinkPagerを拡張して使ってる。
意味ないなんてことはない。
基本機能は揃っててるし、それを拡張しやすい設計なのがYiiのメリットのひとつ。
0255nobodyさん2011/11/13(日) 15:54:16.56ID:???
>>253
HTMLでフォームは入れ子にできないよ?
0256nobodyさん2011/11/14(月) 01:57:36.62ID:???
>>255
すまん、指摘の意味が分からん
入れ子のフォームっていうのが曖昧だったかな

http://www.yiiframework.com/doc/guide/1.1/ja/form.builder#sec-6
ここで言ってるようにユーザ登録フォームでログイン情報とプロファイルのサブフォームに分けた場合、
>>253では、ログインタブとプロファイルタブに分けて登録するイメージ
0257nobodyさん2011/11/14(月) 02:22:51.80ID:???
nameを数種類に分けるってことだよね
0258nobodyさん2011/11/14(月) 13:01:23.01ID:???
Rails→CakePHPはスッと理解できたが、
Yiiはいろいろ独自の機構がたくさんあって覚えることが多いな
0259nobodyさん2011/11/14(月) 15:20:28.62ID:???
自分もモデルでnew Paginationして、ビューでCLinkPagerの流れです
CListViewなどは、デザインを考えると、リスクが高くて使いにくいし
やはりバックエンドで威力を発揮するかと。
あと、CListViewとCGridViewは用途が違うので、比較対照にはなりません
0260nobodyさん2011/11/14(月) 15:46:21.42ID:???
CListViewのどこにデザイン上の制約が発生するのか分からん
テンプレートで自由にデザイン出来るじゃんとか思っちゃうんだが、そんな俺に教えてくれ
0261nobodyさん2011/11/15(火) 11:32:29.44ID:???
ページ送りのボックスデザインのこと?
0262nobodyさん2011/11/15(火) 15:05:04.63ID:???
それはpager.cssをカスタマイズすれば良いと思います
自分はajaxやらsorter機能が必要ないにもかかわらず、CListViewを使うのは、ちょっと…って感じがします
デザイン部分は、template、cssClassプロパティで調整できますが
そこで調整しなくても、CLinkPagerのみ使用して、直感的に書いたほうが断然わかりやすい
0263nobodyさん2011/11/15(火) 15:22:18.90ID:???
人それぞれやり方があるからケチ付けても仕方ないが、
CListViewも内部的にはCLinkPagerを呼んでいる

単にjavascript false, sort falseすれば同じ処理してるのじゃないかなぁ〜とも思う
0264nobodyさん2011/11/15(火) 15:51:13.18ID:???
はい。だからわざわざ使わなくてもいい機能をfalse, false...にしなくても
CPaginationとCLinkPagerでページ作っていったほうがシンプルかなと。
結果同じ処理だったらなおさら最低限のもので組み立てたほうが無駄がなくなるような気がします
02652602011/11/15(火) 18:45:33.29ID:???
ありがとう
理解できたぜ
0266nobodyさん2011/11/21(月) 22:53:07.64ID:???
cake, yiiの次は何が良いかな?FuelPHPがおもしろそうなんだけど。
0267nobodyさん2011/11/22(火) 09:19:46.96ID:???
Yii2
0268nobodyさん2011/11/23(水) 10:48:48.93ID:???
Yii2.0っていつごろリリースされるんだろう
0269nobodyさん2011/11/23(水) 16:50:14.82ID:???
あと1年先か、それ以降でしょうね
0270nobodyさん2011/11/23(水) 19:04:05.05ID:???
1.1系も今年6月以降は音沙汰無しでしょ。
フォーラムなどは活発なのでしょうか?
0271nobodyさん2011/11/23(水) 19:31:06.27ID:???
http://www.yiiframework.com/download/
stableは全然更新されてないね
0272nobodyさん2011/11/23(水) 19:32:33.82ID:???
つーかそこ見て気付いたが、来月に2.0のα版来る予定じゃねえか
0273nobodyさん2011/11/23(水) 21:45:42.47ID:???
>>272
0274nobodyさん2011/11/24(木) 01:22:36.89ID:???
フォーラムのアカウントを持っている方は
以下のURLからYii2.0のいろいろな議論が見れますよ
http://www.yiiframework.com/forum/index.php?/forum/42-design-discussions-for-yii-20/

開発の雰囲気から読み取ってみても今年の12月に2.0aがリリースされる感じではないですねぇ
ただ自分は、2.0や1.1.9がリリースされる前に、1.1系で勉強することが山ほどあります・・
■ このスレッドは過去ログ倉庫に格納されています