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

【PHP】PHPフレームワーク総合スレ14

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2009/09/26(土) 05:55:43ID:Z4zintKr
前スレ
pc11.2ch.net/test/read.cgi/php/1237825268/
0002nobodyさん2009/09/26(土) 05:56:56ID:Z4zintKr
主なフレームワーク

* symfony
* CakePHP
* ZendFramework
* CodeIgniter
0003nobodyさん2009/09/26(土) 07:22:33ID:???
噂には聞いてたけど
cakeのコードきっついすなー
なんでこんなのが人気あるんだ
0004nobodyさん2009/09/26(土) 08:56:47ID:???
http://slashdot.jp/security/article.pl?sid=09/09/25/0246256

.svnからソースコードが盗まれてPHP脂肪www
0005nobodyさん2009/09/26(土) 11:46:36ID:???
PHPと何の関係があるの?

って笑えばいいのかな?
0006nobodyさん2009/09/26(土) 15:15:25ID:???
>>3
コードの質もわからないバカが多いからだよ。
0007nobodyさん2009/09/26(土) 18:36:52ID:???
PHPのフレームワークに関する話題用のスレッド

●国外産●
symfony
 ttp://www.symfony-project.com/
code igniter
 ttp://codeigniter.com/
Zend Framework
 ttp://framework.zend.com/manual/ja/index.html
CakePHP
 ttp://www.cakephp.org/
Yii Framework
 ttp://www.yiiframework.com/

●国産
ちいたん
 ttp://php.cheetan.net/
Ethna
 ttp://ethna.jp/
guesswork
 ttp://classic.guesswork.jp/
maple
 ttp://kunit.jp/maple/

●前スレ
【PHP】フレームワークについて語るスレ13【総合】
http://pc11.2ch.net/test/read.cgi/php/1237825268/

次スレは >>980 くらいで立てて
0008nobodyさん2009/09/26(土) 18:36:58ID:???
●過去スレ一覧
13http://pc11.2ch.net/test/read.cgi/php/1237825268/
12http://pc11.2ch.net/test/read.cgi/php/1229960175/

11http://pc11.2ch.net/test/read.cgi/php/1219581817/
10http://pc11.2ch.net/test/read.cgi/php/1202521438/
. 9http://pc11.2ch.net/test/read.cgi/php/1197383840/
. 8http://pc11.2ch.net/test/read.cgi/php/1192604501/
. 7http://pc11.2ch.net/test/read.cgi/php/1181350116/
. 6http://pc11.2ch.net/test/read.cgi/php/1171896620/
. 5http://pc10.2ch.net/test/read.cgi/php/1159579507/
. 4http://pc8.2ch.net/test/read.cgi/php/1151706907/
. 3http://pc8.2ch.net/test/read.cgi/php/1145971945/
. 2http://pc8.2ch.net/test/read.cgi/php/1135847024/
. 1:http://pc8.2ch.net/test/read.cgi/php/1123608068/
0009nobodyさん2009/09/26(土) 18:43:23ID:???
cakeはメソッドの名前とかが微妙におかしい
英語がろくに使えない中国人が付けたみたいな感じ
0010nobodyさん2009/09/26(土) 19:25:57ID:???
たとえば?
0011nobodyさん2009/09/27(日) 02:10:24ID:???
isFieldErrorとか
0012nobodyさん2009/09/27(日) 04:12:33ID:???
beforeFilterもいい名前じゃないな
何の前なのか明示した方がいい
0013nobodyさん2009/09/28(月) 17:11:34ID:???
サーバーサイドで実行できるjqueryのオープンソース phpquery

サーバー側でHTMLをjqueryで整形できるよ。

http://code.google.com/p/phpquery/


$doc = phpQuery::newDocumentHTML("http://www.yahoo.co.jp/");

$html = $doc['div'] -> html();

サーバーサイド側でこんな簡単にHTMLが抜け出せる。
正規表現も使わないで済む。jqueryライクな書き方でOK
0014nobodyさん2009/09/28(月) 18:22:58ID:???
で、どのフレームワークが一番いいの?
0015nobodyさん2009/09/28(月) 21:30:30ID:???
これからはじめるならYiiもいいかもしれないよ
0016nobodyさん2009/09/28(月) 21:40:26ID:???
yiiもドキュメント見るとなんかダサい感じ
0017nobodyさん2009/09/28(月) 21:40:46ID:???
面接で、使ったことあるフレームワークとか聞かれたとき、
Yiiって言いにくいよな、なんかショッカーの雑魚戦闘員っぽくて。
0018nobodyさん2009/09/29(火) 01:52:25ID:???
PHPやJSなどの各種フレームワークを比較できる
『Best Web Frameworks』
http://www.bestwebframeworks.com/
0019nobodyさん2009/09/29(火) 01:58:03ID:???
>>18
いくら何でもこんな表じゃ比較できないだろうw
やっぱり使ってみないと分からないよな
0020nobodyさん2009/09/30(水) 04:24:45ID:???
PHP4準拠だったり、マジックメソッド多用してたり、グローバルスコープに関数や定数を定義しまくっているFWは論外だと思う。
特にマジックメソッドはIDEとの親和性も悪いし、エラーの温床になりやすい。
0021nobodyさん2009/09/30(水) 06:53:34ID:???
それってcakeしかねーじゃん!
0022nobodyさん2009/09/30(水) 16:50:14ID:???
マジックメソッドは使わなければ良いだけじゃね?
0023nobodyさん2009/09/30(水) 19:12:44ID:???
cakeはレンタルサーバーでも使いやすいから人気になっただけだな
0024nobodyさん2009/09/30(水) 20:10:25ID:???
つまり、そのほかのフレームワークは
レンタルサーバーでは使いにくいといいたいわけです。
0025nobodyさん2009/09/30(水) 22:05:58ID:???
PHP使ってる人のPGとしての意識が低いだけっしょ。
コード品質より、楽さを求める人が多いからcakeを選択する人が多い、と。
0026nobodyさん2009/10/01(木) 03:04:16ID:???
他のフレームワークよりcakeは楽できるの?
0027nobodyさん2009/10/01(木) 03:34:53ID:???
最初に覚えてからもう新しいの覚えることができなくなった頭がお年寄りになった人たちには楽だよ
0028nobodyさん2009/10/01(木) 03:58:09ID:???
cake食い過ぎて糖尿病!
0029nobodyさん2009/10/01(木) 08:45:24ID:???
すみません、フレームワークを勉強しようと思っているのですが、ZendとCakeってどう違うのでしょうか?
まだ良く分かっていないのですが、例えばライブラリのように2つを一緒に使うとかいうような事も出来るのでしょうか?
関数、変数名が干渉してしまってどちらか一方だけになるとかあるのかなぁ、と思っています。


0030nobodyさん2009/10/01(木) 09:11:17ID:???
cakeは「名前空間がぶつからないようにする」という配慮自体が欠けてる、全体的に。
0031nobodyさん2009/10/01(木) 09:31:16ID:???
Zend 疎結合
Cake 密結合
0032nobodyさん2009/10/01(木) 10:19:17ID:???
>>30
そ、それはまずいですね
しかし使っている人も多いようなのである程度注意していれば問題は無いのでしょうが、ちょっとした事でオーバーライドとかのバグになりそうですね

>>31
おおっ、簡潔でいて的を射ていそうな表現ですが
自分にはちょっと分かりにくかったです
Zendは互いが干渉しにくい為にバグやオーバーライド等が少ない代わりに構文はやや複雑になり、
Cakeは色々なメソッドやらハンドラが密に干渉していて、簡単な構文になりやすいという事でしょうか?

0033nobodyさん2009/10/01(木) 14:47:54ID:???
>>32
違います。
0034nobodyさん2009/10/01(木) 15:59:48ID:???
ふえっ?
すみません、では違いが分かりません
どのように2つは違うのでしょうか・・・
ごめんなさいあまり知識が無いもので
0035nobodyさん2009/10/01(木) 17:07:19ID:???
Zendは次世代PEAR(ライブラリ集)、CakeはPHP版RoR。
設計思想からして違う。

実際に使ってみると、

Zendはフレームワークを作る為のライブラリ集、
基本的な機能は揃っているが導入時にある程度のコードを書く必要がある。
反面、自分の使いやすい形式のFWに仕立て上げる事が出来る。
疎結合なので、使いたいクラスを学ぶだけで簡単に導入出来る。

Cakeは決められたルールに従えば、書くコードが少なくてすむ。
反面、ルールから外れた事しようとすると面倒になる。
0036nobodyさん2009/10/01(木) 17:20:22ID:???
>>35
よく分かりました
説明有難うございました
0037nobodyさん2009/10/02(金) 06:54:35ID:???
コンポーネントとか使い始めると名前衝突の可能性がぐんと上がるかも。>Cake
Cake3ー!早く来てくれー!
0038nobodyさん2009/10/02(金) 16:04:35ID:???
名前衝突とか気にするなら、
最初からcake以外のフレームワーク使うのが吉
せっかくいろいろ種類が出てるんだから、
他のフレームワークも盛り上がって欲しい
まあおれはcake使うけど
0039nobodyさん2009/10/02(金) 18:54:20ID:???
PHPに名前空間がサポートされたら、
Cakeは逆にシンプルな関数名で良いといわれるようになる。

そこまで先を見ていたのだよ。
0040nobodyさん2009/10/03(土) 01:04:59ID:???
PHP5.3から名前空間サポートされましたけど。
0041nobodyさん2009/10/03(土) 02:37:53ID:???
PHP5.3の付け焼き刃な名前空間使うくらいなら、
クラスにパッケージ接頭子付ける方がまし。
0042nobodyさん2009/10/03(土) 11:48:35ID:???
Zend とか異常に長いのなかった
あーゆーのは嫌だなぁ
0043nobodyさん2009/10/03(土) 12:55:33ID:???
名前空間がサポートされたとしてもcakeの定数名はないわ
0044nobodyさん2009/10/03(土) 16:25:09ID:???
>>42
ネームスペース使っても
new Zend_Db_Adapter_Abstract(); が new Zend\Db\Adapter\Abstract();

になるだけだぜ?
同一パッケージや、useでエイリアス貼ればいいんだろうけど・・・それをやり始めると名前衝突が避けられなくなるという罠。

Zendの命名形式はいいけど、サブパッケージを掘りすぎなのが問題だと思う。
Zend_DbAdapterAbstract
Zend_ControllerFront
みたいにcamelCase使ってもう少し階層数を下げれんもんだろうか。
0045nobodyさん2009/10/03(土) 16:38:08ID:???
で、業界で一番使われているフレームワークはどれなの?
0046nobodyさん2009/10/03(土) 16:43:05ID:???
言う程フレームワークは浸透していないよw
習コストかかるし、FW自体をまともに理解出来る人材も少ない。

結果社内開発のシンプルなライブラリ集みたいなものが多用される事になる・・・
0047nobodyさん2009/10/03(土) 23:36:19ID:???
>>44
Zend_DbAdapterAbstract
こんなんじゃオートローダー作りにくいし、(現状だとPEAR含めてオートローダーが共用できる)
階層数下げるメリットも分からない。
Yiiはオートローダーを実現するためにこんなコードが200行以上も続くが、こんなんよりよっぽどマシだと思う。


private static $_coreClasses=array(
'CApplication' => '/base/CApplication.php',
'CApplicationComponent' => '/base/CApplicationComponent.php',
'CBehavior' => '/base/CBehavior.php',
'CComponent' => '/base/CComponent.php',
'CErrorEvent' => '/base/CErrorEvent.php',
'CErrorHandler' => '/base/CErrorHandler.php',
'CException' => '/base/CException.php',
'CExceptionEvent' => '/base/CExceptionEvent.php',
'CHttpException' => '/base/CHttpException.php',
'CModel' => '/base/CModel.php',
0048nobodyさん2009/10/04(日) 03:30:26ID:???
>>47
お前は何を言っているんだ?
Zendの命名が冗長だっていう指摘に対するレスなだけなんだが。


オートロードなんてクソ重くてコード保守性下がる物の為に、
コード規約を設計するなんて正気の沙汰とは思えないな・・・
0049nobodyさん2009/10/04(日) 03:32:18ID:???
あとYiiはオートローダを実現する為に書いているんじゃなくて、
オートローダのファイル検索オーバーヘッドを少なくするためじゃないの?w

200行程度、オートロード1〜2回行うより遙かに軽いよ。
0050nobodyさん2009/10/04(日) 10:51:49ID:???
>>48
出鱈目いうなよ。オートロードが速くて保守性がいいからPHP5のFWが使ってんだろが。
>>49
ファイル検索オーバーヘッドってなんだ?オートロードってファイルを「検索」してロードすんのか?w
0051nobodyさん2009/10/04(日) 11:13:21ID:???
>>49
spl_autoload_register(array('YiiBase','autoload'));
0052nobodyさん2009/10/04(日) 15:44:29ID:???
>>50
ベンチマークとって見ろよw autoloadって結構なリソース食うんだぜ。
最近のFWは機能こそ備えているけれど、デフォルトでは使ってないのもその為。
Zendとか、各クラスで使用するクラスをincludeしてるだろ?
生産性は上がるがクラス間の関係性が不透明になるから、保守性は下がる。


>ファイル検索オーバーヘッドってなんだ?オートロードってファイルを「検索」してロードすんのか?w
そうだよ?
インクルードパスに該当するファイルが無いか検索が発生するけど、これが想像以上に重いんだよ。
Yiiはその手間を省く為に、クラス名とファイル名のマッチングを使っている。
0053nobodyさん2009/10/04(日) 17:23:53ID:???
これはYiiな
0054nobodyさん2009/10/04(日) 21:49:34ID:???
それはYiiの糞ローダーだけの問題だろう。クラス/ファイル命名規則が糞だからマップを必要としてるだけ。
そもそもインクルードパスのスキャンをしないためにはフルパスでinclude/requireしかない。オートロードは関係ない。
Kohanaはずっとすっきりしてるし、ZendやSolarはPEARスタンダード準拠。

ベンチマーク?
http://till.vox.com/library/post/zendframework-performance.html の
3) Get rid off require_once, use __autoload とか見れ
http://blog.apecell.com/?s=autoload&x=0&y=0 ここも
お前の言う相対パスのベンチはここ 
http://jp.php.net/manual/ja/function.require-once.php
0055nobodyさん2009/10/05(月) 23:38:00ID:???
それはautoloadを使う前提での require と require_once のベンチマークだろw

Zend_Loaderのautoload経由でのincludeと、通常のincludeを比較してみろよ。
予め使うクラスが確定している場合はオートロードなんて使うもんじゃないよ。
0056nobodyさん2009/10/06(火) 00:47:18ID:???
autoloadするっていっても、一度に全てのファイルを読み込む訳じゃないだろうから、そこまで劇的に違いは出ないんじゃないの?

autoloadを介す場合、

1.ファイルパスが書かれた設定を読み込み、配列にセットする。
2.ロード済みかチェックする
3.未ロードならincludeする

という手順になると思う

速度に違いが出そうなところといえば、おそらく1.のパスを配列に詰め込むところでしょう。
数万ファイルあると、相当遅そうだけど、数百、数千ファイルのパスを詰め込むぐらいなら、それほど負荷はかからない様に思える。

また、この設定ファイル自体、更新頻度が低いだろうから、
アクセラレータを介したり、
初回は設定ファイルから読み込み→シリアライズしてしまえば、
さらに負荷を押さえられそうな気がする
0057nobodyさん2009/10/06(火) 00:58:19ID:???
「予め使うクラスが確定している場合は」

ワロタ。
0058nobodyさん2009/10/06(火) 01:52:53ID:???
Removing require_once in favour of __autoload shows one of the biggest performance improvements in my entire application
- I shaved off roughly 220 milliseconds by removing about 15 (or so) calls to require_once in my bootstrap.php file.
require_once is also the number one performance killer from the entire Zend_* code base. The before/after is amazing.
Without any of those enhancements from the list just by stripping out require_once from our ZendFramework "install",
we went from 9-10 requests/second to 27 requests/second.

Zend_*コードから全てのrequire_onceを取り除き__autoloadに変えると 9-10 リクエスト/秒が27リクエスト/秒になった。
0059nobodyさん2009/10/06(火) 02:38:20ID:???
require_onceって何で遅いん?
0060nobodyさん2009/10/06(火) 09:10:10ID:???
>require_onceって何で遅いん?
PHP側の読込み済みかどうかの判定がウンコだから
0061nobodyさん2009/10/06(火) 12:08:57ID:???
>>58
それって、フレームワークやライブラリ次第なんじゃないかなあ。
毎回、必要ないものを大量にrequire_onceしてるならautoloadしたほうが速いだろうけど、
そうでないならrequire_onceのほうが速いと思う。
その加減がわからんけど。
0062nobodyさん2009/10/07(水) 08:49:18ID:???
autoloadにしてエラーが出るおれには、死角は無かった。
0063nobodyさん2009/10/07(水) 20:01:22ID:???
>>62
>死角は無かった
資格はなかった、の間違いだな
0064nobodyさん2009/10/10(土) 11:43:41ID:???
>オートロードなんてクソ重くてコード保守性下がる物の為に、
>コード規約を設計するなんて正気の沙汰とは思えないな・・・

こいつが糞なのだけは分かった。
0065nobodyさん2009/10/11(日) 06:11:17ID:???
オートロードを推奨してる言語って何かあったっけ?
0066nobodyさん2009/10/11(日) 10:25:39ID:???
オートロードってモダンな言語では標準じゃないか?
0067nobodyさん2009/10/11(日) 11:35:46ID:???
そのモダンな言語を上げてくれよw
大抵はclassの頭にimportとかで明示的に使用するクラスを指定すると思うんだが・・・
0068nobodyさん2009/10/11(日) 20:39:57ID:???
言語によっては慣習的にライブラリを丸ごとimportするものもあるよね
0069nobodyさん2009/10/12(月) 00:44:11ID:???
だから具体的にその言語名を名前挙げてくれよ。

JavaとかC#みたいなコンパイラ型言語の事を指している?
であれはコンパイル時にクラスチェックが行われるので、
PHPのオートロードで問題になる「実行時にクラスが参照出来ない」「どのクラスを参照しているか不透明」という問題は起こらない。
あと、丸ごとライブラリをimportするような慣習は無い。
0070nobodyさん2009/10/12(月) 10:09:43ID:???
言語というよりモダンなフレームワークじゃないか?
Rails なんて 200 くらいのライブラリを import するよね。
0071nobodyさん2009/10/13(火) 06:25:12ID:???
オートロードは用意されているが、使用はされていない気がする>モダンフレームワーク
0072nobodyさん2009/10/14(水) 09:11:43ID:???
>>69
コンパイラ言語であることと静的性格は全く関係ない。
Objective-CとはかインタプリタじゃないけどPHPなんかよりもずっと動的性が高いし、
ライブラリを丸ごとimportする習慣もある。
0073nobodyさん2009/10/14(水) 17:44:33ID:???
>>72
丸ごとimportって、結局はコンパイラがコード解析及び妥当性をチェックして必要なクラスのみを取り込んでるんだよね?
PHPの実行時オートロードとは性質が異なると思うんだけど。
0074nobodyさん2009/10/15(木) 00:01:13ID:???
いや、存在する全てのクラスをランタイムに読み込むけど
0075nobodyさん2009/10/15(木) 18:19:58ID:???
皆はさ、一応フレームワークはcake、zendなど一通りやったの?
それともcakeならcakeだけ?
0076nobodyさん2009/10/15(木) 19:08:17ID:???
symfony,code igniter,ethna,zend,cakeあたりは触ってみた
0077nobodyさん2009/10/15(木) 19:32:58ID:???
>>74
なにそのクソ仕様w
0078nobodyさん2009/10/15(木) 20:45:43ID:???
>>77
AppleとかAdobeとか絡む奴はみんなそんなもんだよ。
0079nobodyさん2009/10/15(木) 23:38:49ID:???
>>77
C#とかもimportしなくてもランタイムには全部読み込まれるだろ
0080nobodyさん2009/10/16(金) 06:35:50ID:???
明示的に全パッケージをimportするのと、実行時のオートロードは別物だと思うんだが。
0081nobodyさん2009/10/16(金) 19:56:32ID:???
phpのプロパティー名って
hoge_hoge形式がいいの
hogeHoge形式がいいの
0082nobodyさん2009/10/16(金) 20:04:57ID:QRRFB99x
hoge☆hoge
0083nobodyさん2009/10/16(金) 20:08:34ID:???
>>81
混在しすぎでどっちつかずだと思う
全体的にアンダースコア使ってるものが多いっちゃ多いけど
自作メソッドとかそういうのは好きなほうで統一すればいいんじゃね
0084nobodyさん2009/10/16(金) 20:08:56ID:???
hoge・F・hoge
0085nobodyさん2009/10/16(金) 20:14:01ID:???
ローカル変数はhoge_hogeだよね
0086nobodyさん2009/10/16(金) 20:15:14ID:???
Tsunoda☆Hiro
0087nobodyさん2009/10/16(金) 20:33:16ID:???
せい☆ぞん
0088nobodyさん2009/10/16(金) 21:33:40ID:???
ZE☆ND
0089nobodyさん2009/10/16(金) 21:38:27ID:???
>>86
微分したら全部同じじゃねーか
ひねれよ
0090nobodyさん2009/10/16(金) 21:47:01ID:???
アンダーバーとSQLとの相性は面倒
0091nobodyさん2009/10/23(金) 14:38:35ID:???
今PHPでWebアプリを作ってますが、Scalaに乗り換えたいです。
みんなもScalaを使ってみて、PHPとの比較レポートをお願いします。

ttp://codezine.jp/article/detail/4310
ttp://d.hatena.ne.jp/yuroyoro/20080808
0092nobodyさん2009/10/23(金) 16:04:35ID:???
まずは自分で比較レポート上げろやミーハー野郎。
0093nobodyさん2009/10/23(金) 20:42:51ID:???
Zend PHP Store閉店でPHP脂肪www
0094nobodyさん2009/10/24(土) 00:04:45ID:???
Zen Cartはどうなるの?
0095nobodyさん2009/10/25(日) 03:57:41ID:???
>>91
Scalaに移る前にPHPのシンタックスをScala風にするやつ試してレポしてよ
0096nobodyさん2009/10/27(火) 13:25:25ID:???
楽天で週2日勤務、月額200万円を稼いだ「PHPの神」
ttp://business.nikkeibp.co.jp/article/manage/20091022/207799/?P=2

Ethnaを作れるぐらいになると1日で30万円を稼げるのか…スゲーwww
0097nobodyさん2009/10/28(水) 05:48:04ID:wgov9hiD
>>96
プロモーション丸出しの記事でワロタw
ソフバン問題で一般にもあくどさがばれたから慌ててイメージアップ戦術打ったんだな
てかF氏は技術者としては悪くはないけど少なくとも神ではねえよw
何より本人が一番分かってるだろうけど
褒め殺しかよw
0098nobodyさん2009/11/07(土) 10:30:17ID:6jU57Qso
そろそろPHPerにとどめを刺しておくか
http://e-arrows.sakura.ne.jp/2009/11/phper.html
0099nobodyさん2009/11/07(土) 14:44:10ID:???
もう許してやれよ
0100nobodyさん2009/11/07(土) 16:13:07ID:???
>>98
香ばしくて痛いなw
勤めてる社名まで出しちゃって・・・若いって怖い。
0101nobodyさん2009/11/08(日) 01:06:50ID:35LWJ8zb
フレームワークに手を出そうかなと思ったのですけど
どんなのを使っていいかわからない状態です

とりあえず作る予定のサイトは
テンプレートの共通点は多いけど、ページによって使うテンプレートの種類や個数が全然違う感じなんですけど、
よく分からないので、面倒なことを考えずに組み立てれば動くってくらい
初心者が取っつきやすいフレームワークを教えてください
■ このスレッドは過去ログ倉庫に格納されています