トップページphp
153コメント43KB

【PHP】Yii Framework Part 2

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2012/08/13(月) 22:16:39.44ID:???
前スレDat落ちでまさかの2スレ目。流行れ!


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

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

公式フォーラム
ttp://www.yiiframework.com/forum/index.php?/forum/21-japanese/
0041nobodyさん2012/09/26(水) 06:42:13.13ID:???
>>40
自己解決した。
http://www.yiiframework.com/doc/guide/1.1/ja/form.model#sec-4

必須項目でもなんでもなかったので、
バリデーションルールに属性が書かれていなかったので「安全」とされずに
一括代入で代入されていなかったようだ。

いや〜理解すればするほど、よくできてるなぁと思う。
0042nobodyさん2012/10/11(木) 00:10:08.03ID:VQnyuLaI
コントローラで

class HogeController extends Controller
{
  public function actionCreate($name)
  {
    $account=Account::model()->findByAttributes(array('name'=>$name));

/hoge/create/myname1234

みたいにURLから引数を受け取りたい場合って、
わざわざconfig/main.phpのurlManagerで設定しないとダメなの?
0043nobodyさん2012/10/11(木) 12:32:02.39ID:???
要点を得てないかもしれないが
/hoge/create?name=myname1234&age=17が嫌で
/hoge/create/name/myname/1234/age/17みたいなURLパターンが使いたいなら
'<controller:\w+>/<action:\w+>/*'みたいに末尾を*にするとname/valueのパターンが繰り返される
0044nobodyさん2012/10/12(金) 01:07:04.59ID:???
>>43
ありがとうございます。
*を追加する方向でいきます。

あと、もう1つ別の質問があるのですが、
return array(
'condition'=>'t.status=:status',
'params'=>array(
':status'=>1,
),
);
scopes()や、Dbcriteriaなどで使う条件のparamsで、
上記のように数値でstatusを渡すと思い通りに帰ってこなく悩んだのですが、
':status'=>'1'
のようにしなくてはいけないのですね。
これは内部的には数値と文字列を別々にしているということだと思いますが、
MySQLの場合、どれが数値でどれが文字列として解釈されるのかというのを説明したページってありますか?
上記の場合はENUMでstatusを設定していました。
0045nobodyさん2012/10/17(水) 06:49:49.66ID:m5Yd7B3u
YiiJanとかドキュメントでLinkPagerとかGridViewについての記事を見ても
使おうという気にならない
どこで使えばいいか、どう便利なのか全然わからん
0046nobodyさん2012/10/17(水) 14:22:38.22ID:???
管理画面がサッと作れて便利ちゃう?
0047nobodyさん2012/10/20(土) 22:15:32.88ID:???
地域別人気度
インドネシア  100
インド     79
ウクライナ   74
ロシア     60
ベトナム    44
ポーランド   14
中国      13
ブラジル    13
イタリア    10
スペイン    9
0048nobodyさん2012/11/12(月) 03:09:18.01ID:???
yii framework使って仕事したい
0049nobodyさん2012/11/15(木) 23:05:45.85ID:???
受託で小さめの案件なら勢いだけで採用してもいいんだけどねえ。
あとは独立しかない…

一応使ってる会社もあるらしいよ
ttps://speakerdeck.com/crifff/yii
0050nobodyさん2012/11/17(土) 23:41:27.97ID:/APH/Q07
サーバーにあげると極端にセッションの接続時間が短くなるんだけどどういう理由が考えられる?

・phpinfoのsessionの項目はローカルとサーバで同じ
・configの user['allowAutoLogin'] は true
・もちろんローカル、サーバ全く同じプログラム

LoginForm.phpのlogin()処理は

$duration=3600*24*30; // 30 days
Yii::app()->user->login($this->_identity,$duration);

みたいに30日間続くようにしている
ローカルではこのとおり動いていそうなんだけど、
サーバにあげるとすぐに切れる

ini_set()でsession.gc_maxlifetimeが1440に設定されているけど
変えないといけないのかな?
しかし、ローカルで1440秒以上続く理由がわからない・・・
0051nobodyさん2012/11/18(日) 21:26:07.40ID:???
index.phpでsession.gc_maxlifetimeを設定してもダメだった。。。
なんだ???わけがわからん・・・
0052nobodyさん2012/11/19(月) 00:55:58.76ID:???
まったく知らずに言うけどドメインかhttpsのどっちかじゃないかな
0053502012/11/19(月) 17:26:03.61ID:???
>>52
                    ありがとう!!!!!!!!
      ,. < ̄ ̄ ̄ ̄ ̄ > 、
    /               ヽ   _
   〈彡                Y彡三ミ;,
   {\    \|_ \>ー 、  ト三三ニ:}
   人{ >、,___.>、/三 ヾ\ |わ三彡;!
  /./ トミ;,_       Y/  \>ノー〜=- "
  V / /!   ̄ ̄ ゝ  |   /  _
  し/'┴──----─''|  ン}\-ヾ彡
              ヾ、___ノー'''`
0054nobodyさん2012/11/19(月) 20:05:10.17ID:???
>>53
当たり!? 良かったー。お疲れ様〜
0055nobodyさん2012/11/19(月) 23:33:49.23ID:???
>>54
当たりというかドメイン関係の発想で
レンタルサーバだったからセッションの保存先変えたらいけました
0056nobodyさん2012/11/25(日) 01:11:05.53ID:5yYiKRS4
CakePHPがあまりにもダメダメだったので
純粋なOOPフレームワークであるYiiに乗り換えました。
宜しくお願い致します。
0057nobodyさん2012/11/26(月) 11:54:34.26ID:???
Yiiを一言で表すと、「かゆいところに手が届く」って感じだよな
0058nobodyさん2012/11/26(月) 12:19:18.69ID:???
>>56
次にお前はPHPがあまりにもダメダメだったのでrailsにしましたと言う。
0059nobodyさん2012/11/26(月) 17:04:48.92ID:???
PHPは言語でRailsはフレームワーク。
しっかりしろよ。
0060nobodyさん2012/11/27(火) 00:22:11.39ID:???
・データキャッシュ
・フラグメントキャッシュ
・ページキャッシュ
お前らが一番使ってるキャッシュってどれ?

なんかデータキャッシュやらクエリキャッシュを見ても、
もうページキャッシュでいいじゃんって思ってしまうんだが
0061nobodyさん2012/11/27(火) 00:39:56.90ID:???
>>59
RailはDSLなのでRubyの方言と言って差し支えないレベルなのであながち間違ってないんじゃないでしょうか

>>60
俺はむしろページキャッシュ全然つかわないなあ、一部データキャッシュしてる程度
ブログとか投稿系メインならページキャッシュがいいんだろうけどそういうサイトでもないし
0062nobodyさん2012/11/27(火) 21:17:50.55ID:???
ページキャッシュは使い所が限られすぎて存在を忘れるレベル
ヘッダにログインしてるかどうかみたいな表示があったらもう使えないからなぁ

フラグメントキャッシュは物珍しさに一回使ってみたけど、なんかお肌に合わなかった。
データ更新したときのためにDependency付けたりするとviewがまたごちゃごちゃしだすんだよな・・。
0063nobodyさん2012/11/28(水) 00:12:08.31ID:???
>>62
じゃあキャッシュ使ってないの?
0064nobodyさん2012/11/28(水) 09:30:12.29ID:???
>>63
普通のデータキャッシュはよく使うよ。
findByPkの結果をキャッシュしたりするし、大したサイズが無いマスターテーブルなんかは期限1日で丸ごとキャッシュしてる。
0065nobodyさん2012/11/28(水) 15:42:51.29ID:???
>>64
都道府県テーブルとかキャッシュしたいんだがどこでどのタイミングでキャッシュ&破棄したらいいのかわからない
Yiiの話か微妙だけど・・・
0066nobodyさん2012/11/28(水) 16:12:01.38ID:???
なんで都道府県キャッシュ?
0067nobodyさん2012/11/28(水) 16:14:53.22ID:???
あらゆる場所で多用するので、
そのたびにDBにアクセスしてひっぱってくるのは負荷が高い気がするので

リレーションで他のテーブルと結合したりもするのですが
とにかく使用度が高い
0068nobodyさん2012/11/28(水) 16:39:23.80ID:???
都道府県なんて10年単位で見ても変化する確率低い物を、
DBから呼び出しでるって時点で設計が間違ってるのでは?
DBで管理するにしても、変更時に静的ファイル生成しちゃったほうが早いだろ。
0069nobodyさん2012/11/28(水) 17:55:34.60ID:???
いや、最初そうしてたんだけど、
都道府県でリレーション組んでるので結局ActiveRecordに変えた

SNSのようなものを作っていて、
都道府県別のユーザー数を統計クエリで集計できるのでARだとすごい便利

class Prefecture extends CActiveRecord
{
  public function relations()
  {
    return array(
      'users'=>array(self::HAS_MANY, 'User', 'prefecture_id'),
      'userCount' => array(self::STAT, 'User', 'prefecture_id'),
    );
  }
}

↑こういうのはやっぱりテーブルで持たないと不便(無理?)ですよね?
0070nobodyさん2012/11/29(木) 01:06:36.05ID:???
そのprefecture_id
が指し示す都道府県名を利用するのって、県名を表示する時だけでしょ。
それ以外は数字のみで管理・照合してるんだから、都道府県のテーブルなんていらないんじゃね?
0071nobodyさん2012/11/29(木) 08:25:55.50ID:9Fga/9QY
自分ならモデルにconstするわ
0072692012/11/29(木) 11:37:07.68ID:???
県名を参照するだけであれば確かにstatic変数や定数をもったモデルを作るのが良いのだけれど、
>>69のような統計クエリや、MANY_MANYリレーションをつくるときはやっぱりActiveRecordじゃないとダメですよね?
今はHAS_MANYになってるけど、これはもうMANY_MANYに変わります
そうなるとやっぱりAR使うしか無いような気がするんですが、どうでしょう??
0073nobodyさん2012/11/30(金) 01:58:51.59ID:???
DBに入れて外部キー貼ってればツールで見た時に解りやすいし
YiiはARのAttributesに含まれてるほうが何かとチョロいので個人的にはDBにいれるなー
好みじゃないかなー
0074nobodyさん2012/11/30(金) 20:31:11.62ID:???
まぁ都道府県の増減はまずないだろうから定数でもいいとは思うけれど
基本変更が殆どないマスタデータって考えれば、テーブル管理でもいいと思うよ

ここは定数、こっちはテーブル、みたいな使い分けするよか全部テーブルってしたほうが
例外パターンとかを決める必要がないので自分はこっちのほうが好きかな
あとは要件次第(ものっそいシビアなパフォーマンス要求されるならDBアクセスも減らすべきじゃね、とかそういう)
0075nobodyさん2012/12/02(日) 01:56:03.63ID:???
http://qiita.com/advent-calendar/2012/yii

書いてもいいのよ
0076nobodyさん2012/12/04(火) 04:16:03.11ID:???
金どる
0077nobodyさん2012/12/09(日) 18:38:17.30ID:???
(´・ω・`)findAll()
0078nobodyさん2012/12/14(金) 00:08:17.77ID:???
>>62
ダイナミックコンテンツを使え。超便利。
サイトトップはメインはページキャッシュ使いつつ、ログイン表示とか部分的に動的に出力してる。
ttp://www.yiiframework.com/doc/guide/1.1/ja/caching.dynamic
0079nobodyさん2012/12/15(土) 01:11:33.24ID:???
キャッシュに関するノウハウが欲しいな
どこでどういうキャッシュ使えばいいのかまとめて欲しい

ってわけで>>75のサイトで誰か書いて
0080nobodyさん2013/01/01(火) 12:25:04.53ID:???
1.1.13来たね
ttp://www.yiiframework.com/news/65/yii-php-framework-1-1-13-is-released/
0081nobodyさん2013/01/01(火) 13:30:37.55ID:???
http://www.yiiframework.com/files/CHANGELOG-1.1.13.txt
大して変わったことないかな?
0082nobodyさん2013/01/03(木) 11:55:48.96ID:???
大きな変更といってもjQueryとPHPUにtのバージョンアップくらいかなあ
0083nobodyさん2013/02/18(月) 22:34:43.16ID:???
カイブツクロニクルってゲーム、Yiiで作られてるのかな?

ttp://gcwiki.jp/kaibuz/index.php?kako_wiki_zs8
CDbTransactionで検索。

エラーメッセージが同じ。
0084nobodyさん2013/03/29(金) 04:09:20.27ID:2KTyq7Pr
モデルのデフォルト値で、
空白の場合だけ設定したいんだけどどうしたらいいの?
0085nobodyさん2013/08/26(月) NY:AN:NY.ANID:???
海外のFWレビューでは人気が出てきたYiiも日本ではさっぱりだね
http://webrevisions.com/tutorials/php-framework-the-best-php-framework-for-2013/
http://codegeekz.com/best-php-frameworks-for-developers/
http://www.phpframeworks.com/top-10-php-frameworks/

日本語でもブログとかで情報がぼちぼち出てきてる感じだけど、まだまだ注目されてる感じじゃない。
公式ガイドの日本語訳も頑張ってるけど、クックブックが翻訳されればもっといいんだけどね。
・Yii Application Development Cookbook Second Edition
http://yiicookbook.org/
・サンプルコード
https://github.com/samdark/yii-application-cookbook-2nd-edition-code
0086nobodyさん2013/08/27(火) NY:AN:NY.ANID:???
英語アレルギー+現在のPHPマの大半が新規勉強をやる気持ちが足りてないから、難しいんじゃないかなぁって感じ。
0087nobodyさん2013/08/28(水) NY:AN:NY.ANID:???
英語ができないやつがどうやってプログラム書けるの?
プログラムって英語じゃん
0088nobodyさん2013/09/07(土) 15:00:16.03ID:???
>>87
ヒント: shain_bango
0089nobodyさん2013/09/12(木) 02:27:24.57ID:???
yiiって、他のフレームワークにあるみたいに、DBの日付のカラム名をcreated_atに指定したりすると、
フォーム処理の際に自動的に現在の日付を入れてくれるって機能はないですか?
0090nobodyさん2013/09/12(木) 02:28:55.78ID:???
89です。
×DBの日付のカラム名をcreated_atに指定したりすると、
○DBの日付のカラム名をcreated_atなど決められた名前にすると、
0091nobodyさん2013/09/12(木) 03:08:31.14ID:???
89です。
すいません。自己解決しました。
beforeSaveをオーバーライドすればよかったんですね。
0092nobodyさん2013/09/12(木) 04:29:48.17ID:???
beforeSaveで削って、db側でevent作ってあげれば楽だよね
updated_atも処理出来る
0093nobodyさん2013/09/12(木) 07:56:54.44ID:???
http://www.yiiframework.com/wiki/10/how-to-automate-timestamps-in-activerecord-models/

カラム名で判別するわけじゃないけど、自動タイムスタンプの3パターンやり方が書いてある
・rulesのonオプションupdate,insert
・beforeSave()
・CTimestampBehavior
0094nobodyさん2013/09/18(水) 02:56:53.89ID:???
protected/runtimeのapplication.logにログが更新されなくなりました。
今日の朝はまでは問題なく仕事から帰ってきたら突然なってました。
特にmain.phpの設定は変えていないのですが・・・・。
何かわかる方いらっしゃいますか?
runtimeのパーミッションは777
application.logのパーミッションも777にしてみましたが、ダメでした。
application.logファイル自体を消してみても、新しいファイルは作成されませんでした。
以下がmain.phpの設定です。
'log'=>array(
'class'=>'CLogRouter',
'routes'=>array(
array(
'class'=>'CFileLogRoute',
'levels'=>'error, warning',
'filter'=>'CLogFilter',
),
array(
'class' => 'CProfileLogRoute'
),
// uncomment the following to show log messages on web pages
/*
array(
'class'=>'CWebLogRoute',
),
*/
),
),
0095nobodyさん2013/09/18(水) 12:50:10.17ID:???
levels に trace 加えても作成されない?
0096nobodyさん2013/09/18(水) 20:21:28.55ID:dlh3yGeJ
公式ガイドとブログチュートリアル一通り読んだんだけど
viewのウィジェットが訳わかめ
CListViewだのCGridViewだのみんな使ってるの?
0097nobodyさん2013/09/19(木) 00:25:29.41ID:???
>>95
ありがとうございました。trace加えたら、ログが出てきました。
でも、traceを消したら、またでなくなるって感じです。
今までtrace無い設定でうまくログが出てたんですけどね・・・。
0098nobodyさん2013/09/19(木) 12:50:41.68ID:8wxU5XUC
>>96だけど自己解決しました
http://www.yiiframework.com/forum/index.php/topic/4532-renderpartial-vs-widget/page__p__24257#entry24257
0099nobodyさん2013/09/19(木) 18:01:17.83ID:???
ウィジットもコントローラないとリストの検索とかページネートとかやり難くないんかな?
0100nobodyさん2013/09/19(木) 23:44:39.87ID:???
CListView、CGridViewが便利なのはわかった
面倒なことを勝手にやってくれるすごい奴
0101nobodyさん2013/09/20(金) 11:06:08.32ID:???
yii-bootstrapいいじゃん!
これデフォだったらもっと利用者増えそう
0102nobodyさん2013/09/20(金) 18:30:34.45ID:???
いいよね
version3にも対応楽しみ
0103nobodyさん2013/09/21(土) 00:23:49.64ID:???
モジュールの使いどころがよくわからない
ブログのサイドバーによくある最近の投稿とか?
0104nobodyさん2013/09/21(土) 00:39:06.42ID:???
と思ったけどそれはウィジェットでよさそうだし
うーん
0105nobodyさん2013/09/21(土) 13:54:20.93ID:???
yiic webapp hoge
を簡単にカスタマイズする方法ない?
毎回同じエクステンション入れるのだるい
0106nobodyさん2013/09/21(土) 20:26:28.45ID:???
モジュールにするのは他システムでも使い回ししやすくする為でそ
0107nobodyさん2013/09/22(日) 08:18:25.05ID:???
それじゃあコンポーネントでもできるじゃん ってなるから理由になってない

モジュールは、モデル、ビュー、コントローラ およびその他の支援的コンポーネントから構成される自己完結したソフトウェアユニット
これがポイント
0108nobodyさん2013/09/23(月) 15:49:22.54ID:???
良解答
0109nobodyさん2013/09/24(火) 10:43:17.02ID:???
2.0ではformmodelなくなっちゃうの?
0110nobodyさん2013/09/26(木) 00:45:57.42ID:???
yiiのコーディング規約ってどこかにある?
ググっても見つからなかった。
スペースの有無が気になってるんだけど
なくてもいいところは削ればいいのかな?
0111nobodyさん2013/10/29(火) 08:24:14.19ID:???
日本じゃサッパリやね
0112nobodyさん2013/10/29(火) 08:40:25.46ID:???
さっぱりでもないような
0113nobodyさん2013/10/31(木) 22:55:21.92ID:???
yiiはちょっと古臭くなっちゃったからlaravelを使おう
fuelphpは日本でしかはやってないオワコンだから注意ね
0114nobodyさん2013/11/01(金) 17:18:36.15ID:???
ララベルはもうちっとこなれてからかな
0115nobodyさん2013/11/02(土) 01:37:16.38ID:???
>>113 にほぼ同意
でも次回はPhalcon使う
0116nobodyさん2013/11/02(土) 10:17:28.01ID:???
PHPのFW多過ぎ問題
まだまだ過渡期だな
0117nobodyさん2013/11/03(日) 01:54:26.62ID:???
FWが出たり消えたりするのは普通だよ
過渡期って使わなければ何も覚えないしね
特別に敷居が高くなければ、
使って評価のサイクルをした方が良いと思う
0118nobodyさん2013/11/03(日) 04:54:09.95ID:???
yiiのどの辺が古く感じるのか知りたい
乗り換えの参考にさせてほしい
0119nobodyさん2013/11/03(日) 16:55:05.20ID:???
俺から言わせると古臭いより立消えに近い。流行る前に盛り上がらなかったし、これから盛り返す要素も特に見当たらない。
それなりに使われるかもしれないが。
0120nobodyさん2013/11/03(日) 17:51:57.53ID:OQFWkTUy
laravelさわってみたけどnodeっぽいと思った
0121nobodyさん2013/11/03(日) 18:39:51.79ID:???
Yiiは利用者が少ないから需要落ちる
日本ならLaravelかFuelPHPかCakePHPを使ったほうが将来性がある
Symfonyは仕事でやるなら使えばいいけど個人で使うのは無駄
0122nobodyさん2013/11/03(日) 18:52:19.16ID:???
Yiiの自慢(よりどころ?)であった、他のPHP/FWと比較した処理の速さが
CodeIgniterやFuelPHPの出現により無残に砕け散った。。

もう取り返せない状況に来ている
実際の案件で使われていれば、その後の改修案件で需要出てくるけど、そこまでも到達できなかった感がある
0123nobodyさん2013/11/03(日) 20:30:40.69ID:???
まぁどんなframeworkでも移行に対したコスト掛からない昨今
色々試したほうがいいね
0124nobodyさん2013/11/03(日) 21:07:27.94ID:OQFWkTUy
laravelよりfuelphp のほうが取っ付きやすいね
0125nobodyさん2013/11/05(火) 01:01:48.76ID:???
yii使い続けるよ
趣味で小さいwebサービス作ってるだけだし
0126nobodyさん2013/11/05(火) 03:19:27.68ID:???
fuelは日本のUGがキモいから使わない
麻酔ドライバとか
0127nobodyさん2013/11/09(土) 11:52:42.41ID:???
よかった、ここで質問してもまともに回答もらえなかったから別のフレームワークを使って正解だった
こんなYiiとかいうクソマイナーで将来性がないフレームワークを覚えても時間の無駄だという事が分かった
0128nobodyさん2013/11/09(土) 14:24:40.39ID:???
おめでとう あなたは勝ち組です^^
0129nobodyさん2013/11/09(土) 17:42:23.77ID:???
2ちゃんのスレで回答もらえなかったという事実から飛躍した結論に草
0130nobodyさん2013/11/10(日) 18:19:04.37ID:???
どのframeworkに移ったのか興味があるな
0131nobodyさん2013/11/10(日) 20:17:25.22ID:???
英語で情報を探せない人だろうから
日本で普及しているフレームワークしか選択肢がないんじゃね
0132nobodyさん2013/11/11(月) 01:15:45.45ID:???
cakeだったりして
0133nobodyさん2013/11/11(月) 01:37:02.00ID:???
自作でframework作り始めてたりして
0134nobodyさん2013/11/11(月) 10:57:26.75ID:???
日本ではマイナーだけど海外ではメジャーですから、フレームワーク指定で仕事してる方以外はyiiから他へ乗り換える必要性を感じませんが…
0135nobodyさん2013/11/11(月) 13:44:16.99ID:???
まあ新しいものに触れるのは大事だけど今のところ満足
lalabelはチェックを続ける
0136nobodyさん2013/11/11(月) 14:00:34.46ID:???
やっぱlaravelは気になるよね
Yii使いつつlaravelもちょっと触ってるよ
0137nobodyさん2013/11/11(月) 14:33:12.71ID:???
>>136
まだ少ししかララ触ってないけどyiiと比べて特出した点は見当たらないように感じる
どう?
0138nobodyさん2013/11/27(水) 13:21:21.99ID:???
なんだかんだ言っても、在野向けPHP案件て9割がCakeな件
0139nobodyさん2013/11/27(水) 14:03:23.17ID:???
メリッとデメリットを教えて顧客に再考させればいいじゃん
0140nobodyさん2013/11/27(水) 14:34:13.14ID:???
在野向けって意味が分からんなら黙ってていいよ
■ このスレッドは過去ログ倉庫に格納されています