PHPでOOP (894レス)
1-

422
(1): 2008/02/14(木)18:51 ID:??? AAS
>>421
例えば Personテーブルに depart_codeがあるとして、$person->getDepartName() としたときに、
暗黙のうちにdepart_codeをキーとしてDepartテーブルから検索する SQLが実行されたら嫌だし、
setPersonNameされたときに、そのタイミングでupdateが実行されていないか疑わなきゃいけないのも嫌。
423: 2008/02/14(木)19:13 ID:??? AAS
>>422
メソッドの実装がどうなってようが呼んだ方の知ったこっちゃないだろ。
そのどっちの例もそのクラスの仕様なんだから。
それを外側から知ろうとか制御しようだなんておかしな話だ。
424
(1): 2008/02/14(木)19:41 ID:??? AAS
そもそもstaticも存在しないPHP4で機能をまとめたようなクラス(CDB_PostgreSQLクラスみたいなの)
を作ろうとしてるのが気持ち悪い。

しかもOOPなんてデータベースの各要素に関数をくっつけたようなもんなんだから既存のデータを単体でしか扱わない
データベースと相性が悪いのは分かりきったことだろう。
425: 2008/02/14(木)19:54 ID:??? AAS
OOPはデータベースの各要素に関数をくっつけたようなもの?
既存のデータベースはデータを単体でしか扱わない?
だからOOPとデータベースと相性が悪い?

( ゚Д゚) ワカラナイ
426: 412 2008/02/14(木)20:04 ID:??? AAS
>>424
staticはあくまでstaticだよと明示しているだけで
本質的には必要なものとは思えないけど。便利だけどね。

それと、CDB_PostgreSQLは「機能をまとめたクラス」ではないよ。
たとえば一つのアプリでサーバー負荷分散などで、
複数の接続を使用するときとか、複数のインスタンスが出来る。
427: 2008/02/15(金)07:09 ID:??? AAS
PHPでもメンバポインタとかつかえれば
インスタンスに縛られない柔軟なOOPができるのにな
428: 2008/02/15(金)17:51 ID:??? AAS
少しだけど、クラス分割のコツが掲載されてたのではっておきます。
VBプログラマ向けの情報だと、OOPの考え方の情報が結構ありそうです。

業務Webアプリの作り方の基礎(前編)
業務アプリ開発で失敗しないコツ
外部リンク[html]:www.atmarkit.co.jp
> 1つの機能(=たとえWebアプリで複数のページにまたがっていたとしても一連の作業を
> 完了させるまでの一連の操作)に対して、1つのビジネス・ロジック層のクラスを
> 作ってみることをお勧めする。

> 一般的な業務アプリでは、クラスを細かくしすぎてしまうとどこで何を行っているのかが
> 分かりづらくなり、結果的にメンテナンスしづらいアプリになることがある。
省3
429: 2008/02/15(金)20:19 ID:??? AAS
たまに昔のサイト触ったりすると非OOPなんてもうやってらんねーと思う
DRYになってないから直すの大変
430: 2008/02/15(金)22:23 ID:??? AAS
OOPってのは設計的な考え方ってのが含まれるんだけど、
そういう考え方は別として、単にコーディング技法として便利だよ。
431
(1): 2008/02/15(金)22:36 ID:??? AAS
>>272
プリミティブだけど実装してみました・・
もはやQuickFormとSmartyがないと動きませんが・・
外部リンク:briefcase.yahoo.co.jp
432: に ◆lKs5QMUHoA 2008/02/15(金)23:49 ID:??? AAS
風邪をひいてしまい、最近頭が回らないです。レスも遅れてしまってます。。。

>>392
確かにそうですね。継承をして作ったクラスはすべてPostgreSQLに依存してしまいます
ので、is-a関係が正しいですね。

>>407
接続に関して抽象的にクラスを定義するところは勉強になりました。
私はまだまだ継承を使いこなせてないですね。

>>410
> 接続オブジェクト(CDB_PostgreSQL)はCSearch_Personalクラス外部から与える。
この発想は思いつきませんでした。
省1
433: に ◆lKs5QMUHoA 2008/02/15(金)23:50 ID:??? AAS
>>431
サンプルありがとうございます。
あとでソースを読んでみます。
434: 383 2008/02/16(土)00:15 ID:??? AAS
質問しておきながら、反応かなり遅れてしまってごめんなさい。

具体的なコードやアドバイスを提示してくださった方々、ありがとう。
ちょっとまだ、自分には敷居が高くて色々大変そうですが、
考えるよりも産むが易し、と言うので、手を動かして色々試行錯誤してみます。

ありがとうございました。
435: 2008/02/16(土)11:47 ID:??? AAS
フレームワークの利点などの検証の参考となるかと思ったので書いておきます。

ASP.NETでは、「検証コントロール」というのが便利そうだ。
「プログラムを作成するたびにこういうのをいちいち書いたりしなくていい」という
部分の利便性は良く分かる。

ASP.NETで学ぶVisual Studio .NETの魅力
第2回 Visual Studio.NETでプログラム・レス開発を学ぶ(前編)
外部リンク[html]:www.atmarkit.co.jp

だが、こういうのは逆にそのフレームワークに縛られてしまうのが欠点だな。
準備されてるコントロールを自分の意図するようにやりたいが、その方法が誰も分からない
もしくは、出来ない場合は、それで終わりみたいな。
省6
436: 2008/02/16(土)12:59 ID:??? AAS
Accessではグリッドが無いけれど、サブフォームで代用する方法はある。
しかし、そのカスタマイズ度は低い。(確か、クリックしたセルの場所を
取るとか、一つのセルだけ色を変更するとかがかなり苦手だったような。)
サブフォームで代用できない場合は、フォーム上にグリッドを貼り付けるような
モジュールは無いので、DBへのアクセス手段が手軽なものを捨ててでも
VBで0から作り直すのが一般的な選択方法となる。

Webアプリのフレームワークでもこのような状況になる事ってあるのかなぁ?
437: 383 2008/02/16(土)17:18 ID:??? AAS
PDOを継承する形でこんなクラスにしてみました。
突っ込みどころ満載だと思うんだけど、とりあえず、このコーディング方法はやめておいたほうがいい、
っていうところを教えていただけると嬉しいです。

class DBConnect(){
// メンバ変数にDB接続情報を記述

function __construct(){} // PDOをインスタンス化
function getConnID(){} // PDOオブジェクト格納変数を返す
}

class TableCtrl extends PDO{} //PDOを継承、汎用関数を定義してもOK.

class CtrlA extends TableCtrl{ // テーブルAを操作する
省3
438
(3): 438 2008/02/16(土)17:21 ID:??? AAS
スクリプト先頭で、DBConnectをnewして、PDO格納オブジェクトを受け取ってから、
それを引数にCtrlAをnewする感じ……。
一応動きはするけど……全然ダメだな……。
439
(1): 2008/02/16(土)17:46 ID:??? AAS
>>438
なんでもいいけど、既存のフレームワークがどうなっているか見てみろ。

見たら自分で作るきなくなるけどなw
440: 438 2008/02/17(日)16:53 ID:??? AAS
>>439
返信ありがとう。

まったくわかってないみたいなので、クラスの設計方法から学び直します。

実際の処理をする具象クラスを作って、また別に、それを統括するクラスを作っていく。
複数のクラスを設定によって使い分けしなきゃいけない場合は、抽象クラスなりインターフェイスなりを継承(後者の場合は実装)させて、
メソッド名を統一させた上で、ポリモーフィズム――クラスによって同名メソッドの振る舞いを変えさせるって解釈でいいよね?――で実現させる。
基本こんな感じかな?

プリペアドステートメントに惹かれて、PDOを継承する形で作って見たんだけど、
DB接続関連の場合、接続IDを返してくるmysql_connect(); なんかのほうが、使いやすい気がする。

フレームワーク自作なんて、自分にとってはとんでもない話しですよ……。
441
(1): 2008/02/17(日)19:14 ID:??? AAS
お前の下らない御託はいいから見ろっつの
442: 2008/02/17(日)20:01 ID:??? AAS
>>441
ごめん、無視してたわけじゃないんだ。
とりあえず、軽い「ちいたん」とやらを見てきます。

スレ汚し、ごめんなさい。自重します。
443: 2008/02/17(日)20:03 ID:??? AAS
なぜちいたんを選ぶか・・・
444: 2008/02/17(日)20:08 ID:??? AAS
( ゚д゚)ポカーン
445: 2008/02/17(日)20:22 ID:??? AAS
救いようが無いな。
446: 2008/02/17(日)21:40 ID:??? AAS
スレのレベルを下げちゃってごめんなさい……。

軽い「ちいたん」が入門にはちょうどいいかな、と思っての選択です。
いきなり、CakePHPなど大きいのを見ても、余計に混乱しそうだったので。

スレのレベルを余計に下げるだけなのでROMします。
度重なるスレ汚し、失礼しました。
447
(3): 1 ◆SWtzLesEmM [age] 2008/02/17(日)23:11 ID:??? AAS
>>324
>>335
掲示板スクリプトの改善、どうもありがとうございます。(*^^*)v

↓動作サンプルを設置しました。

外部リンク:ssurl.net
外部リンク:ssurl.net
448: [age] 2008/02/22(金)09:37 ID:??? AAS
フレームワークをみてみろとアドバイスをしてくださってる方は、
もう少し具体的なアドバイスを出して欲しい。
具体的に、どんなフレームワークの構造を見て、どんなことを
学んだのかなどをあわせて出してくれたら、勉強もしやすいと
思うのですが。
449
(1): 2008/02/22(金)09:52 ID:??? AAS
お前は人に逐一指示されないと何にもできないんだな
450
(1): 2008/02/22(金)09:59 ID:??? AAS
フレームワークはどこに行けば手に入りますか?
451
(2): 2008/02/22(金)11:02 ID:??? AAS
>>449
漠然としすぎていて良く分からないのである程度は具体例が
欲しいという意味なのですが。

>>450
こちらへどうぞ
【PHP】フレームワークについて語るスレ10【総合】
2chスレ:php
452: 2008/02/22(金)11:21 ID:??? AAS
>>451
そのくらい自分で探せよという意味なのですが
453: 2008/02/22(金)11:36 ID:??? AAS
>>451
自分でDBの抽象化を考えてみて、クラスの定義だけでも書いてみろ。
その後にZFのZend_DBを見て、自分のとどう違うか、なぜそうなっているのかを考えろ。

それから、偉そうな態度で教えてもらおうと思うな。
454: 2008/02/22(金)11:50 ID:??? AAS
別に偉そうじゃないだろ。
むしろお前のほうが偉そうだ。
何被害妄想してるんだw
455
(1): 2008/02/22(金)12:50 ID:??? AAS
本気でOOP勉強したい人はまずPHP止めないと・・
PHPの世界にOOPの参考になるものがどれほどある?
javaやらずOOP出来ましたってありえないでしょ。
456: 2008/02/22(金)12:58 ID:??? AAS
>>455
OOP勉強するなら、SmallTalkだな。
Javaとかアフォ?w
457
(2): 2008/02/22(金)13:04 ID:??? AAS
本気でOOP勉強する為にPHPをやめる必要は無い。
PHP使いながら、OOP勉強すればいいだけ。

本気でOOP勉強をするなら、非実用的な言語も含めていろいろな
言語を使うことになる。そしてそれらが実用的かというと別の問題。

いくらsmalltalkでOOPをマスターしました!とかいっても
それでウェブサービスを作ることはまずありえないんだから

手段と目的を逆にしないようにね。
458: [age] 2008/02/22(金)13:04 ID:??? AAS
その論争は、きりが無いから、マ板とかのOOPのスレでやって欲しい。
「スクリプトの世界ならRubyだろ。」とか、結論が見えてこないし、
このスレの趣旨とは違うと思う。
459: [age] 2008/02/22(金)13:06 ID:??? AAS
>>457は非常にすばらしいことを言ったと思う。
460: 2008/02/22(金)13:13 ID:??? AAS
確かにPHPでOOPの解説をしている情報は非常に少ないので、
勉強の際はjavaやC#などの情報を読みながらやることになると思う。
しかし、PHPを辞めるまでする必要性は無いと思う。
言いたいのは「OOPの勉強するのなら、PHPに限定してはいけないよ。」
じゃないの?
461: 2008/02/22(金)13:16 ID:??? AAS
本気で勉強する為にPHPをやめた。
そしてOOPをマスターした。

しかし、Javaでは共有サーバーで動くソフトを作れなかった。
多くのオープンソースアプリはPHP製だった。

OOPをマスターしたが、何も出来なくなった。 完。
462: 2008/02/22(金)13:27 ID:??? AAS
前から思ってたんだが、頭の悪い人間が粘着してるな。
自分がどんな風に思われてるかも分かってないんだろうなw
463
(1): 2008/02/22(金)13:58 ID:??? AAS
>>457
> いくらsmalltalkでOOPをマスターしました!とかいっても
> それでウェブサービスを作ることはまずありえないんだから

今やウエブサービスに欠かせないMVCはそもそもsmalltalkのOOP由来なんだが…。
継続ベースだって覚えておいて損はない。

外部リンク:www.ibm.com
外部リンク[html]:www.ibm.com
464: 2008/02/22(金)14:19 ID:??? AAS
PHPでOOPする為に別の言語でOOPの勉強をする。
自分の為に必要だからやるだけ。
465: 2008/02/22(金)14:42 ID:??? AAS
>>463
うん。だからさ勉強・研究の為の言語と
実用・開発の為の言語は別なの。
466: 2008/02/22(金)17:56 ID:??? AAS
このソースの解析をがんばればいろいろ見えてくるだろうけど、
一人じゃ到底無理だろうな。別スレでも立てて、解析して
ドキュメント作ろう!見たいなことやってみる?

Visual Studio 2008で見る.NET Frameworkのソースコード
外部リンク[html]:www.atmarkit.co.jp
> 公開されたソースコードには(もちろん英語だが)多くのコメントが入っており、
> ローカル変数名も元のままの“生”のソースコードである。
> そしてそれがVisual Studio 2008でシームレスにトレースできるようになる
467: 2008/02/23(土)08:39 ID:??? AAS
>>447
サンプル見たけど
Viewで変数が入らないとこで”を使ってる意味がわからない
”と’の使い方間違ってると思う
面倒な使いわけするならsprintfという手もある

パラメータ変数が渡ってくる
switch文のcaseに頭文字を大文字にしてる意味がわからない
468: 2008/02/23(土)08:44 ID:??? AAS
function html_head(){
echo "<html>";
echo "<head><title>BBS</title></head>";
echo "<body>";
}

上は、こうでいいやん!

function html_head(){
echo '<html>';
echo '<head><title>BBS</title></head>';
echo '<body>';
省2
469
(5): 2008/02/23(土)09:12 ID:??? AAS
>>447

class View_Baseは
helper的な役割だからいいとしても

View_List
View_WriteFinish

コントローラで判断させるべき機能が
Viewで書かれてるし
テンプレート化されてないのもあって
ぐちゃぐちゃですね。
ここがOOP構造を理解しにくい作りになってる
省2
470: 2008/02/23(土)09:19 ID:??? AAS
>>447
本来コントローラとModelがやりとりする部分が
コントローラが無いために
Viewで処理されてる

MVモデルですね!
OOP構造化理解のためには
面倒でもMVCモデルじゃないと
初心者を間違った方向に導きますよ!!
471
(1): 2008/02/23(土)12:22 ID:??? AAS
>>469
具体的にどうすればいいの?
条件分岐してないから切り分けは良さげに見えたんだが。
viewは機能ごとの静的HTML吐くのとは違うの?
472
(1): 2008/02/23(土)13:43 ID:i4AYcehM(1/3) AAS
外部リンク[aspx]:www.microsoft.com

これの

アクティブモデルは、コントローラとは関係なくモデルで状態が変更される場合に使用されます。
これは別のソースでデータが変更され、この変更をビューに反映する必要がある場合に起こります。
株価相場表示を例に考えてみます。株価データが変更された場合、外部ソースからデータを受け取り、チッカーバンドや警告ウィンドウなどのビューを更新する必要があります。
モデルの内部状態の変更が検知できるのはモデルだけなので、モデルからビューに表示を更新するよう通知する必要があります。

って、hoge.php?param1=aaa¶m2=iiiみたいなリクエストを解析してコントローラがそれに応じたビューを選択して云々
ではなくて、例えばブログだったら記事テーブルにまだ一つもデータが無いときは「まだ記事が登録されていません」のビューをモデルが選ぶ、ってことかい?

だとしたらどうやって実装したらいいんだろ・・・
省2
473: 2008/02/23(土)13:56 ID:i4AYcehM(2/3) AAS
コントローラがリクエスト解析

そのリクエストにおいて必要なモデルのインスタンス生成

モデルのメソッド呼び出す

選択したビューのupdate呼びだして出力に必要な変数定義

モデルがビューの出力するメソッドを呼ぶ

ビューはモデルからの変更を受け付けるupdateメソッドと出力するためのputHtmlメソッド持つインターフェイスを実装する
省1
474
(2): 2008/02/23(土)14:42 ID:??? AAS
なんですでにあるフレームワークを参考にしない?
475: 474 2008/02/23(土)14:43 ID:??? AAS
474は無視してくれ
476
(1): 474 2008/02/23(土)15:11 ID:??? AAS
>>472
それはようするに、株価データのようにユーザーが
ページを更新しなくてもデータが更新されるときの話。

コントローラがモデルからデータ引っ張ってきて
そのデータをビューに渡して表示という処理は変わらない。
↑この処理を、普通は「URLを開いた」というタイミングで行っているわけ。

しかし、そのタイミングだと株価データ表示のようなリアルタイムでの表示は難しい
人間がF5を押す必要がある。この場合も更新されているとは限らず無駄に負荷が高くなる。

それを(ウェブアプリ以外では)モデルからデータが変更されたよーと
コントローラ・ビューに通知し、その通知が来たタイミングでコントローラ・ビューが
省12
477: 2008/02/23(土)17:10 ID:i4AYcehM(3/3) AAS
>>476
レス?

オブザーバパターンはWebアプリに不向きなのかー。

じゃあ、
//コントローラの実行メソッド
public function doExecute(){
if($this->model->getArticleNum() === 0){
$message = '記事がまだ一つもありません';
require_once('./template/Error.php');
}else{
省5
478
(1): 2008/02/23(土)17:50 ID:??? AAS
そういう場合Comet使うんじゃね?
Cometすげえ!って大騒ぎになってたころ資料見ても俺には何がなんだか理解できなかったけど
479
(4): 2008/02/23(土)20:15 ID:??? AAS
1を含めてコントローラの役割が全然わかってないんだよ!
MVモデルになってるんだよ!
CakePHP、symfonyのソースをよく解読してみろよ!
1のサンプルにはVIEWにコントローラで処理するコードかいてあるんだぜ!
480
(1): 2008/02/23(土)20:21 ID:??? AAS
PHPでOOPを追求すると
結局はMVCモデルのフレームワークにテーマが行き着くんだよね
だったらPHPフレームワークのスレと同じじゃんて感じで
ここでOOPを議論するときは
MVCモデル以外を議論の対象にしたいよ
481: 2008/02/23(土)20:27 ID:??? AAS
>>478
ワロタ。目からうろこw
httpってのはクライアント(ブラウザ側)から聞くことしかできないんだ。
どうやってもサーバーから話しかけることはできない。

だから、たとえば一分おきに、
「データ変わったかい?」「変わってねーよ」
「データ変わったかい?」「変わってねーよ」
「データ変わったかい?」「変わってねーよ」
「データ変わったかい?」「変わってねーよ」
「データ変わったかい?」「変わったよ!」
省8
482: 2008/02/23(土)20:30 ID:??? AAS
例え巧すぎワロタ
483
(1): 2008/02/23(土)20:32 ID:??? AAS
>>479
だから具体的にどこがだよ?
484
(1): 2008/02/23(土)20:35 ID:??? AAS
>>480
> PHPでOOPを追求すると
> 結局はMVCモデルのフレームワークにテーマが行き着くんだよね

それはPHPに限らず。

そもそもOOPが一番よく使われるのは、フレームワーク部分なんだよ。
OOPはフレームワークを作るときに使うものといっても過言じゃない。

通常のビジネスロジック部分は基本的に単純な命令の集まりになるので
OOPを使っているという感じは無くなる。
485
(1): 2008/02/23(土)20:43 ID:??? AAS
>>484
だから結局フレームワークの議論になるんなら
このスレの意味が無いんだよ
486
(1): 2008/02/23(土)20:45 ID:??? AAS
>>483
>>469
487
(2): 2008/02/23(土)20:49 ID:??? AAS
>>485
フレームワークスレは、フレームワークの比較などを話すスレ
OOPはフレームワークを題材に、OOPの話をするスレ

おk?
488
(1): 2008/02/23(土)20:53 ID:??? AAS
>>486
class View_List extends View_Base{
//
function Write_HTML_head(){
$this->html_head();
$this->html_title("--- PHP で OOP の BBS ---");
echo "<hr>";
}

// 書き込みフォームを表示させる。
function Write_HTML_form(){
省12
489
(1): 2008/02/23(土)20:54 ID:??? AAS
//
function Write_HTML_foot(){
$this->html_foot();
}
//
function Write_HTML_data($line){
echo "<b>タイトル:</b>";
echo $line->GetName();
echo "<br>";
echo "<b>メッセージ:</b>";
省5
490
(2): 2008/02/23(土)20:57 ID:??? AAS
>>487
OOPはフレームワークを題材に、OOPの話をするスレならプログラム板だろ?
初心者だらけの、ここよりも良レスが来ると思うんだが
PHPにこだわる理由がわからない
WEBでのフレームワークならどれも仕組みは同じだろうに
じゃあperlでOOP、rubyでOOPていうスレが無いのは何でなんだ?
491: 2008/02/23(土)21:21 ID:??? AAS
function GetNextData(){
if( $line = fgets($this->m_file_hd, 1024) ){
$line2 = split($this->m_pause_chr, $line);
$ans = new Line();
$ans->SetData($line2[0], $line2[1]);
}else{
$ans = "";
}
return $ans;
}
省10
492: 2008/02/23(土)21:36 ID:??? AAS
// データを1行読み出す。
function GetNextData(){
if( $line = fgets($this->m_file_hd, 1024) ){
$line2 = split($this->m_pause_chr, $line);
$ans = new Line();
$ans->SetData($line2[0], $line2[1]);
}else{
$ans = "";
}
return $ans;
省3
493: 2008/02/23(土)21:39 ID:??? AAS
// データを最後に追記する。
function AddLast($title, $msg){
// ファイルを開く
$hd = fopen($this->m_file_name , "a");
// データを書き込む
$line = $title . $this->m_pause_chr . $msg . "\n";
fwrite($hd, $line);
// ファイルを閉じる
fclose($hd);
}
省1
494: 2008/02/23(土)21:47 ID:??? AAS
$line2 = split($this->m_pause_chr, $line);

はこれの方がわかりやすいだろ?

list($name,$msg) = split($this->m_pause_chr, $line);
495: 2008/02/23(土)21:52 ID:??? AAS
function GetNextData(){
if( $line = fgets($this->m_file_hd, 1024) ){
$line2 = split($this->m_pause_chr, $line);
$ans = new Line();
$ans->SetData($line2[0], $line2[1]);
}else{
$ans = "";
}
return $ans;
}
省10
496: 2008/02/23(土)21:55 ID:??? AAS
変数にオブジェクトが入ってくるなら
初期化はこうだった

function GetNextData(){

$ans = null;
if( $line = fgets($this->m_file_hd, 1024) ){
 list($name,$msg) = split($this->m_pause_chr, $line);
 $ans = new Line();
 $ans->SetData($name, $msg);
}

return $ans;
省1
497: 2008/02/23(土)22:04 ID:??? AAS
else{
$ans = "";
}

これ全部

$ans = null;
に初期化に変えて
elseとっぱらった方がいいよ

返り値はオブジェクトが入ってるか入ってないかという処理なのに
空文字を返すのよくないよ!
498: 2008/02/23(土)22:44 ID:??? AAS
まぁ空文字もnullも演算子によっては同様にfalse扱いできるという点がPHPの特徴なわけで
499: 2008/02/24(日)05:50 ID:??? AAS
>>490
> じゃあperlでOOP、rubyでOOPていうスレが無いのは何でなんだ?
人気が無い言語だからw
500
(1): 2008/02/24(日)11:09 ID:??? AAS
プログラム初心者がPHPだけでOOPを習得するのはほぼ不可能に近いと思う。
OOP習得が目的ならあまりにも無謀だし、全くもって得策ではない。

フレームワークとか利用しても、ユーザが$_POSTとか直接呼べちゃうと
結局OOPの意味が無いんではないだろうか?むしろそれが出来てしまうPHPは
OOP理解には全く向いていない言語だとも思うのだ。

でも不完全ながら、PHPでOOPっぽくコーディングすること自体は楽しいと思う。
501: 2008/02/24(日)11:31 ID:??? AAS
>>500
> プログラム初心者がPHPだけでOOPを習得するのはほぼ不可能に近いと思う。
どんな言語でも当たり前。

> フレームワークとか利用しても、ユーザが$_POSTとか直接呼べちゃうと
> 結局OOPの意味が無いんではないだろうか?
まったく関係ない。
502
(1): 2008/02/24(日)14:04 ID:??? AAS
PHPでOOPするには
初心者じゃ無理だよ
オブジェクトの設計は上手に出来ても
コーディングレベルで初心者ならではのミスが目立つ
503
(1): 2008/02/24(日)14:08 ID:??? AAS
PHPでOOP勉強は適してないよ
JAVA,C#,rubyみたいに
OOPを前提として作られた言語じゃないからね
504: 2008/02/24(日)15:14 ID:??? AAS
「PHPでOOPは」みたいな話は何度も出てるのに、いつも具体的な話にならないのは何で?
505: 2008/02/24(日)15:31 ID:??? AAS
お前に知識がないから
506: 2008/02/24(日)15:37 ID:??? AAS
( ´・∀・`)へー
507
(1): 2008/02/24(日)15:38 ID:??? AAS
関係なくはないよ。グローバル変数として、どこからでも呼べちゃうんだから、カプセル化できてないってことになる。
だいたい$_REQUESTや$_SESSIONがオブジェクトじゃなくって、変数な時点で、PHPのウェブアプリでオブジェクトなんて使うなっていう、PHP開発者からのメッセージと理解すべき。
508: 2008/02/24(日)15:44 ID:??? AAS
グローバル変数が使えたら、カプセル化できない言語ってことになるのか。
そりゃすごい。
509: 2008/02/24(日)16:03 ID:??? AAS
俺も、>>469に書いてる、コントローラで判断させるべき処理の具体的な
コードを教えて欲しい。
このコードの話が質問されても出ていないのはなぜ?フレームワークを
使わないと、理論を完全に実現できないとかそういう話だから?
510: 2008/02/24(日)16:19 ID:??? AAS
>>479=486も結局答えられてないしな。
だめだだめだと言うものの、何故だめなのか、どう書けばいいのかということには答えられない低レベル批判厨なのさ
511: 2008/02/24(日)19:08 ID:??? AAS
また見えなくすることをカプセル化と勘違いしてる高レベルプログラマさんのお出ましだ
512: 1 ◆SWtzLesEmM [age] 2008/02/24(日)19:49 ID:??? AAS
>>1 ◆SWtzLesEmM :2007/02/23(金) 13:35:52

このスレも1周年を迎えてましたね!
…時間が経つのは早いなー。><

1年前からあまり進歩してないのは気のせい?(・∀・)
513: 1 ◆SWtzLesEmM [age] 2008/02/24(日)19:50 ID:??? AAS
>>487
PHPでOOPを勉強するとき、フレームワークは良い見本になりますね!

>>490
>PHPにこだわる理由がわからない
ホームページ作成でPHPの勉強を始めました。
プログラミングの勉強をしていたら、手続き型以外にOOPという方法があることを知り、使えるようになりたいと思いました。

>>502
Zendが積極的に音頭を取って、初心者向けの情報提供をやってくれたらいいですね。><
外部リンク:www.zend.co.jp
Zendの代わりに、PHPプロというサイトがPHP初心者のニーズをカバーしてくれているでしょうか?(・∀・)
省9
514: 1 ◆SWtzLesEmM [age] 2008/02/24(日)20:01 ID:??? AAS
フレームワークに関して情報提供どうもありがとうございます。

>>479
MVモデル…(ノ∀`) アチャー
以前作った掲示板を、MVCフレームワークの形で作り直してみました。(^^)v

外部リンク:ssurl.net
515
(1): 2008/02/24(日)20:34 ID:??? AAS
結局1のやりたいことは
アマゾンのアフィリエイトの誘導らしいwww
516
(1): 1 ◆SWtzLesEmM [age] 2008/02/24(日)22:49 ID:??? AAS
>>515
PukiWikiPlusでamazonプラグインをデフォルトのまま使うと、プラグイン作者さん?のアフィリエイトコードが付くようですね。><
外部リンク:cafelounge.net
>amazonアカウントを設定します。
>define('AMAZON_AID','mikoscafeterr-22');

アフィリエイトはやってませんが、とりあえず本の情報をまとめるのに便利なのでamazonプラグインを使ってみます。^^
517
(1): 2008/02/25(月)07:27 ID:??? AAS
>>516
本の情報とかいらんよ
あと、valueclickのアフィリエイトも出てるし
あとTOPページいくとgoogle広告も出てる
結局こういうことかいな
最悪やなお前
518: 2008/02/25(月)11:09 ID:??? AAS
具体的な本の紹介をサイトに掲載することは俺は賛成だけどな。
でも、単に羅列してるだけよりも、読んでみてどう思ったのかという
レビューをだして、その人なりの評価を出して欲しいとは思った。
羅列しているだけだと、そのサイト特有の色を感じない。
519
(1): 2008/02/25(月)11:36 ID:??? AAS
どう考えても本の紹介を書くのおかしいだろう?
ここだけじゃないけど
技術的なサイトに広告とかマジうざい!!!!
520: 2008/02/25(月)11:41 ID:??? AAS
「OOPやるのならば、PHPを辞めた方がいい」といっている人は、
それをいいたいのならば、もっと具体的に言って欲しい。
「RubyはもともとOOPとして設計されている」とか抽象論で終わってるから
何も話が進まず、同じことの繰り返しが続いているんだと思う。
「$_POSTなど、グローバル変数があるからオブジェクト指向的な考えには
ならない」とかそういう話をしてもらえれば、勉強する人はそれを
それぞれに解釈して学んでいけるのではと思う。
「じゃ、辞めようか」と思う人もいれば、「じゃ、その部分だけ気を
つけていけばPHPでもOOPがやれるんだな」と思う人もいるわけで。
521
(2): 2008/02/25(月)11:44 ID:??? AAS
1は誤解を招くことは面倒だからやめた方がいいよ
1-
あと 373 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.036s