トップページ⇒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/
0304nobodyさん2011/11/27(日) 17:02:09.23ID:???
複雑なSQLってどんなかな?
0305nobodyさん2011/11/27(日) 17:21:21.79ID:???
>>304
JOINやGROUPを多用するようなものです
0306nobodyさん2011/11/27(日) 21:36:54.60ID:???
SQLは所詮条件文でしかなくて、プログラミング言語とくらべりゃすごい簡単だけど
修正とか他人が書いたものの把握がめんどくさいってのもある
少しでもパフォーマンスをあげないといけない場面ではSQLを弄ることは重要だけど
さしてそうでもない場面まで全部SQL書いてやりくり、ってのは、
再利用性が下がる要素にこそあれ、あんまりメリットがないからなー
O/Rマッピングは楽でいいよ
0307nobodyさん2011/11/27(日) 21:49:12.25ID:???
>>297
覚える手間やテスト書く手間はかかるけど、自動化便利だよー。
テストフェーズでいつも手を抜いてるような、いい加減な人はかなり嫌がるけどw
作る手間はあるとはいえ、入出力をテストすんのが殆どだから、大して難しい内容でもないし。
作っちゃえばボタンぽんぽんでテスト終わり、結果が残せてそれ自体も成果物にもなるのは便利。

まー、結合やら納品後に単体レベルの不具合ぼろぼろ出してても、
特にお咎めなしなら、やんなくても実害はないと思うけどなー。

>>298
むしろO/Rマップの何に「時間がかかって簡単じゃない(難しい?)」かがわからないよ!
それ単に理解しようとしてないだけじゃね。
新しいことをも覚える努力放棄してたら、周りから老害だって思われる奴が生まれちゃうんだぜ?
0308nobodyさん2011/11/27(日) 22:02:59.57ID:???
>>303
例えば、
Cakeはfindで配列が返ってくる。
Yiiはオブジェクト(モデル)が返ってくる。
Cakeは規約重視。
Yiiはある程度の取り決めを推奨しているがカスタマイズ可能。
0309nobodyさん2011/11/27(日) 23:15:24.47ID:???
>>307
テストにしろO/RマップにしろYiiから出たらまた別のもの使わなきゃいけないからな。
PHPだけ使ってるわけでもないし。
まんどくせ。
0310nobodyさん2011/11/28(月) 00:16:09.87ID:???
ttp://blog.y-110.net/log/eid86.html

これ結構同感だわ。
0311nobodyさん2011/11/28(月) 00:30:26.14ID:???
そこでオブジェクトデータベースの登場
よく知らんけど
0312nobodyさん2011/11/28(月) 00:35:35.06ID:???
まったく流行らなかった。
RDBMSが仕様はどうあれ、ある程度のわかりやすさとパフォーマンスで成功してるのは理由があると思う。
0313nobodyさん2011/11/28(月) 00:40:45.81ID:???
>>310
>O/Rマッピングはその SQL を自動的に生成し, 実行します。
>一番大事な SQL が見えない部分で勝手に実行されるって, 怖くないですか?
>本当に効率のいい SQL を実行しているんでしょうか?
Yiiなら吐き出されるSQLが明確にわかるから、問題に感じたことがないな
SQLでパフォーマンス問題が発生したなら、その対策は出来るということだ
最悪、生で書いてもいい
Yiiの場合、パフォーマンスだけが問題なら対策は出来るので、使ったほうが良いという結論になる
>>309のようにSQLを直接書いたほうがやり易い奴を除いてな
大抵の初心者は、YiiにおいてO/Rマッピングの恩恵を十分に受けることが出来るだろう
0314nobodyさん2011/11/28(月) 00:46:21.17ID:???
ORM = SQLを知らなくていい

というのがそもそもの間違い。
0315nobodyさん2011/11/28(月) 00:56:12.42ID:???
SQL知らないとdbcriteria書けないもんなw
0316nobodyさん2011/11/28(月) 01:13:05.50ID:???
はなからORMを悪だと言い切ってるのがあふぉらしい。
SQLを理解してる上で使いこなせばいいだけだし。
そもそもWEBアプリでORMが使えないような複雑なSQLを頻繁に発行する必要になる設計がおかしい。
そういうのはバッチ処理でやれ。

>>314がいうように
ORMがあるからSQLは知らなくていっていう考えは間違いだと思う。
0317nobodyさん2011/11/28(月) 16:41:28.30ID:???
>>303
CakePHPよりも日本語での情報量が圧倒的に少ない
CakePHPより圧倒的に速くWebアプリケーションが作れる
CakePHPよりもやや読み込みが速い
CakePHPのAPIより圧倒的にみやすいAPIがある
CakePHPよりもややextension(plugin)が豊富
CakePHPよりもajax, jQuery, jQuery UIなどと仲が良い
CakePHPよりも圧倒的に再利用性を考えて設計されている
CakePHPよりACLが圧倒的にわかりやすい
CakePHPよりいろんな意味で柔軟なので、アプリケーションの設計で迷う箇所が出てくる場合がある
CakePHPみたいにrecursiveの心配はいらない
CakePHPを触ったあとにYiiを触った人は、CakePHPにはなかなか戻りづらい
かといって自分はCakePHPも嫌いではない

あと、ページング処理の件はYiiでは問題ありませんよ
おそらくCakePHPをある程度触れるひとは
少しの苦労でYiiを触れるようになると思います
0318nobodyさん2011/11/28(月) 21:54:43.98ID:???
ケーキの話ばっかりするからお腹空いてきた
0319nobodyさん2011/11/29(火) 01:49:55.49ID:???
>GitHubでFuelPHPを検索したら本家を含め77リポジトリあった。結構いろんな方がプロジェクトがあるもんだね。
>他のFWも検索してみたけどCodeIgniterは678。Symfonyは1580。CakePHPが950。Kohanaが967。Yiiが290。
>なんか意外。

ちょっと引用。http://imagine-that.co.uk/other/ChartExport.png
何だかんだ云って2005年くらいからあるしそれなりに使ってる人
多いのは仕方ないかも。しかしsymfony多いなぁ…
0320nobodyさん2011/11/29(火) 02:00:29.79ID:???
そういえばYiiも2.0からバージョン管理がGit/GitHubになる予定です
0321nobodyさん2011/11/29(火) 02:33:56.91ID:???
Gitはいいよね
まあYiiの開発してない俺には関係ない話だが
0322nobodyさん2011/11/29(火) 15:09:56.38ID:???
ゴミみたいな僕がフォーラムで20回うんこみたいな発言してもいいんでしょうか
Yii2.0のフォーラムみたいです
0323nobodyさん2011/11/29(火) 17:41:16.51ID:???
10 posts de OK
0324nobodyさん2011/11/29(火) 18:18:11.77ID:???
とりあえず1回うんこレスしときました
去年から登録してるのに初投稿・・・
なんか嬉しいです
0325nobodyさん2011/11/30(水) 00:20:52.15ID:???
外人アホすぎだろ
なんで80回以上も投稿してる奴が、デフォルトコントローラの変更も分からねんだよ・・・

want to change default url from site/index to mycontroller/myaction
http://www.yiiframework.com/forum/index.php?/topic/24895-want-to-change-default-url-from-siteindex-to-mycontrollermyaction/
0326nobodyさん2011/11/30(水) 01:22:11.47ID:???
でも登録して1ヶ月くらいの発言ですからね
kokomoさんだって丁寧に答えていてすばらしいじゃないですか

と言いつつ、ここらへんもじわじわきますw
http://www.yiiframework.com/forum/index.php?/topic/25780-carraydataprovider-annd-sorting-of-related-models/page__p__123949#entry123949
http://www.yiiframework.com/forum/index.php?/topic/25663-strange-validation-problem/page__p__123520#entry123520
0327nobodyさん2011/12/08(木) 16:26:44.69ID:???
Yiiは各コンポーネントなどを、それを使う直前に呼び出したりしてるのと
キャッシュがけっこう楽に設定できるので
最初から機能豊富でファイル数は多いものの、小規模でも使おうってなってきた
やっぱりYiiはすばらしい!
0328nobodyさん2011/12/11(日) 00:29:13.12ID:???
ここも移転?
0329nobodyさん2011/12/12(月) 01:38:24.21ID:???
Yiiイイ
0330nobodyさん2011/12/13(火) 11:09:31.44ID:EhkO03Ef
Yiiのテーマってそのまま使っても実用に耐えるレベル?
色々カスタマイズするようなセンスが無いのでお仕着せで使えるのがあると
ありがたいんだけど。
0331nobodyさん2011/12/13(火) 23:45:01.43ID:???
Yiiは純粋にフレームワークなので、これと言ったお仕着せは無いよ
何を作りたいのさ?みたいな
0332nobodyさん2011/12/14(水) 04:10:51.81ID:Yi5sP1AR
実用に耐えられるかは自分で判断したほうがいいですよ
ここにもテーマがいろいろあるのでどうぞ http://yiithemes.mehesz.net/
0333nobodyさん2011/12/14(水) 09:15:35.47ID:???
>>322
すげー、こんなサイトがあったんだ。
0334nobodyさん2011/12/14(水) 09:16:24.04ID:???
>>332のまちがい。
0335nobodyさん2011/12/14(水) 11:38:53.17ID:???
main.phpを弄ってるけど、最初にテーマ探したほうが効率いいのかもな
0336nobodyさん2011/12/14(水) 14:07:45.93ID:???
テーマはおそらくそんなに大したものはないから
おすすめとしてはやっぱりTwitter Bootstrapの拡張ですね
http://www.yiiframework.com/extension/bootstrap/
ちなみにYiiはデフォルトではCSSにBlueprintを採用しています
0337nobodyさん2011/12/14(水) 14:49:53.69ID:4Kz9mknq
>>336
これって既存のサイトでも簡単に置き換え可能ですか?
0338nobodyさん2011/12/14(水) 16:30:11.49ID:???
bootstrapはthemeと同列に語れないと思うが
themeって言ったってそのまま使うわけじゃないんだし
0339nobodyさん2011/12/14(水) 20:27:43.47ID:QC3GTum8
>>338
どういう意味?
0340nobodyさん2011/12/14(水) 21:24:27.82ID:???
>>339
2行目ちょっとよく分かんなかったなすまん
themeとbootstrap一緒に入れても言いじゃんみたいなことが言いたかった
0341nobodyさん2011/12/14(水) 23:49:14.08ID:???
既存のサイトをYiiで作っていて
かつだいたいの機能をwidgetで作っていれば置き換えは難しくないと思います
0342nobodyさん2011/12/19(月) 00:39:39.76ID:u4JenLAI
例えばGoogleカレンダーみたいなWebサイトを作るのはすごく大変そうだけど
そこにYiiを使ったりすると楽できるの? そういうのとはぜんぜん違う?
0343nobodyさん2011/12/19(月) 03:30:03.93ID:???
他のFrameworkを使うよりは楽にできることが多いんじゃないかな
作るものの仕様にもよるが
0344nobodyさん2011/12/19(月) 10:41:13.42ID:???
yiiにカレンダーエクステンションがあるから簡単に出来るっちゃ出来るよなw
0345nobodyさん2011/12/19(月) 18:46:53.71ID:???
fuelphpに期待して少し触ってみたけど、まだまだこれからって感じだった。
やっぱりyiiのが素敵。yiiもデフォルトでbootstrap使ってほしいなぁ。
0346nobodyさん2011/12/19(月) 19:03:23.04ID:???
>>345
それなかなか良さそうだね
注目していこうっと
0347nobodyさん2011/12/20(火) 13:10:18.85ID:x9zvuHrA
Yiiのチュートリアルにそって進めてたら、Firebirdではgiiが使えなかった(´;ω;`)
giiなしでYiiを使うメリットは果たしてあるんだろうか…。
0348nobodyさん2011/12/20(火) 15:59:21.33ID:???
firebirdって混ざってない?
0349nobodyさん2011/12/20(火) 16:41:13.56ID:???
Firebird使ったことがないのでなんとも言えませんが、yiiのforumで質問してみては?
03503472011/12/21(水) 08:43:36.70ID:H1kuP/Nw
framework/db/schema以下にあるデータベースしか対応してないのね。
残念。そこまでマイナーでもないと思うんだけどなあ…。
0351nobodyさん2011/12/21(水) 09:50:26.08ID:???
いや、普通に考えてかなりマイナーだろ。。
0352nobodyさん2011/12/21(水) 10:21:36.62ID:???
>>351
いや日本ではマイナーだけど、海外では結構使われてるよ。
…なぜかロシアとかブラジルとかでやたら使われてる。

あんな使いやすいDBMSもないんだけどなあ。
0353nobodyさん2011/12/21(水) 10:34:19.80ID:???
エクステンション出たりしてるから探してみたら?
0354nobodyさん2011/12/21(水) 16:13:39.30ID:???
>>352
どんな利点があるのか教えて欲しいな
スレ違いになるからあまりこの話題出来ないけど
0355nobodyさん2011/12/21(水) 16:25:50.72ID:???
Firebirdの件ですが、このへんのページに添付されているファイルをDLして一度試してみてはどうですか?
http://www.yiiframework.com/forum/index.php?/topic/3108-firebird-schema-alpha-version/
http://www.yiiframework.com/forum/index.php?/topic/5810-firebirdinterbase-pdo-schema/
0356nobodyさん2011/12/21(水) 18:07:53.11ID:???
CakePHPが2.0になって結構進化したみたいだけど、
Yiiと比べてどうなの?
0357nobodyさん2011/12/21(水) 18:18:35.19ID:???
たいして変わってないやん。
0358nobodyさん2011/12/21(水) 23:16:25.16ID:???
>>354
主に>>352の理由がすべて。

スタンドアローンとして、SQLiteのようにRDBMSを組み込みで使えるのも利点かな。
日本ではあまり流行ってないだけ。
0359nobodyさん2011/12/25(日) 10:48:38.28ID:???
これから新規で立ち上げるなら、Yiiとlithiumどっちがいいかな?
0360nobodyさん2011/12/25(日) 12:35:45.37ID:???
Lithiumの正規リリースはいつなんだろう?
0361nobodyさん2011/12/25(日) 13:25:36.01ID:???
Lithium使うならCakePHPで良いじゃんって思ってしまい
CakePHP使うならYiiで良いじゃんって思ってしまう
0362nobodyさん2011/12/25(日) 15:55:33.99ID:???
すでに名前空間バリバリ使ってるFWって、
ZendとSymfonyくらい?
0363nobodyさん2011/12/25(日) 15:58:50.23ID:???
>>361
それならSymfonyで、
Railsで、
Djangoで・・・

ってなりそう。

PHPでってなると、CakeかYiiあたりがちょうどいいのかも。
Silexは気になるが・・・
0364nobodyさん2011/12/25(日) 16:03:26.36ID:???
RailsってPHPのフレームワーク的にはどれに当てはまりますか?
0365nobodyさん2011/12/25(日) 18:23:27.97ID:???
Yii
0366nobodyさん2011/12/26(月) 00:22:32.77ID:D998BOvR
大規模システムに向くPHP FrameWorkはYii?

むしろ、cakeとかだと大規模システムには向かない?
0367nobodyさん2011/12/26(月) 00:33:42.77ID:???
別に何でもいいんじゃないかな?
どんな大規模かは知らないけど

フレームワーク変えたって
組み立てるのは自分で
段違いにエレガントな設計になぞならんわけだし
0368nobodyさん2011/12/26(月) 02:08:36.87ID:???
Yiiが良い
0369nobodyさん2011/12/26(月) 10:48:05.95ID:???
>>366
大規模ならsymfony
0370nobodyさん2011/12/26(月) 11:39:19.28ID:???
大規模システムの設計する上で、yiiにはないsymfonyの機能ってなんなの?
symfony触ったこと無いから知りたい
まあ俺が大規模向けの開発することは無いと思うが
0371nobodyさん2011/12/26(月) 13:44:03.39ID:???
CDbHttpSessionって毎回必ずタイムアウトしたセッションを削除するようにしてるけど、これって性能悪くないの?
0372nobodyさん2011/12/26(月) 14:00:59.26ID:???
「大規模ならsymfony」という考えは
yiiを触った後では、覆ること間違いなし、でござる

たしかにrailsやdjangoと比べると劣るところはあるかもしれないが
php frameworkの中では間違いなく一番良い
でもそれはyiiがすばらしすぎるというよりも、むしろその他がたいして良くないってことだけど
0373nobodyさん2011/12/26(月) 14:02:50.10ID:???
小規模なら?
0374nobodyさん2011/12/26(月) 14:03:24.26ID:???
小規模でもyii使いますねー
0375nobodyさん2011/12/26(月) 14:34:46.59ID:???
分からなくなったときに質問できるフォーラムがないときつい
0376nobodyさん2011/12/26(月) 15:30:32.28ID:???
ここもあるし、yiiのフォーラムもあるし・・
0377nobodyさん2011/12/26(月) 17:00:37.78ID:???
yiiで作られたサイト一覧ってありませんか?
0378nobodyさん2011/12/26(月) 17:06:09.68ID:???
>>377
本家にリストが少し無かったっけかな?
見ても仕方がないとは思うけど
0379nobodyさん2011/12/26(月) 17:08:17.93ID:???
>>354
世界規模で見ると利用規模はMySQLとほぼ同じ
商用フリー
ロストアップデートが起こらない
メンテナンスいらず
チューニングいらず
頑丈
スタンドアロンの組み込み向けもある
0380nobodyさん2011/12/26(月) 18:12:17.89ID:???
ありますよ、ちょっと待って下さいね

これです
http://yii.poweredsites.org/
0381nobodyさん2011/12/26(月) 18:51:11.93ID:???
arigatou
0382nobodyさん2011/12/26(月) 19:09:44.80ID:???
すいません
トップページからhttp://www.yiiframework.com/doc/guide/1.1/ja/indexへのたどり方がわかりません
どうやってこのページにたどり着けるのでしょうか?
0383nobodyさん2011/12/26(月) 19:46:29.65ID:???
トップページの一番上のdemosリンクの横にguideってのがあります
それクリックして、左上のLANGUAGE & VERSIONのドロップダウンから「日本語」を選択すればいけますよ
もしくは Docoumentation > tutorials > The Definitive Guide to Yii > 「日本語」でも同じです
0384nobodyさん2011/12/26(月) 20:52:42.87ID:???
>>383さん。あなたは神様です
ずっと黒いボタンのほうから探しててそこに気づきませんでした
ありがとうございます
0385nobodyさん2011/12/26(月) 22:07:10.29ID:???
windowsでコマンドプロンプトから
yiic.bat webapp C:\www\aaa\public_html\test
とやっても作成されません
batファイルの
"%PHP_COMMAND%" "%YII_PATH%yiic" %*
の部分で止まっているようなんですがどのような原因が考えられますか?
phpへのパスは通ってますのでphp -vと打てばバージョンは帰ってきます
0386nobodyさん2011/12/26(月) 22:14:53.24ID:???
なんかわかりませんがCreate a Web application under〜という文章がでないでいきなり入力を求められているようでした
最初の文章はでなくてもyesとうったら作成されたので一応解決しました
0387nobodyさん2011/12/26(月) 22:55:59.85ID:???
冬休みの自由研究でYiiが利用されているのは解った
0388nobodyさん2011/12/26(月) 23:14:12.32ID:???
Yiiってあれですね
Zend Frameworkに似てる感じですね
0389nobodyさん2011/12/27(火) 00:19:40.72ID:???
ググっても日本語情報少なすぎてキツイ
0390nobodyさん2011/12/27(火) 01:06:57.62ID:???
情報が少ないからコピペerとかにはつらいと思うな
0391nobodyさん2011/12/27(火) 01:17:16.70ID:aNrDGmfk
英語の出来ないヤツが
一緒に仕事してると
変な変数名や関数名を付けるので迷惑だな。

頑張ってなんちゃって英語化してるみたいだが
文法がめちゃくちゃ。
0392nobodyさん2011/12/27(火) 01:24:51.39ID:???
ネットで調べれば英語書けるじゃん
0393nobodyさん2011/12/27(火) 09:56:27.62ID:???
モデルTest.phpの変数$strをコントローラから表示させたいのですが
Internal Server Error
include(Test.php) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory
というエラーがでてしまいます
demoのファイルの中を見ながらここまでは書けたのですがmodelの読み込みがわかりません
コントローラ内からモデルを読み込んで$strの値を表示させたいのですがアドバイスお願いします
■protected/controllers/TestController.php
class TestController extends CController
{
public function actionIndex()
{
$test = new Test();
echo $test->str;
}

}
■protected/models/Test.php
<?php

class Test extends CActiveRecord
{
public $str = "サンプルテキスト";

public static function model($className=__CLASS__)
{
return parent::model($className);
}
}
0394nobodyさん2011/12/27(火) 10:19:16.88ID:???
こっちではエラー出なかった
ファイルがないってエラーだし、環境問題じゃないのか?
echoの1行コメントアウトしてもエラー出るんじゃねえの
03953952011/12/27(火) 10:38:37.00ID:???
原因わかりません
すいませんファイルあげたのでみてもらえませんか?
http://www1.axfc.net/uploader/Sc/so/304365.zip
コードはframeworkフォルダがトップのindex.phpと同じ位置にあるものとして書いてます
03963952011/12/27(火) 14:20:13.96ID:???
複数のレンタルサーバとかでうpしても同じエラーだったので環境の問題ではなさそうです
ここでつまずくと後々キツイのでやっぱYiiは選択肢からはずします
0397nobodyさん2011/12/27(火) 15:07:17.51ID:???
モデルのプロパティをコントローラでechoしたいだけなら
CActiveRecordではなく、CFormModelを継承してみてください

CActiveRecordとCFormModelの違いについてはここらが参考になるかもしれません
http://www.yiiframework.com/doc/guide/1.1/ja/basics.model
http://www.yiiframework.com/doc/guide/1.1/ja/form.model

protected/config/main.phpにてデータベースをしっかり設定していて
かつ、データベースにtestというテーブルがあって
データの取得、追加、更新、削除などを行う場合は、CActiveRecordを継承してみてください
その場合はtableNameメソッドにて、テーブル名を記述する必要があります

アクティブレコードに関しては以下が参考になりますよ
http://www.yiiframework.com/doc/guide/1.1/ja/database.ar
03983952011/12/27(火) 15:14:06.09ID:???
>>397
師匠がいうなら・・・俺また粘って見ます
0399nobodyさん2011/12/27(火) 15:18:26.04ID:???
tableNameメソッドはCActiveRecordクラスではget_class($this)とやっているので
モデルクラスとデーブル名が一致しない場合のみで、いいかもしれないですね。失礼しました。
04003952011/12/27(火) 16:30:18.42ID:???
おかげさまで出来ました
ただパスを修正したらエラーになるのが原因がよくわかりません
サーバを再起動するとエラーが消えます
Yiiに必要なapcやmemcacheの影響でこうなるのでしょうかね
よくわかりませんがこのへんを気をつけて学びたいと思います
0401nobodyさん2011/12/27(火) 16:42:02.52ID:???
PATHってphp.iniとかで設定してあんのかね?
0402nobodyさん2011/12/27(火) 16:43:28.83ID:???
パスを修正したらエラーになるってのは、具体的にどういうことですか?
あとyiiはapcなどが必須ではなく、「利用できる」だけですので、使わなくても特に問題ありません
04033952011/12/27(火) 16:50:11.11ID:???
昨日からYiiをはじめたばかりでドキュメントを読み飛ばしてるかもしれませんがphp.iniのパスというのは何かしないとだめですか?
たとえばframeworkとprotectedはドキュメントルートに置きたくないので
以下のようにパス修正・ファイルの移動してるんですがこの後にエラーがでます。
サーバを再起動すると直ったり直らなかったりします。
直らないときは1から同じものを作ったら直ります
エラーが出たら、エラーが出る直前でecho 1;exit;してブラウザで閲覧後にこのコードを消すと別のエラーが発生したりと原因も良く分からないです
/aaa/bbb/framework
/aaa/bbb/protected
/aaa/bbb/protected/config/main.php

■エントリスクリプト
require_once(dirname(__FILE__).'/../framework/yii.php');
$configFile = dirname(__FILE__).'/../protected/config/main.php';
Yii::createWebApplication($configFile)->run();

■config/main.php
<?php
return array(
'basePath' => '/aaa/bbb/protected',
);
■ このスレッドは過去ログ倉庫に格納されています