【PHP】フレームワークについて語るスレ10【総合】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/08/24(日) 21:43:37ID:???http://pc11.2ch.net/test/read.cgi/php/1202521438/
0002nobodyさん
2008/08/24(日) 21:44:41ID:???いきなりミス。スマソ...
0003nobodyさん
2008/08/24(日) 21:47:34ID:???【PHP】フレームワークについて語るスレ10【総合】
http://pc11.2ch.net/test/read.cgi/php/1202521438/
【PHP】フレームワークについて語るスレ9【総合】
http://pc11.2ch.net/test/read.cgi/php/1197383840/
【PHP】フレームワークについて語るスレ8【総合】
http://pc11.2ch.net/test/read.cgi/php/1192604501/
【PHP】フレームワークについて語るスレ7【総合】
http://pc11.2ch.net/test/read.cgi/php/1181350116/
【PHP】フレームワークについて語るスレ6【総合】
http://pc11.2ch.net/test/read.cgi/php/1171896620/
[PHP]フレームワークについて語るスレ5[総合]
http://pc10.2ch.net/test/read.cgi/php/1159579507/
[PHP]フレームワークについて語るスレ4[総合]
http://pc8.2ch.net/test/read.cgi/php/1151706907/
[PHP]フレームワークについて語るスレ3[総合]
http://pc8.2ch.net/test/read.cgi/php/1145971945/
[PHP]フレームワークについて語るスレ2[総合]
http://pc8.2ch.net/test/read.cgi/php/1135847024/
【PHP】フレームワークについて語るスレ【総合】
http://pc8.2ch.net/test/read.cgi/php/1123608068/
0004nobodyさん
2008/08/24(日) 21:48:23ID:???symfony
http://www.symfony-project.com/
code igniter
http://codeigniter.com/
Zend Framework
http://framework.zend.com/manual/ja/index.html
CakePHP
http://www.cakephp.org/
【和モノ】
ちいたん
http://php.cheetan.net/
Ethna
http://ethna.jp/
guesswork
http://classic.guesswork.jp/
maple
http://kunit.jp/maple/
0005nobodyさん
2008/08/24(日) 22:11:57ID:???0006nobodyさん
2008/08/25(月) 14:32:05ID:qgfF3K9Xage
0007nobodyさん
2008/08/25(月) 16:50:03ID:???ZendがPHPにかなり力を入れてるから将来性があると思うんだけど
評価が悪くて使えそうにない
0008nobodyさん
2008/08/25(月) 16:54:50ID:???ちいたん使えwww
で「今回のプロジェクトではフレームワークとして「ちいたん」を採用しました」
って上司に報告してくれwww
0009nobodyさん
2008/08/25(月) 16:58:15ID:hwjRu6i6あんまり大きいデータは扱いたくないよな。
かといってテンポラリーなデータを永続データが入ってるDBに突っ込むのは
抵抗がある。
こういう場合どうする?
0011nobodyさん
2008/08/25(月) 17:25:37ID:???結局全読み・全書きになるのでは?
0012nobodyさん
2008/08/25(月) 18:59:26ID:???1. 気にせずDBに放り込む
2. 「永続データが入って」いないDBに放り込む
3. 「一部を読み書きできる」ように細分化してファイルに放り込む
4. 気にせず毎回全部読み書きする
なんでもいいんじゃないの?
0014nobodyさん
2008/08/25(月) 21:13:10ID:???>評価が悪くて使えそうにない
せめて情報が無くて使えそうにないって言ってくれw
ユーザの声(マニュアルではない、もすこし身近なTips、ノウハウなど)が
圧倒的に不足しているよね
でもそれはどのフレームワークも一緒か。
そもそも乱立しすぎじゃね?
例えばせめてライブラリ系はZendを使うとか、そんな風潮になればノウハウは
蓄積されていくんだろうけど
0015nobodyさん
2008/08/25(月) 23:48:18ID:???http://talks.php.net/show/froscon08/
結果だけまとめると
1位 素のPHP
611.78 trans/s
2位 CodeIgniter 1.6.3
305.9 trans/s
3位 Solar 1.0.0alpha1
271.18 trans/s
4位 Zend Framework 1.6.0-rc1
130.08 trans/s
5位 Agavi 1.0-beta1
126.91 trans/s
6位 Symfony 1.1
100.63 trans/s
7位 Prado 3.1.2
76.95 trans/s
8位 Drupal 6.4
51.37 trans/s
9位 CakePHP 1.2.0rc2
25.88 trans/s
0016nobodyさん
2008/08/26(火) 00:48:34ID:lM6BRZm9マジレスすると、セッションみたいな永続じゃないデータの場合memcache使うのが良い。
レンサバじゃ無理だけどな。
0017nobodyさん
2008/08/26(火) 01:23:19ID:???0019nobodyさん
2008/08/26(火) 10:05:38ID:???0020nobodyさん
2008/08/26(火) 11:02:15ID:???cakeもどきの俺様フレームワーク作ってやるかな。
0021nobodyさん
2008/08/26(火) 23:18:20ID:???0022nobodyさん
2008/08/27(水) 00:05:44ID:???0023nobodyさん
2008/08/27(水) 11:52:55ID:n0GZd29Csingletonって全部staticなクラスとほとんど同じでは?
むしろ、singletonの機構を書く必要がない分、
staticなクラスの方がいいのではないかとも思うのですが
singletonのアドバンテージって何ですか?
0025nobodyさん
2008/08/27(水) 15:02:44ID:???(PHPの)クラスはobjectではない
ぜんぜん違うだろ
0026nobodyさん
2008/08/27(水) 15:06:09ID:???で?
0027nobodyさん
2008/08/27(水) 15:13:19ID:???分かってる人の返答お待ちしております
0028nobodyさん
2008/08/27(水) 15:56:42ID:???なのにstaticなクラスがいいとか全然違うよ
分かってないのはあなた
singletonをもう一度調べ直してみ
0029nobodyさん
2008/08/27(水) 16:01:55ID:???Hoge::page() ではなく Hoge::instance()->page() にするメリットはなにかと
言うことだと思うんだけど
まあインスタンスにしておけば、変数に放り込んで引数で渡したり、
簡単に別クラスに差し替えたり、そう言う事ができるかもしれない
私もよくわからんので、違うっていう人の親切な解説があれば嬉しいな
0030nobodyさん
2008/08/27(水) 17:22:46ID:???保証されますよっていうパターンの概念なわけで、別に
staticなクラスの作りでsingleton的な扱いをすることもできるだろうけど、
ただそれが「singletonって全部staticなクラスとほとんど同じ」かと
言われればそりゃ違うって答えるだろう
概念の話とコードレベルの話だし質問がおかしい
ある程度有名なパターンだからsingletonってこういうもの、
という共通認識がプログラマにあるのがアドバンテージなわけであって
このクラスはsingletonだからインスタンスは唯一、とすぐ把握できるところを
オレオレsingleton概念で「これ俺なりのsingleton!インスタンスはナイっス!」
とか言われても困るわけで
Hoge::page() と Hoge::instance()->page() 云々も一緒で
要はそのクラスがどういう扱いなのかというのを認識するのに
singletonというパターンがあるよってだけの話であって
singletonだから絶対Hoge::instance()->page()な形ってわけでもないし
コードレベルの問題とはまた別の話かと
0033nobodyさん
2008/08/27(水) 18:06:57ID:???ってことですね
0034nobodyさん
2008/08/27(水) 18:12:39ID:8yHWP9d0思ったんですが、
singletonって全部staticなクラスとほとんど同じでは?
むしろ、singletonの機構を書く必要がない分、
staticなクラスの方がいいのではないかとも思うのですが
singletonのアドバンテージって何ですか?
晒しage
0035nobodyさん
2008/08/27(水) 18:27:10ID:???0036nobodyさん
2008/08/27(水) 19:08:36ID:???0037nobodyさん
2008/08/28(木) 02:21:17ID:???得意げにsingletonの解説始めちゃう奴なんなの?
そういうのを東洋じゃ釈迦に説法って言うんだぜ。
0038nobodyさん
2008/08/28(木) 03:28:58ID:???おつむがおしゃかな奴なら確かにいるようだが。
0039nobodyさん
2008/08/28(木) 08:08:13ID:???0041nobodyさん
2008/08/28(木) 21:36:39ID:???反論するなら論理的にしろ。な?
0042nobodyさん
2008/08/28(木) 21:49:55ID:???痛々しさではむしろ>>31-34の方が
んで、>>23はsingletonと同じではないけど、別にそれでも
いいんじゃない?っていう認識はどんなもんですか > エロい人
唯一性(?)の保証なら、コンストラクタ隠し忘れてたり__clone()上書き
してなかったりする半端singletonよりは確実とか考えたり。(そんな奴いない?)
インスタンスとして扱う必要がなくて、「singleton」と言いさえしなければ、
あれも十分実用的な考え方だと思うけど
叩くなら叩け
0043nobodyさん
2008/08/28(木) 22:07:43ID:???0044nobodyさん
2008/08/28(木) 22:08:43ID:???>>30で十分説明してあるし、それ読んで分からないようなら、素養がなさ過ぎるので、プログラミングなんか止めた方が良い。
河原で野球でもしてろ。
0045nobodyさん
2008/08/28(木) 22:26:50ID:???いうことでおk?
OO言語でのstatic等と言うものの理解が全然ないのは確かだから
申し訳ないが、singletonと、くだんの実装方法との最大の違いはインスタンスを
使うかどうか、っていうことだけと思ってしまう。それはsingletonの概念に含まれるの?
>>23の手法に、また別な名前があったなら話はシンプルだとかそういう話?
0046nobodyさん
2008/08/28(木) 22:33:07ID:???0047nobodyさん
2008/08/28(木) 22:35:06ID:???0048nobodyさん
2008/08/28(木) 22:49:37ID:???もともとsingletonってデザインパターンは、Javaでのデザインパターンの話だし、
JavaプログラミングだとThreadって概念も出てくるから、全部staticなクラスよりも
singletonのほうが都合が良いとか、そういうことなんじゃないの?
0049nobodyさん
2008/08/28(木) 23:05:35ID:???うん。もともと、そういう実際上の都合も絡めての話題だと思った
てか singleton static でちょっとググっただけでわんさか出てきた
ttp://java-house.jp/ml/archive/j-h-b/048394.html
ttp://www.aerith.net/design/Singleton-j.html#no_use_case
ttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=22377&forum=12&start=16&23
ttp://www.sk-jp.com/java/pattern/singleton.html
ttp://oldblog.xenophy.com/index.php?entry=entry061224-024857
ttp://tome-programming.cocolog-nifty.com/blog/2006/08/singletonstatic_365e.html
↑(結構アレなのも混ざってるけど)
意外とみんな引っかかる点なんじゃないの?
>>23がそこで悩んだとしたら、むしろセンスがあるんじゃね?
痛いっていってる人らはみんなきっとこれを乗り越えているんだろうが優しくねえなー
0050nobodyさん
2008/08/28(木) 23:25:03ID:???俺も>>23の質問に対する正しい解答は知りたい。
>>44がいってる
>staticメソッドとシングルトンパターンとじゃ、比較したり置き換えたり出来るもんじゃないんだよ。
っていうのも、少しずれてて、
>>23は、
全部staticなクラスを作るというデザインパターン と singletonというデザインパターンを比較してるのであって。
で、>>30の回答も、
そのアプリケーションを扱う人間が全部staticなクラスを作るというデザインパターンに対して共通認識を持ててたとしたら、
特に不都合は無い、ってことなのかな。
0051nobodyさん
2008/08/29(金) 01:26:14ID:???0052nobodyさん
2008/08/29(金) 01:39:13ID:???それは言えるかも。オブジェクト指向ではないと。
まあぶっちゃけstaticなプロパティを、globalsのいらないglobal変数として
使ってる私が通りますよ、と。
原則がないといくら文法がJavaに近くなっても意味がないってことはありそう
でもそれはデザインパターンと直接には関係しないような
singletonにしたって、普通にglobalじゃんっていう評価みたいだし。俺はよくわからんけどね
005323
2008/08/29(金) 03:15:53ID:???全部staticのクラスだろうがオブジェクト指向にすることは可能。
さらにいえば、別にクラスがなくても可能。
スレッドのないPHPではsingletonに色んなざっくばらんな代替方法があると。
ただ汎用的な知識としてはJavaのやり方が無難で
わざわざ他の方法をとることもないということだな。
よくわかった。
0054nobodyさん
2008/08/29(金) 03:25:48ID:???てかそんな投げやりなまとめなら23とか名乗らず名無しで書けよw
ちょっとでも擁護したレスが軒並み後悔するような、嫌な感じだwww
さあ寝よ
0055nobodyさん
2008/08/29(金) 03:31:33ID:???別に君に擁護されなくても全く困らんよ?
もともと馬鹿に的外れな批判されても痛くもなんともないし
0056nobodyさん
2008/08/29(金) 09:09:19ID:EVgfNfndこんな説明をする先輩いるけど、ほんと自己満足だよな。
シングルトンのかわりにstaticメソッドでもいいじゃんというのは、そのとおり。
$obj = FooClass::getInstance();
$obj->method();
とするだけなら
FooClass::method();
でいいじゃんと思うのは自然なこと。
ただシングルトンはオブジェクト指向の機能を使えるので、
・継承が使える
・他のメソッドに引数として渡したりできる(オブジェクトなので)
・任意個の個数に設定できる(1個である必要はない)
という利点がある。こういった点が必要ないなら、staticメソッドで構わないよ。
たとえば
$obj = FooClass::getInstance();
other_function($obj);
ということをしたかったら、staticメソッドじゃなくてシングルトンのほうが自然だよね。
シングルトンもstaticメソッドもあくまで手段でしかないので、目的がstaticメソッドで満たせるなら
staticメソッドでもいいんじゃない。
0057nobodyさん
2008/08/29(金) 10:42:02ID:???クラス定義の中から、
class Hoge {
self::mixin('OtherClass');
}
↓
HogeにOtherClassがmixinされる
みたいな形にしたいのですが。
runkitは不安定だったので使いたくありません。
0058nobodyさん
2008/08/29(金) 10:51:30ID:???0059nobodyさん
2008/08/29(金) 11:13:07ID:YM8BIoOFRhacoというフレームワークではMix-inをサポートしているそうだからみてみるといいかも。
http://rhaco.org/
http://ll.jus.or.jp/2007/show/Event/Session/
> 変態的国産PHPフレームワークrhaco
> doctest、distutils、mix-in等PHPでは聞き慣れない機能について紹介します。
0060nobodyさん
2008/08/29(金) 11:39:37ID:???ありが�dみてみます
とりあえずsymfonyのsfMixerを見てみたけど
__callの中からsfMixerを呼んで、そこでバックトレース情報を利用して
混ぜられた側のメソッドにデレゲートしてる感じ
この方法だと、混ぜられた側のメソッドから
混ぜてる側のメンバにアクセスできないような・・・
0061nobodyさん
2008/08/29(金) 12:35:23ID:???速度さえ気にしなければeval使えば大抵のことできますね〜
evalでいくしかないかな
0062nobodyさん
2008/08/29(金) 13:15:34ID:???シングルトンパターンという実装パターンの一つとじゃ比較の対象にならない。
0063nobodyさん
2008/08/29(金) 13:57:50ID:???OOPは構造化プログラミングを含んでるんだよ
書き方の問題ではない
0064nobodyさん
2008/08/29(金) 19:54:55ID:YM8BIoOFなに難しいこといってんの?
シングルトンでやろうとしていることは、staticメソッドでもできるんじゃね?というだけの話。
なんで構造化プログラムだとかオブジェクト指向との比較とかでてくるの?ばかなの?
0065nobodyさん
2008/08/30(土) 03:25:30ID:???runkitは使ったことないですが、これは使ってます。
http://d.hatena.ne.jp/rsky/20080124/1201186473
qiqもすごくいい。もう普通のPHPは書けなくなるw
http://d.hatena.ne.jp/rsky/20080301/1204326365
0066nobodyさん
2008/08/30(土) 04:23:53ID:???あるプログラム、ある言語をを見て、それが構造化プログラミングなものなのか、オブジェクト指向プログラミングなのか、区別されるんだから。
その区別が出来ないというのは、人類皆兄弟とかいうたぐいの屁理屈だ。
0067nobodyさん
2008/08/30(土) 11:36:30ID:???自分を大きく見せようとする努力ほど無意味なものはない
0068nobodyさん
2008/08/30(土) 12:39:53ID:???プログラムを見て、オブジェクト指向プログラミング特有のクラス等を
(正しく)使っていればオブジェクト指向、使っていなければ構造化って判断をするな。
0069nobodyさん
2008/08/30(土) 18:14:35ID:OmTt4XZu昔の8ビットマイコン時代のBASICはGOTO文で処理を行き来する非構造化言語。
このプログラミングのパラダイムシフトは世界の共通認識だから。
0070nobodyさん
2008/08/30(土) 20:22:14ID:???「〜判断をするな。」が、I do なのか you shouldn't do なのかわからん
>>69
>このプログラミングのパラダイムシフトは世界の共通認識だから。
だから、何なんだ
どうせならもう少し結論を明確にしてもいいんじゃないかと思う
話がふわふわして仕方がないw
0071nobodyさん
2008/08/30(土) 20:38:57ID:/jeGwvoC社内でWebサービス構築のために
MVCモデルのPHPフレームワークを作ることになったのですが、
どのあたりまでの実装でフレームワークとして体をなすのか分かりません。
どなたか教えていただけませんでしょうか?
0072nobodyさん
2008/08/30(土) 20:57:57ID:???既存のものを使った方がいいのでは?
0073nobodyさん
2008/08/30(土) 21:07:18ID:/jeGwvoC私も車輪の発明になる気がしてどうも100%乗り気になれないのです。
ちなみに72さんは自作フレームワークの作成または、
既存のフレームワークで、ずっと使い続けてるものありますか?
0074nobodyさん
2008/08/30(土) 21:12:11ID:???オープンソース全面禁止とかいう規則の会社もあるらしいし、
意味が無いかどうかはわからないのでは?
(PHPやApache自体もオープンソースだから、それはないかもだけどw)
>>71
フレームワークを利用する目的って、多分複数案件で使い回す事が出来て、また
複数の開発者で、またある程度の期間にわたって共通認識・理解をもつことで、
開発コストおよび保守コストを抑えることだと思うんだ
後は、基本的な部品を気合い入れて作ることで、品質の最低ライン(主にセキュリティ面など)を
保証するという意味合いもあるけど
だから、どこまでというのは程度問題でしかないと、個人的には思う
やりすぎれば使い回しに自由がきかなくなったりするし、緩すぎれば保守コストの
軽減には役に立たなかったりするんじゃない?
極端に言えばディレクトリ構造を決めて使い回すだけでも、ある意味「フレームワーク」
だと思う
0075nobodyさん
2008/08/30(土) 21:29:08ID:/jeGwvoC>だから、どこまでというのは程度問題でしかないと、個人的には思う
なるほど、なかなか外部の方との技術意見交換をする機会がなくて参考になります。
ありがとうございます。
実は1ヶ月ほど前に公開になったあるBtoBのWebサービスで
MVCではないですが、自作でフレームワークを作ってみました。
少しは楽できるのですが、ホントに方向性的に合ってるのか、
若干迷いつつあるんです。
上からMVCモデルのフレームワークを準備してくれと頼まれた中で、
また0から準備することが本当に必要なのか迷ってまして。。。
この掲示板でやめた方がいいなと思ったとしても
やらないといけないことには変わりないんですけれど。
0076nobodyさん
2008/08/30(土) 21:46:18ID:???・各データの出し入れの基礎的な記述と、各データごとのロジック
・表示に関する基礎的な記述とロジック
を、実行スクリプトから切り離すのが最低限?
例えば、昔よく見た
<?php
// DB接続処理ほげほげ
(省略)
$sql = 'SELECT * FROM customer;';
$ret = mysql_query($sql, $db);
$rows = array();
while($row = mysql_fetch_assoc($ret)){ $rows[] = $row; }
?>
<html>
(略)
<?php
foreach($rows as $row){
(略)
}
?>
(略)
</html>
なんてのを、どう分けるか、何のために分けるか、というお話だと思うんだ。
その具体的な分け方・方向については・・・うーん俺は人に教えるほど
きちんと勉強していません。頑張れ!(オイ)
0077nobodyさん
2008/08/30(土) 22:03:54ID:/jeGwvoCありがとうございます。参考にさせていただきます。
■ このスレッドは過去ログ倉庫に格納されています