トップページphp
989コメント277KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2010/12/12(日) 10:47:08ID:???
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】PHPフレームワーク総合スレ14
http://hibari.2ch.net/test/read.cgi/php/1253912143/
0015nobodyさん2010/12/13(月) 23:54:10ID:???
jsは言語が汚れすぎてる
オライリーですら擁護しきれずに綺麗な部分だけ使おうっていう本を出してるぐらいにねw
0016nobodyさん2010/12/14(火) 00:52:00ID:???
>>11
Perlだってスタティックメンバの参照に::使ってるけど
名前空間の区切りは::だよ。
0017nobodyさん2010/12/14(火) 01:58:34ID:???
まぁすでに実装されてしまったものだし諦めるしか
0018nobodyさん2010/12/14(火) 03:45:08ID:???
言語仕様もエンジンの実装もドロドロに汚れちゃってるからなPHPは。

namespaceが中途半端な機能で、
区切り文字がバックスラッシュになったのも、
fainallyが実装されないのも、

ZendEngine2への実装が困難だからだよ。
0019nobodyさん2010/12/14(火) 07:54:18ID:???
なんでfinally実装できないの?
0020nobodyさん2010/12/14(火) 16:44:36ID:???
Lithiumのその後を知ってる人いる?
そろそろリリースかな
0021nobodyさん2010/12/15(水) 00:20:25ID:???
>>19
単純に技術的な問題。
良い実装案が出れば、実装したいと開発者は言っている。
0022nobodyさん2010/12/15(水) 01:19:20ID:???
へ?構築するスキルがないってだけ?ZendEngineの問題でなく?
0023nobodyさん2010/12/15(水) 01:58:32ID:???
>>22
ZendEngineに実装する上での技術的な問題だよ。
0024nobodyさん2010/12/15(水) 02:14:25ID:???
だからそれどういう問題?
0025nobodyさん2010/12/15(水) 03:14:43ID:???
>>24
だから、技術的な問題だよ。
興味あるならPHP自体のソースコードを読めばいいよ。
0026nobodyさん2010/12/15(水) 06:24:51ID:mlC32vdu
そういう理由じゃないだろ
http://bugs.php.net/bug.php?id=32100
0027nobodyさん2010/12/15(水) 06:35:05ID:mlC32vdu
Bjarne Stroustrup's C++ Style and Technique FAQ

Why doesn't C++ provide a "finally" construct?
http://www2.research.att.com/~bs/bs_faq2.html#finally
0028nobodyさん2010/12/15(水) 08:08:22ID:???
finally、無いよりもあったほうがいい。それは間違いない。finallyの導入にどれくらい開発コストがかかるかは知らないが。
0029nobodyさん2010/12/15(水) 08:15:57ID:???
スクリプト言語にfinallyねぇ
中々面白いギャグだ
マジだったらプログラムを一からやり直して欲しいレベル
0030nobodyさん2010/12/15(水) 08:56:06ID:???
>>26-27
で、どういう理由なん?
0031nobodyさん2010/12/15(水) 20:09:51ID:???
javascript には finally あるんだが
0032nobodyさん2010/12/15(水) 21:17:34ID:???
RubyにもPythonにもfinally相当あるよ。ついでにPerl6にもある。
0033nobodyさん2010/12/15(水) 21:25:47ID:???
>>25
ワロス 知ったか乙w
0034nobodyさん2010/12/15(水) 22:28:49ID:???
英語の読めない俺の為に簡単に訳してくれ
0035nobodyさん2010/12/15(水) 22:29:38ID:???
どこが分からんの?
0036nobodyさん2010/12/15(水) 22:39:21ID:???
>>35
http://bugs.php.net/bug.php?id=32100
return文との兼ね合いで、構文が複雑になるから実装しなかったって事?
それとも技術的な問題?
0037nobodyさん2010/12/15(水) 22:40:05ID:???
全部訳せとな?
0038nobodyさん2010/12/15(水) 22:59:50ID:???
>>37
散々議論されたってのは読み取れたけど、
最終的に何故実装されなかったのかが読み取れませんでした先生。
0039nobodyさん2010/12/16(木) 00:33:53ID:???
声の大きな人に限って結論をぼかすよなw
0040nobodyさん2010/12/16(木) 01:20:05ID:???
26は最初か2番目に出てくるコードで代用できると
27はリソースの開放は利用側じゃなくて利用されるデストラクタで実装すべきという主張。C だが
0041nobodyさん2010/12/16(木) 01:54:17ID:???
http://gihyo.jp/news/interview/2010/rasmus?page=3
「finallyも,もしよい実装があれば追加されるかも知れません。」
PHP構文的に排除したのでは無く、実装が困難だから実装されていないだけだ

>>26-27
お前英語読めないだろ?
せめてメーリングリストのログ持って来いよ
0042nobodyさん2010/12/16(木) 02:32:06ID:???
C++にfinallyが無いのと同じ理由。
0043nobodyさん2010/12/16(木) 03:44:17ID:???
>>42
ワロス、ギブミーソース
0044nobodyさん2010/12/16(木) 07:26:50ID:???
よい実装があれば可能=技術的に困難、なのか?
0045nobodyさん2010/12/16(木) 08:13:53ID:???
>>41
おまえその日本語読めてない。
空気も英語も読めてないのにメーリングリスト読めないだろ
0046nobodyさん2010/12/16(木) 11:55:51ID:???
>>45
空気読めてないのはお前だろw 顔赤くしてないで該当メーリングリストのソースを示せよ。

大垣:
 実装して欲しい,実装しておくべき機能は思い浮かびますか?

Rasmus:
 オブジェクト指向プログラミングのサポートについては実装されるでしょう
 traitsにはよい実装があるのでPHP 5.4に含まれることになるでしょう。
 finallyも,もしよい実装があれば追加されるかも知れません。

どう読んでも、実装の問題。
0047nobodyさん2010/12/16(木) 20:01:14ID:???
よい実装ってどういうこと?
0048nobodyさん2010/12/16(木) 20:23:29ID:???
プライオリティが低いってだけじゃないの?
0049nobodyさん2010/12/17(金) 00:29:50ID:???
>>47
そのままの意味だよ。
実装出来なくは無いんだろうけど、影響範囲の大きさや、ロジックの改修規模がでかくて難しい。

>>48
どこにプライオリティの話が書いてあるんだw
0050nobodyさん2010/12/17(金) 00:33:18ID:???
>>49
However namespaces are much harder to implement yet I think finally is relatively straightforward since we can already emulate it using try/catch, but with the quirks.

namespaceの方が実装難しいと書いてあるんだが?
0051nobodyさん2010/12/17(金) 01:54:36ID:???
>>50
ん?それは誰の発言?
0052nobodyさん2010/12/17(金) 01:55:07ID:???
実際finallyが必要になる場面って、どういうのがあるだろう
そもそもfinallyの代替になる方法、そんなに面倒?
0053nobodyさん2010/12/17(金) 04:00:30ID:???
実際namespaceが必要になる場面って、どういうのがあるだろう
そもそもnamespaceの代替になる方法、そんなに面倒?
0054nobodyさん2010/12/17(金) 07:14:13ID:???
>>49
>実装出来なくは無いんだろうけど、影響範囲の大きさや、ロジックの改修規模がでかくて難しい
のソースは?
0055nobodyさん2010/12/17(金) 09:59:22ID:???
例えば、アクセス制御だって、アンダーバーから始まるメソッドはプライベート扱いにするってルールでコーディングすれば、publicやprivateは不要。
が、そんなローカルルールに頼るよりも言語機能を使った方が良い。
PHPでPearが盛り上がらない理由の1つは、PHPにネームスペースやパッケージがなかったからだと思う。
0056nobodyさん2010/12/17(金) 11:09:01ID:???
PEARが盛り上がら・・・ない?
0057nobodyさん2010/12/17(金) 12:19:50ID:???
PHPって、WAFがフルスクラッチ・フルスタックなのばっかだからな。
PEAR::DBとSmartyくらいか。どっちもPHP4全盛時で、今じゃ大して使われてないな。
後は、日本だけでNet_UserAgent_Mobileくらいか。
0058nobodyさん2010/12/17(金) 12:33:27ID:???
PHPのnamespaceの一番ダメな所は、標準で規約が無いところ。

・パッケージとディレクトリ構造は一致
・クラスファイル名はクラス名+.php
・パッケージ名はドメイン名+プロジェクト名を接頭とし、Camelcaseで記述する
・クラス名はCamelcaseで記述する

のような規約があり、かつuse文でオート(Lazy)ロードに対応
くらいして欲しかった。


自分で実装出来るが、
標準でuse構文が上記に対応していたら、標準化が進むのになぁと思ったりした
0059nobodyさん2010/12/17(金) 13:57:30ID:???
一番ダメなのは5.0の時に出さなかったところだと思う
0060nobodyさん2010/12/18(土) 10:24:28ID:???
C言語の一番ダメなところは、

ネームスペースがなかったり
クラスがなかったり、
例外がなかったり
0061nobodyさん2010/12/18(土) 11:39:11ID:???
>>60
唐突になにいいだすんかとおもうが、
高級アセンブリ言語だからあれでいいのです。
0062nobodyさん2010/12/18(土) 13:01:19ID:???
N88BASICこそが究極であり至高ですよとベーマガ読者は言う。
0063nobodyさん2010/12/19(日) 00:45:35ID:???
>>60
だからC++が出来たんだろ?馬鹿なの?
0064nobodyさん2010/12/19(日) 11:24:03ID:???
C++って最初は例外もネームスペースもなかったの知ってる?
0065nobodyさん2010/12/19(日) 12:10:21ID:???
ま、名前空間とは別に、パッケージの仕組みも合った方が良いな。
0066nobodyさん2010/12/20(月) 04:22:59ID:???
名前空間、パッケージに関しては
やはり色々考えられているPerlの方が上だな。
0067nobodyさん2010/12/23(木) 14:23:44ID:???
自社フレームワークを使ってるところが多い気がするが、
自社のフレームワーク開発すべき?
0068nobodyさん2010/12/23(木) 15:24:40ID:???
必要ない
0069nobodyさん2010/12/23(木) 15:41:39ID:???
>>68
俺もそう思う。バグだらけのFWを、開発した奴はスキルアップになったかもしれんが、
それを使わされる方はマジたまらんわー。

他の人の意見も求む!
0070nobodyさん2010/12/23(木) 15:45:19ID:???
必要ない
0071nobodyさん2010/12/23(木) 16:38:01ID:???
半端なFW使うよりかは、もともとある奴をちゃんと検証して
バージョンアップしながら使ってくほうが後々考えると有益
ちょっとしたことのためにFWいじくって対応とかアホなことすると、
大抵はあとで酷いことになる
0072nobodyさん2010/12/23(木) 20:37:52ID:???
既存のフレームワークを、自分らの使いやすいようにラップするケースは多々ある。
一からフレームワークを作るのは、勉強目的以外ではあまりメリット無いかな・・・
0073nobodyさん2010/12/25(土) 05:58:05ID:???
>>71
>ちょっとしたことのためにFWいじくって対応とかアホなことすると、
あるある。ありすぎて困る。
「それはフレームワークじゃねぇ、ただのライブラリだ!」
と言っても、社内のPHP屋は理解出来ない。
PHPでOSSのフレームワーク使ってない(使い方わからない)時点で、
その程度だわな・・・
0074732010/12/25(土) 06:00:58ID:???
あ、普段はASP.NETやってます。
あれは立派なフレームワークな反面、
社内製フレームがクソすぎて・・・・
(なぜOSSのフレームワークを作らないのか・・・)
という背景があることをいちおう言っておきます。
0075732010/12/25(土) 06:01:48ID:???
(なぜOSSのフレームワークを”使わないか”)だった
0076nobodyさん2010/12/25(土) 13:40:32ID:???
>>73
PHPだけでいえば、CakeぐらいはできるがSymfonyはさすがにできないという、
中途半端な技術者が社内製フレームワークを作ってる気がする
0077nobodyさん2010/12/25(土) 14:19:58ID:???
>>76
SymfornyはCakeに比べて設計が難しいという意味?
0078nobodyさん2010/12/25(土) 20:35:21ID:???
http://www.google.com/trends?q=cakephp%2Csymfony%2Czend+framework%2Cyii
トレンドでみるとyiiが順調に伸びているが、来年もこのままの勢いを保つか。
0079nobodyさん2010/12/25(土) 20:40:16ID:???
これはtwitterをもとにした集計によるトレンド

PHP Frameworks Trends
The data below is generated automatically from twitter
http://trends.phpmagazine.net/frameworks/
0080nobodyさん2010/12/26(日) 02:03:25ID:???
名前空間があってよかったことってなんかある?
0081nobodyさん2010/12/26(日) 07:39:41ID:???
英語、新しいものダメダメな日本のPHPerにはウケわるいけど
お外じゃYiiは結構人気でてるっぽいよね
0082nobodyさん2010/12/26(日) 08:18:08ID:???
http://www.google.co.jp/trends?q=%22Yii+Framework%22%2CCakePHP%2CSymfony%2C%22Zend+Framework%22&ctab=0&geo=all&date=all&sort=0
・・・どこが?
0083nobodyさん2010/12/26(日) 11:02:41ID:???
>>82
Yii って他の意味あるのか? Yii Frameworkでググル意味は?
0084nobodyさん2010/12/26(日) 11:58:57ID:???
>>82
おまえは何がしたいんよ。
0085nobodyさん2010/12/26(日) 13:39:26ID:???
新しいモノ=良いモノとも限らないし、、
今の日本の保守的でグダグダなWEB開発業界を考えると、
枯れてリソースの揃いきったFWを深く使いこなす方が得なんだろうね。

既存のFWを捨てて、新しいFWに移行する明確なメリットデメリットが示せない限りね・・・
0086nobodyさん2010/12/26(日) 14:15:12ID:???
>>83
yii -phpの検索結果:約 9,160,000 件 (0.07 秒)
http://www.google.com/search?hl=ja&safe=off&q=Yii+-php&aq=f&aqi=&aql=&oq=&gs_rfai=
>>84
人気出てるというから検証しただけ。
0087nobodyさん2010/12/26(日) 14:49:37ID:???
それだったらこうだろ
http://www.google.co.jp/trends?q=%22Yii+-php%22%2CCakePHP+-php%2CSymfony+-php%2C%22Zend+Framework+-php%22&ctab=0&geo=all&date=all&sort=0
0088nobodyさん2010/12/26(日) 14:58:30ID:???
>>86
Yii の検索結果:約 5,200,000 件 (0.04 秒)

しかし"Yii"のキーワードだけで検索するよりも多いってのがな〜w
一体何の検証になってるんだか

・マイナス検索をすると検索結果が増える場合があります
https://groups.google.com/group/google_web_search_help_jp-troubleshooting/browse_thread/thread/0dc3791da3bb7dde?hl=ja
0089nobodyさん2010/12/26(日) 15:09:18ID:???
Yii Frameworkの他に"Yii"のつく目新しいものなんてないだろ、たぶん。
Yiiフレームワークが登場してから"Yii"のトレンドが上昇してるのは、
明らかにYiiフレームワークの成果だろ。
0090nobodyさん2010/12/26(日) 15:17:53ID:???
>>85
yiiのパフォーマンス優位は検証されてるけど
http://www.yiiframework.com/performance/
http://www.sheldmandu.com/php/php-mvc-frameworks/php-mvc-framework-performance-part-1
0091nobodyさん2010/12/26(日) 15:33:41ID:???
こんなのもあるよ。
http://erickennedy.org/Drupal-7-Reasons-to-Switch
0092nobodyさん2010/12/26(日) 16:58:09ID:???
今後もPHPが続くとしたら、新規の際の選択肢には入れたほうがいいとは思う
0093nobodyさん2010/12/26(日) 17:09:03ID:???
蓄積された情報やノウハウ、学習コストを含めるとYiiはまだまだかな。
職業PGが増えてる昨今、まともな学習教材が無いと開発者の足並みが揃わない。


>>90
Hello Worldベンチマーク・・・
0094nobodyさん2010/12/26(日) 17:23:31ID:???
>Hello Worldベンチマーク・・・
何が言いたいの?
検証に問題があるならはっきり指摘して
0095nobodyさん2010/12/26(日) 17:34:00ID:???
職業PGなんて教材があっても
多分こうだろう的な、なんも考えてない場当たり実装を次々編み出してくし
日本語で説明されてるコピペできる参考例が多くないと、確かに難しいだろうなw
0096nobodyさん2010/12/26(日) 17:34:29ID:???
symfony2はYiiより速いらしいよ。
設定がめんどいようだけど。
http://symfony-reloaded.org/fast
http://www.symfony.gr.jp/blog/20100622-the-state-of-symfony2-1
0097nobodyさん2010/12/26(日) 17:46:27ID:???
symfonyはsfFormがどうもだめだ…
symfony2で変わったのかな。
0098nobodyさん2010/12/26(日) 18:39:55ID:???
>>94
Hello Worldの値なんて理論値みたいなもので、
実際の実用環境では他のロジック部分がボトルネックになるから、ほとんど意味の無い値って事。

上の比較ではsymfonyが数倍遅いと錯覚してしまうが、
実際に作るコンテンツ内容、コーディング方法、ファイルI/O、DB処理等の方が遙かに比重が高い。

開発者全員が完璧な最適化を行えるのなら、フレームワークのオーバーヘッドを考慮するのも有意義かもしれんが、
現実的では無いし、大抵は枯れた技術の方が最適な実装が出来るし、学習コストも低い。
その浮いたコストをハードウェアやネットワークに回す方が遙かにパフォーマンスは上がる。
それ以上のチューニングを行う場合は、フレームワーク自体導入しない事の方が多い。
0099nobodyさん2010/12/26(日) 19:30:20ID:???
地味にYiiスレ出来てんのな
で、このスレをディスってんのなw
0100nobodyさん2010/12/26(日) 19:48:30ID:???
半年放置しても落ちる板じゃないしあって困るこたないんじゃね
既存のPHPFWのスレは大抵できてんじゃないかな?kohanaスレとかもあるし
0101nobodyさん2010/12/26(日) 20:03:18ID:???
よーしパパLithiumスレ立てちゃうぞー
0102nobodyさん2010/12/26(日) 21:46:11ID:???
Yiiは見た感じ良さそうだった。symfonyとYiiで行こうぜ。
日本人が言語やFW開発しても意味ないから、それだけはやめてくれよな。
0103nobodyさん2010/12/26(日) 21:52:10ID:???
>>98
ベンチマーク自体意味無しって言ってるのね。
枯れた技術とか学習コストって言ってるのも、「英語を読めない日本人PHPer」限定の話でしょ。
フレームワークの性能評価としては関係ないね。
実際は乗り換え学習コストなんてたいしたこと無いし。
0104nobodyさん2010/12/26(日) 22:55:05ID:???
>>103
Hello Worldでパフォーマンスの優位性を語ることに意味は無いって事。
静的な文字列を出力するだけのWEBアプリなんて、今日日存在しないだろう、
せめてDB接続用インスタンスを生成したり、各種ユーティリティクラスを読み込んだ上で実測しなきゃね。

>枯れた技術とか学習コストって言ってるのも、「英語を読めない日本人PHPer」限定の話でしょ。

逆だろ、一部の自称ギーク限定で新しいモノを導入したがっているだけでしょ。
英語読めても職業PGの応用力の無さでは、新しい物を自力で吸収するのは難しい、
ググレば日本語でかみ砕いた情報が得られるFWと、学習コストは比較にならんよ。

0105nobodyさん2010/12/26(日) 23:07:35ID:???
YiiとSymfony ってどっちが学習コスト低い?Kohanaは?CakePHPは?Zend Frameworkは?
学習コストでソートするとどんな感じ?
0106nobodyさん2010/12/26(日) 23:17:34ID:???
>>104
それははベンチマークの一番最初の疑問だろうけど、じゃあ公平な評価法は何ってこと。
Why "Hello World"の反論になってないよ。
http://code.google.com/p/phpmark/
0107nobodyさん2010/12/26(日) 23:27:10ID:???
>>106
>Why "Hello World"の反論になってないよ。
反論以前の問題。公平な方法が無いからHello World?
それなら極限までそぎ落とした俺の自作MVCフレームワークの方が数倍軽いかもね。

フレームワークとしてのパフォーマンスじゃなくて、
「HelloWorldを行うには最速」って表現ならいいんじゃない?
それでパフォーマンスの優位性語られても、まっとうなPGなら疑問を抱くだろうけど。
0108nobodyさん2010/12/26(日) 23:46:32ID:???
極論出たね。
なんでHelloWorldで”オーバーヘッドを測る”のが「HelloWorldを行うには最速」とかにすり替えるんだろう。

自作のフレームワークがここにならぶのと遜色無い機能を持ってるなら「自作MVCフレームワークの方が数倍軽いかもね。」と自慢してもいいよ。
http://www.phpframeworks.com/
でもそうじゃないでしょ。
0109nobodyさん2010/12/26(日) 23:50:30ID:???
じゃあ他の部分は遅いのYii?
0110nobodyさん2010/12/26(日) 23:59:34ID:???
たかがHello Worldって文字出すだけですらこんなに差が出るって考えると
なんだかんだで必要なロジックの選択はよく出来てるってことなのかな
ようは余計な処理とか通さないようにできるってことだよね

つーか、新しいものは金にするチャンスなんだから
既存のーとか枯れたーとか、そういう保守的なスタンスは儲けないよ
まぁ今日日PHP自体がアレなんだけれど
0111nobodyさん2010/12/27(月) 00:09:21ID:???
どのFrameworkがいいかなんて比較やってことないし、俺にはわからんが、
結局明確なデータに基づいた比較を行ったわけでも、ソース持ってきてるわけでもなしに、
俺がこう思ってるから俺は正しいって叫んでるだけじゃ
資料もスライドもなしにプレゼンするくらい馬鹿なことだと思う
0112nobodyさん2010/12/27(月) 00:10:32ID:???
FWって速度が評価基準なの?
開発効率のために用いるものかと思った。
0113nobodyさん2010/12/27(月) 00:13:09ID:???
ベンチマーキングの意味は>>106に書いてあるとおりで、こうも書いてある。

>Do not interpret the numbers alone

>The benchmarking results should NEVER be interpreted alone.
>The server configuration and the way of running the benchmarking applications could affect the results significantly.

>And do not choose a framework purely based on this benchmarking result.
>You should consider many other factors, such as feature set, documentation, code quality, user community, technical support, etc.
>We all know that using a plain PHP script would easily beat any of the frameworks in performance comparison.

ここに書いてあることがフレームワーク選びの正論だろ。

そのうえで「ベンチマークなんて意味無い」ってフレームワークの性能向上を否定しちゃうのは
やっぱり自分が使っている技術が廃れる事への恐れがあるんだろう。
0114nobodyさん2010/12/27(月) 00:15:09ID:???
Symfony2使っとけばno problem
0115nobodyさん2010/12/27(月) 00:16:10ID:???
>>107
>自作のフレームワークがここにならぶのと遜色無い機能を持ってるなら「自作MVCフレームワークの方が数倍軽いかもね。」と自慢してもいいよ。
http://www.phpframeworks.com/

ここに並ぶフレームワークとしての機能を使っていないベンチマークで、
パフォーマンスの優位性を語る事は出来ないって事だよ。

Yiiは遅延読込を積極的に採用しているから、Hello worldには強いかもしれないが、
実際に諸々のロジックを実装した場合、どれだけ差が出るのか解るの?

>でもそうじゃないでしょ。

俺のFWはMVCの基底部分だけ自作だから、Hello Worldは最速かな。
内部ファンクションコール数で言えば数回じゃないかな。

他のFWと連携出来るようになってるから機能的には遜色無いどころか多すぎて困るかもね。
■ このスレッドは過去ログ倉庫に格納されています