私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ【PHP】Yii Framework Part 2
php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
前スレDat落ちでまさかの2スレ目。流行れ!
公式
http://www.yiiframework.com/
チュートリアル
http://www.yiiframework.com/doc/guide/
公式フォーラム
http://www.yiiframework.com/forum/index.php?/forum/21-japanese/
公式
http://www.yiiframework.com/
チュートリアル
http://www.yiiframework.com/doc/guide/
公式フォーラム
http://www.yiiframework.com/forum/index.php?/forum/21-japanese/
・Yiiとはなんですか?
イーと発音します。"Yes It Is!"の略で「速い?安全?使える?」と言った質問にそのように答えるらしいです。
つまり口からはいと垂れる前にイーと答えろ!わかったな!
・必要条件は?
PHP5.1以上。ちょっと古い鯖でもいけるね!DBはMysqlでもSqliteでも。APC推奨。
・Yiiは何に向いてるの?
軽量で洗練されたキャッシュ機構を持ってるらしいから高負荷のアプリ、例えばポータル・フォーレム・CMS・EC等に向いてるらしいよ。
・他のフレームワークに比べてどうなの?
機能が豊富。ドキュメントが充実してる。設計がイケてる。
Symfonyより楽。Cakeより軽い。CodeIgniterより高機能。バランス派。
イーと発音します。"Yes It Is!"の略で「速い?安全?使える?」と言った質問にそのように答えるらしいです。
つまり口からはいと垂れる前にイーと答えろ!わかったな!
・必要条件は?
PHP5.1以上。ちょっと古い鯖でもいけるね!DBはMysqlでもSqliteでも。APC推奨。
・Yiiは何に向いてるの?
軽量で洗練されたキャッシュ機構を持ってるらしいから高負荷のアプリ、例えばポータル・フォーレム・CMS・EC等に向いてるらしいよ。
・他のフレームワークに比べてどうなの?
機能が豊富。ドキュメントが充実してる。設計がイケてる。
Symfonyより楽。Cakeより軽い。CodeIgniterより高機能。バランス派。
ブログチュートリアル
http://www.yiiframework.com/doc/blog/1.1/ja
パフォーマンス比較
http://d.hatena.ne.jp/cakephper/20110802/1312275110
ブログ記事
http://www12.atpages.jp/~nekomike/blog/2011/12/03/%E5%88%9D%E3%81%AEphp%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AFyii%E3%81%A7%E8%A1%8C%E3%81%93%E3%81%86%EF%BC%811%E6%97%A5%E7%9B%AE/
http://d.hatena.ne.jp/tjtjtjofthedead/archive?word=*%5Byii%5D
http://d.hatena.ne.jp/tanakahisateru/20120105/1325759589
http://d.hatena.ne.jp/cake67/searchdiary?word=Yii
http://livejamdb.blogspot.jp/search/label/Yii%20Framework
http://www.yiiframework.com/doc/blog/1.1/ja
パフォーマンス比較
http://d.hatena.ne.jp/cakephper/20110802/1312275110
ブログ記事
http://www12.atpages.jp/~nekomike/blog/2011/12/03/%E5%88%9D%E3%81%AEphp%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AFyii%E3%81%A7%E8%A1%8C%E3%81%93%E3%81%86%EF%BC%811%E6%97%A5%E7%9B%AE/
http://d.hatena.ne.jp/tjtjtjofthedead/archive?word=*%5Byii%5D
http://d.hatena.ne.jp/tanakahisateru/20120105/1325759589
http://d.hatena.ne.jp/cake67/searchdiary?word=Yii
http://livejamdb.blogspot.jp/search/label/Yii%20Framework
Yii2について
http://www.slideshare.net/samdark/alexander-makarov-yii2-whats-new
・PHP5.3.8以上
・ネームスペース
・PSR-0準拠
そのうち出る
http://www.slideshare.net/samdark/alexander-makarov-yii2-whats-new
・PHP5.3.8以上
・ネームスペース
・PSR-0準拠
そのうち出る
パート2になって更に人気出ると良いね
良さが伝われば絶対に流行ると思う
良さが伝われば絶対に流行ると思う
なんかモデルを更新したりコントローラを更新したりしても
挙動がおかしい気がするんだけどキャッシュって自動でされたりしないよね?
挙動がおかしい気がするんだけどキャッシュって自動でされたりしないよね?
>>14
コントローラは知らんがモデルは設定によってはスキーマをキャッシュする。schemaCachingDurationとか設定されてない?
コントローラは知らんがモデルは設定によってはスキーマをキャッシュする。schemaCachingDurationとか設定されてない?
>>13
AR周りが大きく変わるしCFormModelもなくなるって言うから完全な互換は無理じゃないかなあ
AR周りが大きく変わるしCFormModelもなくなるって言うから完全な互換は無理じゃないかなあ
ほとんどバグ修正だな
てかその前の更新でDHTMLXとの統合って書いてあるっぽいけど組み込まれるの?
なんかExt4Yiiみたい
てかその前の更新でDHTMLXとの統合って書いてあるっぽいけど組み込まれるの?
なんかExt4Yiiみたい
Yii2っていつでるの?
今開発してるサイト2にしたほうがいいのかな
完成度5割ぐらいだけど
今開発してるサイト2にしたほうがいいのかな
完成度5割ぐらいだけど
公式サイトみたいにスッキリさせろよ
なんだよこのXoopsみたいなデザインは
なんだよこのXoopsみたいなデザインは
でもこういう日本語のサイトができるのは大きな一歩だよ
今後もCake並に普及したらいいと思う
反面結構使いやすくて効率良いから、
他の人に知られたくないみたいな気持ちも多少あったりする・・・俺だけだと思うけど
今後もCake並に普及したらいいと思う
反面結構使いやすくて効率良いから、
他の人に知られたくないみたいな気持ちも多少あったりする・・・俺だけだと思うけど
いくら素晴らしいものでも
公式サイトがWeb黎明期みたいじゃ誰も使いませんよ
HPビルダー臭がしてもCMSそのまんま感がしても一緒
公式サイトがWeb黎明期みたいじゃ誰も使いませんよ
HPビルダー臭がしてもCMSそのまんま感がしても一緒
Yiiはモデルにビジネスロジックを書きますが、例えば
$product = new Product();
$product->price = 100;
$product->getTaxPrice();
public function getTaxPrice()
{
return $this->price * 1.05;
}
みたいな書き方はOKなんでしょうか。
それとも、getTaxPrice($price) と書くべきなんでしょうか。
上の書き方がOKの場合→開発者はどのプロパティに値をセットして良いのか分からない
getTaxPrice($price)の方が良い場合→モデルをsave()する際はプロパティに値をセットしてるのにこのときだけ引数で対応??
$product = new Product();
$product->price = 100;
$product->getTaxPrice();
public function getTaxPrice()
{
return $this->price * 1.05;
}
みたいな書き方はOKなんでしょうか。
それとも、getTaxPrice($price) と書くべきなんでしょうか。
上の書き方がOKの場合→開発者はどのプロパティに値をセットして良いのか分からない
getTaxPrice($price)の方が良い場合→モデルをsave()する際はプロパティに値をセットしてるのにこのときだけ引数で対応??
両方に対応させたらいいんじゃね?
public function getTaxPrice($price=null)
{
return ($price===null) ? $this->price * 1.05 : $price * 1.05;
}
public function getTaxPrice($price=null)
{
return ($price===null) ? $this->price * 1.05 : $price * 1.05;
}
なんかJAVAっぽい
その辺はもう好みの問題じゃないかなあ。
個人的にはgetTaxPriceからpriceは想像できるからそんな不自然でもないと思う。
税込価格で扱っている方が手間がないからプロパティは$this->basePriceにしてpublic function getPrice()にするとか。
ちなみにYiiはget/setを省略してプロパティとして呼べるので
public function getTaxPrice()なら$product->taxPrice;でいい。
その辺はもう好みの問題じゃないかなあ。
個人的にはgetTaxPriceからpriceは想像できるからそんな不自然でもないと思う。
税込価格で扱っている方が手間がないからプロパティは$this->basePriceにしてpublic function getPrice()にするとか。
ちなみにYiiはget/setを省略してプロパティとして呼べるので
public function getTaxPrice()なら$product->taxPrice;でいい。
なるほどー。
getTaxPrice()はシンプルな構成でしたが、ロジックによっては
複数のプロパティをセットしなければならない場合もありますよね。
そのとき、分かりにくいかなと思った次第です。
かといってメソッド引数に渡すのも微妙な感じです。
例えば user、user_profilesに同時にレコードを登録する場合、Userモデルのクラスに
public function save(User $user, UserProfile $profile)
{
$user->save();
$profile->save();
}
とは多分書きませんよね。普通は
public function save($profile)
{
$this->save();
$profile->save();
}
といった感じでしょうか。
あと両方に対応させるとなると、全てのビジネスロジックメソッドで同様の処理が必要となり、冗長かなぁと思いました。
getTaxPrice()はシンプルな構成でしたが、ロジックによっては
複数のプロパティをセットしなければならない場合もありますよね。
そのとき、分かりにくいかなと思った次第です。
かといってメソッド引数に渡すのも微妙な感じです。
例えば user、user_profilesに同時にレコードを登録する場合、Userモデルのクラスに
public function save(User $user, UserProfile $profile)
{
$user->save();
$profile->save();
}
とは多分書きませんよね。普通は
public function save($profile)
{
$this->save();
$profile->save();
}
といった感じでしょうか。
あと両方に対応させるとなると、全てのビジネスロジックメソッドで同様の処理が必要となり、冗長かなぁと思いました。
public function relations(){
return array('profiles'=>array(self::HAS_MANY, 'user_rofiles', 'user_id'));
}
リレーション作って
public function save()
{
$this->save();
$this->profiles->save();
}
じゃないかな。リレーション張れないようなものであれば多分一緒のモデルでSaveするべきじゃない
return array('profiles'=>array(self::HAS_MANY, 'user_rofiles', 'user_id'));
}
リレーション作って
public function save()
{
$this->save();
$this->profiles->save();
}
じゃないかな。リレーション張れないようなものであれば多分一緒のモデルでSaveするべきじゃない
お、それは良さそうですね。
参考になりました。ありがとうございます
参考になりました。ありがとうございます
save()に引数がないと、テーブルのリレーションを知らない開発者は
どのプロパティに値を追加すれば良いか判断がつかない気がする。
例えばUser、UserProfilesが必須で、条件によってUserActivitiesへのインサートが必要な場合とか。
どのプロパティに値を追加すれば良いか判断がつかない気がする。
例えばUser、UserProfilesが必須で、条件によってUserActivitiesへのインサートが必要な場合とか。
複數のモデル絡んだ入力ならFormModelでまとめたらいいとは思う
引数に入れるのは依存するクラスが増えると無制限に引数増えるから個人的には避けたいかなあ
引数に入れるのは依存するクラスが増えると無制限に引数増えるから個人的には避けたいかなあ
ユーザーIDを元にユーザーテーブルからユーザー情報ひっぱってくるっていう処理が
あらゆる場所にかかれてしまうんだけど、これはしょうがないのかな
まとめるとしたらどのファイルに記述したらいいんだろう
あらゆる場所にかかれてしまうんだけど、これはしょうがないのかな
まとめるとしたらどのファイルに記述したらいいんだろう
$post->attributes=$_POST['Post'];
で、自動的に格納してくれるフィールドって、
DBにフィールドがある場合のみ?
リレーションで、categoriesなんてのがある場合も自動で入れてくれる?
Postモデルに2つのリレーション(どちらもMANY_MANY)を作っていているんだけど、
片方だけ入るのはどうして??
で、自動的に格納してくれるフィールドって、
DBにフィールドがある場合のみ?
リレーションで、categoriesなんてのがある場合も自動で入れてくれる?
Postモデルに2つのリレーション(どちらもMANY_MANY)を作っていているんだけど、
片方だけ入るのはどうして??
>>40
自己解決した。
http://www.yiiframework.com/doc/guide/1.1/ja/form.model#sec-4
必須項目でもなんでもなかったので、
バリデーションルールに属性が書かれていなかったので「安全」とされずに
一括代入で代入されていなかったようだ。
いや~理解すればするほど、よくできてるなぁと思う。
自己解決した。
http://www.yiiframework.com/doc/guide/1.1/ja/form.model#sec-4
必須項目でもなんでもなかったので、
バリデーションルールに属性が書かれていなかったので「安全」とされずに
一括代入で代入されていなかったようだ。
いや~理解すればするほど、よくできてるなぁと思う。
要点を得てないかもしれないが
/hoge/create?name=myname1234&age=17が嫌で
/hoge/create/name/myname/1234/age/17みたいなURLパターンが使いたいなら
'<controller:\w+>/<action:\w+>/*'みたいに末尾を*にするとname/valueのパターンが繰り返される
/hoge/create?name=myname1234&age=17が嫌で
/hoge/create/name/myname/1234/age/17みたいなURLパターンが使いたいなら
'<controller:\w+>/<action:\w+>/*'みたいに末尾を*にするとname/valueのパターンが繰り返される
>>43
ありがとうございます。
*を追加する方向でいきます。
あと、もう1つ別の質問があるのですが、
return array(
'condition'=>'t.status=:status',
'params'=>array(
':status'=>1,
),
);
scopes()や、Dbcriteriaなどで使う条件のparamsで、
上記のように数値でstatusを渡すと思い通りに帰ってこなく悩んだのですが、
':status'=>'1'
のようにしなくてはいけないのですね。
これは内部的には数値と文字列を別々にしているということだと思いますが、
MySQLの場合、どれが数値でどれが文字列として解釈されるのかというのを説明したページってありますか?
上記の場合はENUMでstatusを設定していました。
ありがとうございます。
*を追加する方向でいきます。
あと、もう1つ別の質問があるのですが、
return array(
'condition'=>'t.status=:status',
'params'=>array(
':status'=>1,
),
);
scopes()や、Dbcriteriaなどで使う条件のparamsで、
上記のように数値でstatusを渡すと思い通りに帰ってこなく悩んだのですが、
':status'=>'1'
のようにしなくてはいけないのですね。
これは内部的には数値と文字列を別々にしているということだと思いますが、
MySQLの場合、どれが数値でどれが文字列として解釈されるのかというのを説明したページってありますか?
上記の場合はENUMでstatusを設定していました。
地域別人気度
インドネシア 100
インド 79
ウクライナ 74
ロシア 60
ベトナム 44
ポーランド 14
中国 13
ブラジル 13
イタリア 10
スペイン 9
インドネシア 100
インド 79
ウクライナ 74
ロシア 60
ベトナム 44
ポーランド 14
中国 13
ブラジル 13
イタリア 10
スペイン 9
みんなの評価 :
類似してるかもしれないスレッド
- 【PHP】Yii Framework (981) - [72%] - 2012/8/12 2:46
- 【PHP】PEAR Part3 (703) - [37%] - 2022/10/30 21:15 ☆
- 【PHP】気軽にPHP質問スレ (1001) - [22%] - 2013/2/7 9:31
トップメニューへ / →のくす牧場書庫について