Webでオブジェクト指向プログラミング
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2005/12/02(金) 11:18:17ID:lnZM9OlM・OOP、MVC、デザパタなどのコンセプト的な話題
・OOにまつわる言語比較(言語批判はその言語で開発してる人に失礼にあたることが多いのでなるべく禁止でお願いします)
・保守、再利用、生産性、開発環境などの実践的な話題
・Webサーバ、DBなどの外部との親和性に関する問題
・学習、教育などの方法論
などなど。
前スレ
PHPでオブジェクト指向プログラミング
http://pc8.2ch.net/test/read.cgi/php/1113724557/
0060nobodyさん
2005/12/21(水) 21:11:28ID:???__autoload() を使おうとするとどうしても一つのフォルダに
クラス定義ファイルを全部ぶち込むことになるんだけど
0061nobodyさん
2005/12/21(水) 22:45:40ID:???うんこぷー
0062nobodyさん
2005/12/22(木) 05:39:54ID:???__autoloadの中を頑張ってつくればある意味Javaのパッケージより柔軟に色々できると思う。
今即興で考えてみたけどこんなのどう?
function __autoload($class, $newdir = "") {
static $dirs = array();
if ($newdir) $dirs[] = $newdir;
if ($class) foreach ($dirs as $dir) {
$file = "$dir/$class.class.php";
if (file_exists($file)) { require_once $file; return; }
}
}
function add_import_dir($dir) {
__autoload("", $dir);
}
なんか書いてて虚しくなってきたよ・・・
0063nobodyさん
2005/12/22(木) 15:26:55ID:ORKD8JMRセッターゲッター介してアクセスする?
あるいは自分の中のことだから
直アクセスする?
Dotch?
0064nobodyさん
2005/12/22(木) 16:04:35ID:???自分のクラス内なんだから直アクセスでしょ。
クラス内でもセッタゲッタしたいってことは、そのプロパティによっぽど整合性が必要なんだろうから、場合によっては必要な部分だけabstractなクラスとして抽出して問題のプロパティをprivateにする。
ってそれWebプログラミングとどういう関係があるの?
0065nobodyさん
2005/12/22(木) 16:56:29ID:???0066nobodyさん
2005/12/22(木) 17:02:57ID:???別段論争になるようなことじゃないと思うけど
0068nobodyさん
2005/12/22(木) 18:58:37ID:???0070nobodyさん
2005/12/22(木) 22:31:30ID:???スクリプト系はMVC的に糞ってなことにはもうならないな
0071nobodyさん
2005/12/22(木) 23:00:25ID:???0073nobodyさん
2005/12/23(金) 04:52:29ID:???0074nobodyさん
2005/12/23(金) 05:24:31ID:???Rubyの方がPHPより先に世の中に知れ渡ってたらRubyの圧勝だったかもしれないが、今更PHPと比較して生産性高いとも思えないし(飽くまでWeb方面では)。
0075nobodyさん
2005/12/23(金) 06:47:01ID:???0076nobodyさん
2005/12/23(金) 10:17:08ID:???0077nobodyさん
2005/12/23(金) 12:51:21ID:???unixハッカーな人たちにはperlやrubyが今後も支持されていくでしょう。phpは違う層の人たち向け。
0078nobodyさん
2005/12/23(金) 13:53:17ID:???unixハッカーってなんだwww
そりゃC使いry
0079nobodyさん
2005/12/23(金) 14:07:50ID:???0080nobodyさん
2005/12/23(金) 14:15:32ID:???MVC以外で。
0081nobodyさん
2005/12/23(金) 18:01:01ID:???phpの生産性って、素人を安い人件費で大量に使えるってだけだからねえ。
RoRは馬鹿には理解出来ないから、流行る事は無いだろう。流行るためには馬鹿でも理解出来る事が必要だし。
0082nobodyさん
2005/12/23(金) 18:18:43ID:???Lisp信者にもその考えの奴多いんだよなぁ。
0083nobodyさん
2005/12/24(土) 02:04:43ID:???0084nobodyさん
2005/12/24(土) 13:15:52ID:???0085nobodyさん
2005/12/24(土) 20:22:24ID:???0086nobodyさん
2005/12/24(土) 21:25:57ID:???0087nobodyさん
2005/12/25(日) 02:32:29ID:???って言ってほしいんだろきっと。
LispはまだしもRoRを難しいとか言う奴初めて見た。
PHPしかできない奴のレベルが低いってのはまあ当たり前の話だが。
0088nobodyさん
2005/12/27(火) 16:43:08ID:Zix1qzzJすみません、エロくても大丈夫になりましたのでどなたか教えてください。。。
分かった事
MT/Bootstrap.pmが関係?
0089nobodyさん
2005/12/27(火) 17:59:00ID:Zix1qzzJ0090nobodyさん
2005/12/27(火) 22:04:42ID:???0091nobodyさん
2005/12/28(水) 02:23:24ID:FTSvjaEDまあアレだ、Ruby厨には聞いていないから帰れということらしい。
>>57-58
Bootstrap.pmでimport関数に%param{App}を渡していると思うのだがその辺調べてみてくれ。
0092nobodyさん
2005/12/28(水) 09:12:28ID:???配布スクリプトの読めない部分を解説しちゃる
ttp://pc8.2ch.net/test/read.cgi/php/1094842959/l50
0093nobodyさん
2006/01/01(日) 02:30:26ID:???なんというか、馬鹿丸出しな発言だな。
そもそもRoRが使えれば、Ruby使えるわけだから、
PHPしか使えないなんてことは成り立たないわけで。
逆にRoRしか使えないやつはPHP使えないしな。
0094nobodyさん
2006/01/01(日) 13:35:44ID:???0097nobodyさん
2006/01/01(日) 16:18:04ID:???0098nobodyさん
2006/01/05(木) 18:20:00ID:???0099nobodyさん
2006/01/05(木) 18:36:44ID:???とりあえず、仕事で使われてるのをみたことがないな
あと、Ruby関連は書籍がちゃんとしたのが少なくない?
ってかすれ違いなんで、こういうのはマ板で
0100100
2006/01/07(土) 17:47:26ID:???0101nobodyさん
2006/01/07(土) 18:20:48ID:???0102nobodyさん
2006/01/08(日) 16:02:42ID:???正:使わない
0103nobodyさん
2006/01/19(木) 01:21:15ID:Mz+RYmqL0105nobodyさん
2006/01/27(金) 12:31:26ID:61WrCUJbでもスパゲティの原因になったりしない?
いったいいつcatchされるんだろう・・・?みたいな。
もしくは、ここのcatchは何のためにあるんだろう・・・?みたいな。
Javaの場合throws書かないといけないけど。
そのまま便利さを享受すべきか、全てのメソッドにthrows相当のものをコメントとして加えておくべきか、ご意見いただけると幸いですw
0106nobodyさん
2006/01/28(土) 18:58:27ID:???@throws で記述しておく。
処理を続行できないような致命的な例外の類は一切キャッチしない or
トップレベルですべての Exception を catch するようにしてる。
0107nobodyさん
2006/01/29(日) 22:11:15ID:???0108nobodyさん
2006/01/30(月) 23:29:09ID:l8Eu1UQ7一応MVCモデルとオブジェクト指向プログラミングに基づいて作成しています。
もしよろしかったらご覧いただければ幸いです。
http://pharon.lolipop.jp/
0109nobodyさん
2006/01/31(火) 01:43:20ID:???Webサイトが思い切りテーブルレイアウトで萎えた。
普通に見出しと本文でいいじゃん。
なんか怪しげなローマ字とか使ってるし。
詳しくは読んでないけど、まずはその素人臭さを払拭しないと
使ってみる気にもなれんね。
0110nobodyさん
2006/01/31(火) 10:49:03ID:???0111nobodyさん
2006/01/31(火) 11:17:28ID:???まぁ、本人とも限らないが…。
0112nobodyさん
2006/01/31(火) 13:18:08ID:???0113nobodyさん
2006/01/31(火) 14:18:11ID:???0114nobodyさん
2006/02/02(木) 12:00:05ID:???0115nobodyさん
2006/02/03(金) 20:05:36ID:3T+q60Jd0116nobodyさん
2006/03/24(金) 08:23:48ID:???0117nobodyさん
2006/03/27(月) 23:45:30ID:NOFET43qで、 Web サイトを PHP で組もうと思ってるんだけどオブジェクト指向でやったほうがベター?
まだ覚えてないけどな 。
0120nobodyさん
2006/03/28(火) 09:41:36ID:64m8EIcOクラスとか使いはじめると、この足取りの軽さが激減するし、だったらJAVA使ったほうが賢いのでは。
大体WEBプログラミングでオブジェクト指向を得意げに使うこと自体が、スパゲティ大好きって言ってるようなもんだな。
0121nobodyさん
2006/03/28(火) 10:23:08ID:???「だったら Java」ってやつは最初から PHP なんか使わないか、
PHP も Java も分かってないかのどっちかだな
0122nobodyさん
2006/03/28(火) 10:51:45ID:???特に PHP4 のクラスの実装はクソなので OOP するのも面倒だなと思っていた。
しかし、デスマってるプロジェクトに投入されて、
そのプロジェクトが index0001.php4 とか index0134.php4などと
200個くらいのファイルを羅列しているのを見たとき、
たとえ、PHP4 であろうとも OOP を導入すべきだという主張にかわったよ。
OO でなくとも、Logic と View は分けるべきだ。
できるなら、MVC でお願いします。
0123nobodyさん
2006/03/28(火) 12:02:55ID:???Javaでは当たり前なことを
なぜこんなスレタイをたてるのか。
どうせならStrutsやJSF< Tapestry, Seasar2など
フレームワーク関係のスレタイにしておけばよかったのに。
0124nobodyさん
2006/03/28(火) 12:04:50ID:???一応JavaScriptでprivateにできるテクニックはあるあしい。
ローカル変数を使って。Ajaxに使われている
Prototypeというフレームワークもどきに使われているようだ。
かなり小汚いテクニックで読みにくいソースコードだが。
0126nobodyさん
2006/03/28(火) 12:07:24ID:???しかし、PHPは未だに名前空間が無いから
PHP5からJavaライクなオブジェクト実装が
サポートされても使い勝手は相変わらず悪い。
ini_get()してからini_set()するのはもうウンザリ。
__autoloadだか忘れたがこれをうまくつかって
Javaのimportそっくりなことできそうにみえるが、
それも使い勝手が悪い。
0128nobodyさん
2006/03/28(火) 12:40:59ID:???なんかムリにprivateにしなくていいじゃんと思うようになるよ
Perl も PHP 4 も運用でカバーしてるんだし
0129nobodyさん
2006/03/28(火) 12:57:27ID:???インスタンス変数はそもそも隠蔽する対象じゃないんだな。
2.0でclassとか拡張されてるから、また変わってくると思うけど。
0131nobodyさん
2006/03/28(火) 13:59:03ID:???軽快感が重要というのは同意だけど、別にそれだけがPHPのメリットじゃないわけで。
クラスだって軽く使おうと思えば使えるし、お手軽なOOPという観点ならPHP>JAVAだと思う。
その分できないこともあるけどな。
0132nobodyさん
2006/03/28(火) 14:02:21ID:???寝ぼけてたか?
0133nobodyさん
2006/03/28(火) 20:32:38ID:???0135nobodyさん
2006/03/28(火) 21:42:58ID:???そんなことしたら、バカみたいなコードしかかけなくなる。
0137nobodyさん
2006/03/28(火) 22:06:27ID:???ぐーぐるさん的には
PHP 2,320,000,000 件
Ruby 107,000,000 件
この圧倒的な差はいったい!?
0138nobodyさん
2006/03/28(火) 22:28:04ID:???0139nobodyさん
2006/03/28(火) 23:02:46ID:???名前空間がないってことか?
0140nobodyさん
2006/03/29(水) 02:32:56ID:???0141nobodyさん
2006/03/29(水) 22:51:03ID:???自分はアクセスカウンターとか掲示板など、いろんな汎用スクリプトを作ってるんだけど
今後新しいスクリプトが簡単に作れるように、クラスモジュールを構築しながら作成してるから
開発効率がどんどんよくなってきている。
0142nobodyさん
2006/03/29(水) 23:13:01ID:???0143nobodyさん
2006/03/29(水) 23:15:45ID:???0147nobodyさん
2006/03/30(木) 15:06:58ID:???クラスとは
一緒に使われる情報(データ・関数)をその中にまとめ、別々に使われる情報を除外するためのもの
です。
0148nobodyさん
2006/03/30(木) 16:16:42ID:???0149nobodyさん
2006/03/30(木) 16:29:49ID:???ためにあると思っておいて間違いではない
コードにまとまりがないうちは不便だが、まとまりが
ない段階でダメだと思えばいい
0150nobodyさん
2006/03/30(木) 17:18:32ID:???0151nobodyさん
2006/03/30(木) 21:38:19ID:???0152nobodyさん
2006/03/31(金) 00:12:08ID:???代わりにクラスを使うしかない。
0154nobodyさん
2006/03/31(金) 05:07:58ID:mYeRlPC0PHPのクラスがパッケージの代替でしかないなら、インスタンス化は無意味ってこと?
$hoge = new Hoge; $hoge->kansuu();
より
Hoge::kansuu();
の方が早いもんね
0155nobodyさん
2006/03/31(金) 05:13:33ID:???0156nobodyさん
2006/03/31(金) 05:31:31ID:???グローバル変数使わないだけなら定数使うとかあるし
0157nobodyさん
2006/03/31(金) 05:36:54ID:???フレームワークなんて継承前提だし
0158nobodyさん
2006/03/31(金) 08:04:27ID:???0159nobodyさん
2006/03/31(金) 08:09:59ID:???普通の関数でいいと思うならそれでいけばいいじゃんてことでしょ
つかそういうスレつけてる人はこのスレ覗く必要全然ない
■ このスレッドは過去ログ倉庫に格納されています