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

PHPでオブジェクト指向プログラミング

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2005/04/17(日) 16:55:57ID:iM4mgYnJ
PHP5になって本格的なOOPができるようになったので
PHPによるOOPについて語りましょう。
0514nobodyさん2005/07/04(月) 18:06:37ID:???
Mojavi3でActionやModelの中でControllerを取得する場合、
$controller = $this->getContext()->getController();
と
$controller = Controller::getInstance();
のどっちがいいと思いますか?
他のシングルトンなオブジェクト(UserとかRequestとか)もどうしようか迷います。
0515nobodyさん2005/07/04(月) 19:25:59ID:???
$controller = $this->getContext()->getController();
がお作法通り。
基本的にContextタンの管理物はContextタンにお伺いを立てるが筋。
0516nobodyさん2005/07/04(月) 19:32:25ID:???
>>512みたいな阿呆がでるのはゆとり教育のせいか?
0517nobodyさん2005/07/04(月) 20:31:14ID:???
eval使いは屑。
プログラマを騙るな雑魚。
0518nobodyさん2005/07/04(月) 20:41:48ID:???
>>517
そういきり立つなよ。

キレ易いのもゆとり教育世代の特徴だな。
0519nobodyさん2005/07/05(火) 05:33:21ID:???
>>515
なるほど、そういうことですか。
Controller::getInstance()はMojavi内部で使用されるものととらえておけばいいのかな?
なんかちゃんとしたドキュメントがまだないから、Mojavi内部用なのか我々ユーザー向けに提供されたインターフェイスなのか迷うことが多いな。
getActionとかgetViewとか新しいインスタンスを生成しちゃうし、おそらく内部用だよね。
でもgetModelもインスタンス生成だけど、こっちはおそらくユーザー用だし。
なかなか難しい・・・。

>>517は言葉は悪いが同意。
evalは保守性、可読性、共に下げる原因になる。
何でもできる「自由さがアダになった点」ではグローバル変数と同類。
ちなみにnew $classname;との比較としてevalを語るならいいが、evalの優位性も語らず不毛に単体で支持するのはスレ違い。
0520nobodyさん2005/07/05(火) 07:32:14ID:???
だまってろ池沼
0521nobodyさん2005/07/05(火) 08:11:32ID:???
>>520
荒らすな。ウザイ
0522nobodyさん2005/07/05(火) 09:21:23ID:???
黙れクソガキ
0523nobodyさん2005/07/05(火) 09:55:45ID:???
>>522
必死杉厨キモ(ry
0524nobodyさん2005/07/05(火) 09:55:56ID:???
最近言語障害者がこのスレにはびこってるな。
消えてくれるとありがたいのだが。
0525nobodyさん2005/07/05(火) 10:47:54ID:???
バーカバーカ
プップププー
0526nobodyさん2005/07/05(火) 11:02:44ID:???
>>523

マジでキモイなオマエ
0527nobodyさん2005/07/05(火) 11:50:08ID:???
>>526 クルシソウダネ
0528nobodyさん2005/07/05(火) 12:05:24ID:???
Mojavi3を使い始めたんですが、UserやRequestを自作した場合、どのように設定したらよいのかわかる人いますか?
0529nobodyさん2005/07/05(火) 22:05:20ID:???
フレームワーク使ったOOPでいいのは
ログが取りやすいことだな〜
特にDBのクエリログは激しく便利
0530nobodyさん2005/07/06(水) 04:14:18ID:???
PHPのオブジェクト機能を教えて下さい。
0531nobodyさん2005/07/06(水) 07:22:48ID:???
>>530
なんだその質問はw
0532nobodyさん2005/07/06(水) 16:46:25ID:???
同意
0533nobodyさん2005/07/06(水) 16:48:12ID:???
PHPのオブジェクト指向ってなんですか?
PHPでオブジェクトってどう使ったらいいのですか?
0534nobodyさん2005/07/06(水) 19:43:38ID:???
>>533
マニュアルを読んで納得して使う。
0535nobodyさん2005/07/06(水) 20:46:36ID:???
なんかビギナーっぽいんで
オブジェクト指向自体の勉強から始めた方がいいと思う
本屋にGO
0536nobodyさん2005/07/06(水) 21:04:32ID:???
ぶっちゃけオブジェクト指向・デザインパターン・フレームワーク
を知らない奴はプログラマを騙らないで欲しい。
0537nobodyさん2005/07/06(水) 21:51:21ID:???
たしかにマニュアル読んでしか使ってないし、ビギナーでもあるし、プログラマを騙らないので
オブジェクト指向・デザインパターン・フレームワークを教えて下さい。後で本も買いますので。
0538nobodyさん2005/07/06(水) 22:52:07ID:???
そんなのこんなところで教えられるもんでもないだろ
どんだけコンパクトな知識やねんw
OOなんて知の最高峰みたいなモンで
ほとんど哲学の領域にまで踏み込んでるのに
0539nobodyさん2005/07/06(水) 23:35:43ID:???
わかりました、後で本買って読んでみます。

ところでPHPでオブジェクト指向っぽいサンプルコードをどのたかちょこっと
書込んでいただけないでしょうか。本と照らし合わせてなにが
オブジェクト指向たらんのか調べてみようと思うしだいです。
0540nobodyさん2005/07/06(水) 23:54:56ID:J6s2TI5S
>>539
あちこちにあるだろ。
ググるなりすればすぐに見つかるからてめぇで探せ。

それができないようなヤツにプログラミングなど無理。
05415402005/07/06(水) 23:55:22ID:???
ごめん、sage忘れた。
05425402005/07/06(水) 23:57:28ID:???
>>536
20年前からアセンブラ一筋の人が漏れの師匠なのだが
その人はプログラマと呼んじゃいかんのか?
0543nobodyさん2005/07/06(水) 23:57:39ID:???
>>539
{>>539}->read(new book(OOP))->try(new things);
0544nobodyさん2005/07/07(木) 06:13:15ID:???
>>543
わざわざありがとうございます。
とりあえず>>540に指摘されましたので、Webを散策して勉強中です。

メソッドが自分自身の参照や新たなインスタンスを戻り値として返す場合
>>543みたいに「インスタンス変数->メソッド()->メソッド();」
みたいなメソッドコールを連結して記述できるのは、PHP5だけですか?
PHP4だと、Parse errorが出てしまいました。
しかたないので、メッソドの戻り値を代入したテンポラリインスタンスを用意して
メッソドコールしましたけど、なんか美しくないんですよね。
とりあえず、今は、>>543風に示すとこんな状態です。

{>>539}->read(new web(OOP,PHP))->try(new environment(PHP4));
0545nobodyさん2005/07/07(木) 06:13:59ID:???
ちなみに作ってみたコード
<?PHP
 class test{
  var $value;
  function test($argv){
   $this->value = $argv;
  }
  function set($argv){
   $this->value = $argv;
   return $this;
  }
  function show(){
   return $this->value;
  }
 }

 $test = new test("Hello World<br>");
 print $test->show();
 //print $test->set("Hello OOP World")->show();
 $tmp = $test->set("Hello OOP World<br>");
 print $tmp->show();
?>
0546nobodyさん2005/07/07(木) 06:43:42ID:???
自分と同じクラスのインスタンスが文字列の代わりに指定された場合も実装してみました。
<?PHP
 class test{
  var $value;
  function test($argv){
   return $this->set($argv);
  }
  function set($argv){
   $this->value = $this->is_class($argv)?$argv->show():$argv;
   return $this;
  }
  function show(){
   return $this->value;
  }
  function is_class($obj){
   $status;
   if(get_class($obj)==get_class($this)){
    $status = 1;
   }
   return $status;
  }
 }

 $test1 = new test("Hello OOP World<br>");
 $test2 = new test($test1);
 print $test2->show();
?>
0547nobodyさん2005/07/07(木) 06:51:25ID:???
>>544
悲しいけど、PHP4ではそれが現実なのよね
0548nobodyさん2005/07/07(木) 06:51:33ID:???
is_classはこれだけでよかったですね。

return get_class($obj)==get_class($this);
0549nobodyさん2005/07/07(木) 07:05:55ID:???
>>547
やっぱり、そうなんですか...残念。

しかし、試しにテストプログラム作ってみましたけど、面白いですね。
まだ、継承とかは使ってないですけど、>>546のコードを実装する時に
コンストラクタとsetメッソドが同じようなコードになるので
いっそのことコンストラクタで、setメソッドを呼出せば
修正箇所は1箇所になるよなとか、valueプロパティは、最小限の呼出にして
自分内部での参照もshowメソッド経由でアクセスすれば、$valueの意味を変えたり
$valueは非公開プロパティでもいいなとか、後のメンテナンス性を考慮した
実装を考える事ができますね。
0550nobodyさん2005/07/07(木) 09:09:19ID:???
継承も使ってみました。多能性もあります。
<?PHP
 class test{
  var $value;
  function test($argv){
   $this->set($argv);
  }
  function set($argv){
   $this->value = $this->is_class($argv)?$argv->show():$argv;
   return $this;
  }
  function show(){
   return $this->value;
  }
  function is_class($obj){
   return get_class($obj)==get_class($this);
  }
 }
0551nobodyさん2005/07/07(木) 09:09:38ID:???
 class sub_test extends test{
  function sub_test($argv){
   $this->test($argv);
  }
  function show_replace($str){
   return preg_replace('/<!--\[replace\]-->/',parent::show(),$str);
  }
  function show(){
   return "[".parent::show()."]";
  }
 }
 $test1 = new test("Hello World");
 $test2 = new sub_test("Hello World");
 print $test1->show()."<br>";
 print $test2->show()."<br>";
 print $test2->show_replace('【<!--[replace]-->】<br>');
 $test2->set('Hello OOP World');
 print $test2->show_replace('『<!--[replace]-->』<br>');
?>
0552nobodyさん2005/07/07(木) 09:19:30ID:???
みなさん、アドバイスありがとうございました。
おかげでオブジェクト指向プログラミングの基礎を理解できることができました。
デザインパターンやフレームワークもおいおい学んで行きます。
0553nobodyさん2005/07/07(木) 09:22:16ID:???
>>550
多能性・・・タノウセイ?
0554nobodyさん2005/07/07(木) 09:35:01ID:???
しかし、昨日質問を投げかけてからここにいたるまでまる1日以上掛かってしまいました。
みなさんは、このレベルだったら30分もあれば理解できるんでしょうね。さすがだと感心しました。
自分もこれから精進しようと思います。でも自分がプログラマだとは騙りませんの御安心ください。
0555nobodyさん2005/07/07(木) 09:48:10ID:???
>>550
さっそく自分がなにか理解違いしていましたか、失礼しました。
一応自分の理解では、多能性(たのうせい:ポリモーズヒズム)を以下の意味で使っています。

異なるオブジェクトに同じメッセージを送った場合に
そのオブジェクトの特性に会わせて振る舞いを設定できるということなので
>>550の場合、親クラスであるtestクラスのshowメソッドと
子クラスであるsub_testクラスのshowメソッドという同じ名前の
異なる振る舞いをするメソッドを実装しました。

testクラスでは、valueプロパティの値をそのまま戻り値として返しますが
sub_testクラスでは、valueの値の前後に"[]"を付けた値を戻り値として返します。
0556nobodyさん2005/07/07(木) 09:48:54ID:???
>>555は>>553のレスです。
05575532005/07/07(木) 10:20:42ID:???
>>555
×多能性(たのうせい) - ポリモーズヒズム(?)
○多態性(たたいせい) - ポリモーフィズム

「能」の下に心をつけるのを忘れないでください。

解釈としては>>555でおk。
狭義には「同じインスタンスに同じメッセージを送った場合にオブジェクトに応じた振る舞いをすること」
という風にもとらえられるけど、大した問題じゃない罠。
0558nobodyさん2005/07/07(木) 10:34:23ID:???
>>557
間違い指摘、ありがとうございます。
0559nobodyさん2005/07/07(木) 12:19:52ID:???
4はmethod()->method()の書き方出来ないのか。
知らなかった。
0560nobodyさん2005/07/07(木) 12:32:56ID:???
>>557
狭義の多態性(こんどは間違って無い)が気になったので、自分なりにサンプルを書いてみました。

PHP4を使っているためか、自分が未熟なためか(たぶんこちらでしょう)、
最終的にevalに頼らざる状態になりましたが、一応動くものができました。
こんな感じの実装でいいでしょうか?

受取ったオブジェクトの種類によってsub_testクラスのshowメソッドの振る舞いが変化します。

<?PHP
 class test{
  var $value;
  function test($argv){
   $this->set($argv);
  }
  function set($argv){
   $this->value = get_class($argv)?$argv->value:$argv;
   return $this;
  }
  function show(){
   return $this->value;
  }
 }
0561nobodyさん2005/07/07(木) 12:33:22ID:???
 class sub_test1 extends test{
  function sub_test1($argv){
   $this->test($argv);
  }
  function show(){
   return "[".parent::show()."]";
  }
 }
 class sub_test2 extends test{
  function sub_test2($argv){
   $this->test($argv);
  }
  function show(){
   return "{".parent::show()."}";
  }
 }
0562nobodyさん2005/07/07(木) 12:33:37ID:???
 class sub_test extends test{
  var $show_class;
  function test($argv){
   $this->test($argv);
  }
  function set($argv){
   $this->show_class = get_class($argv);
   return parent::set($argv);
  }
  function show(){
   eval("\$tmp = $this->show_class::show();");
   return $tmp;
  }
 }
 $str = 'Hello OOP World';
 $test1 = new sub_test(new sub_test1($str));
 $test2 = new sub_test(new sub_test2($str));
 print $test1->show()."<br>";
 print $test2->show()."<br>";
?>
0563nobodyさん2005/07/07(木) 13:08:12ID:???
↑なんか禿しいやり方だなw

こんな感じでどうでしょ?

print get_value(new sub_test1($str)) . "<br>";
print get_value(new sub_test2($str)) . "<br>";

function get_value($obj) { return $obj->show(); }
// 同じインスタンス($obj)に同じメッセージ(show)だけど違う結果が返る
0564nobodyさん2005/07/07(木) 13:32:11ID:???
っていうか漏れの書いた「狭義の」ポリモーフィズムなんて敢えてPHPで実現する必要ないと思う。
PHPにおけるポリモーフィズムの是非に関するアフォ話はこのスレの前半にチラホラでてるよ。
0565nobodyさん2005/07/07(木) 14:09:28ID:???
>>563-564
なるほど、いちいちコンストラクタ経由で初期化しなくてもいいわけでなんですね。
インスタンス・メソッドで直接オブジェクトを受取ってそのまま受取ったオブジェクトのメソッドをコールしちゃうわけですね。

つまり用語の定義を理解してその実装ができていればいいわけで、こうであるべきという実装方法というのはないわけなんですね。
ただ、シンプルに実装できれば、後のメンテナンス性とか考えた場合はいろいろ利用価値がありますよってことですね。
サンプルコード大変参考になりました。

>漏れの書いた「狭義の」ポリモーフィズムなんて敢えてPHPで実現する必要ないと思う。

ふつふつと好奇心が涌いてやってしまいました。

>PHPにおけるポリモーフィズムの是非に関するアフォ話はこのスレの前半にチラホラでてるよ。

ちょっと読んではみたんですが話の流れが不毛だったので途中で断念しました。

また色々試してみます。助言ありがとうございました。
0566nobodyさん2005/07/10(日) 01:55:11ID:FkUTlorq
PHP4のSingletonで、コンストラクタを直呼びされた時に
エラーにしたいのですが
どのような方法があるでしょうか?
0567nobodyさん2005/07/10(日) 02:45:33ID:???
http://www.doyouphp.jp/sample/sample_class_dp_adapter.shtml

このサイトを見ると「Abstract::set」でJavaでいうところの
abstractを実装しているみたいなんだけどこれってPHP4でもできるの?
初めて知ったんだけど。
0568nobodyさん2005/07/10(日) 06:31:47ID:???
>>566
PHP4じゃ難しいかもね。
ま、それがprivateにしたいメソッドまで外から呼び出せてしまうPHP4の難点だ罠。
基本的にSingletonは無理だと思ったほうがいいかも。

>>567
PHP4ではオーバーライドし忘れのメソッドコール時に初めてエラー吐いて対処するしかないんだよね。
Mojavi2もそれだな。
05695672005/07/10(日) 15:28:47ID:???
>>568
なるほど勉強になります。
05705662005/07/11(月) 01:39:34ID:???
>>568
ありがとうございます。
やっぱり無理ですか…「注意する」しかないんですね。
0571nobodyさん2005/07/11(月) 06:21:36ID:1O09a/aM
質問というより相談です。
今、あるクラスのクラス名を考えているのですが、いい名前が思いつきません。
このクラスは時間と文字列をメンバ変数に持つだけの単純なものなのですが(Java風に書くと↓)、
いろいろな用途に使われるため、安易に名前が付けられないのです。
class X{
  Date date;
  String note;
}
インスタンスの具体例…
・Webページの更新履歴 (date=2005-07-06, note="ギャラリーにCGをアップしました")
・スケジュール (date=2005-07-13 18:30, note="会議室にてミーティング")
・アクセスカウンタ (date=2005-07-11, note="34")

はじめは Schedule っていうクラス名だったのですが、
上に挙げたように後々になっていろいろな応用例が出てきたので、
別の名前に変えたいと思っています。
「ある時間と、その時間に関連づけられた情報を表すデータ」という意味を表すような
よさげな名前って何かありませんでしょうか?
0572nobodyさん2005/07/11(月) 06:50:28ID:OE7FRRXh
プログラムをしらないやつほど、デザインパターン、フレームワークとか
ほざくよな・・・・そんなの知らなくても、十分食っていける
俺はしらないが、職業プログラマとして食ってるぞ。
かっこつけたがるんだよな、そういうの使ってさ
0573nobodyさん2005/07/11(月) 06:55:56ID:???
>>571
こんなスレもあるが

クラス名・変数名に迷ったら書き込むスレ。Part5
http://pc8.2ch.net/test/read.cgi/tech/1109330204/
05745712005/07/11(月) 07:15:14ID:???
今思いついたんだけど、
Notation というのはどうだろうか?
0575nobodyさん2005/07/11(月) 13:06:05ID:???
noteとdateをmemoするということで

nodame
05765712005/07/11(月) 14:27:29ID:???
ぎゃぼー!
0577nobodyさん2005/07/11(月) 16:41:59ID:???
なんかリアクションが新しいなw
0578nobodyさん2005/07/11(月) 20:48:32ID:???
>>572
青いなw
もうちょっと精進しな。
井の中の蛙大海を知らず。
0579nobodyさん2005/07/11(月) 21:59:43ID:???
>>572に賛同するしないとか関係なく、>>578のレスの方がは何故か痛々しい
0580nobodyさん2005/07/11(月) 22:23:00ID:???
>>578
されど天の蒼さを知る
0581nobodyさん2005/07/11(月) 23:21:55ID:???
たしかに>>572みたいに小さな仕事しかしてなくても、
困らない程度の金は入ってくるからね。
0582nobodyさん2005/07/11(月) 23:54:30ID:???
デザパタを理解できない奴はアンチにはしる。
これ真理。
0583nobodyさん2005/07/12(火) 00:03:27ID:???
>>582
そっか!W.J.ブラウンはデザパタが理解できなかったからあんなこと言い始めたのか!
05845712005/07/12(火) 00:10:50ID:???
>>575
いろいろ悩んだんデスけど・・・やっぱり Notation にしましたよ。
nodameは意味不明なんで却下デス!
0585nobodyさん2005/07/12(火) 09:35:21ID:???
新しい言葉 ノダメ
0586nobodyさん2005/07/12(火) 16:58:39ID:???
>>584
歌うように使えるクラス。良い名前と思ったのになあ
0587nobodyさん2005/07/12(火) 21:20:12ID:???
>>586
お前、ただのオタクだろ、同じにおいがするぞ。友達になってくれ。
0588nobodyさん2005/07/13(水) 02:00:38ID:???
>>584
>>576のリアクションができて意味不明もないと思うが
>>586と一緒に>>587の友達になるべきだな。
0589nobodyさん2005/07/13(水) 22:16:27ID:???
PHP4でのSingleton、インスタンス内にstaticで実行フラグ持てば
再生成は防げるやん。

class hoges{

function & hoges () {
static $done = NULL;
if ($done){
trigger_error("既にありんす");
exit;
}
$done = TRUE;
}

}
05905892005/07/13(水) 22:17:35ID:???
インスタンス→コンストラクタだった
0591nobodyさん2005/07/14(木) 03:49:28ID:???
>>589
再生成を防いだってSingletonにはなりませんな。
PHP4では無理。

$x = new hoges();
$y = $x; // アチャー

命名規則とかこじつけて、>>570の言うように「注意する」しかない。

実体の保持方法も微妙なとこだな。
考え付く限りでは、ゲッターの中で静的変数を宣言して入れとくくらいかな。

function & getInstance() {
static $instance = null;
if (! $instance) $instance = new hoges(); // コンストラクタは>>589を使うとしますか
return $instance;
}

しかしこれでは外部で先にnewされてた場合、今度はgetInstance内のnewがエラー吐くね。
結局newしないように注意するしかなくなってしまう。
そうなると再生成を防ぐコンストラクタも役に立たないな。

残るは苦肉の策でグローバル変数に保持か・・・。
0592nobodyさん2005/07/14(木) 05:07:14ID:???
PHPの場合Singletonに強制力は持たせられないけど、
ここでSingleton使ってますよという明示的な記述はできるでしょ。
言語仕様でしょうがない所は別のやり方でカバーしろよ。
0593nobodyさん2005/07/14(木) 05:42:25ID:???
PHPを使うんじゃなくてPHPに使われてる人が多いんですよ。

まあ他の言語でもいえることだけど。
05945912005/07/14(木) 06:20:14ID:???
>>592
> PHPの場合Singletonに強制力は持たせられないけど、

そうだね。漏れの話の論点はそういうこと。

> ここでSingleton使ってますよという明示的な記述はできるでしょ。

当たり前だね。

> 言語仕様でしょうがない所は別のやり方でカバーしろよ。

言われなくてもしますが。
0595nobodyさん2005/07/14(木) 06:33:34ID:???
よかったね
0596nobodyさん2005/07/14(木) 23:10:54ID:???
他オブジェクトの各メソッドからSingletonオブジェクトにアクセスする時、
メソッド内でgetInstanceする?
コンストラクタでプロパティーとして保持しておいて
以後そこ経由でアクセスする?
どっちがいいんかな。
0597nobodyさん2005/07/15(金) 00:47:11ID:???
コンストラクタ内に589の機構を取り入れたら
SingletonのgetInstance内で、

$instance =& new ClassName();

と書いた時、Singletonにならないことを発見しました。
どういう原理でこうなるのでしょうか?
通常new時には&は付けてはいけないのでしょうか?
05985972005/07/15(金) 00:50:30ID:???
と思ったらMojavi内にも「=& new」がたくさんある…
一体なにゆえ…
0599nobodyさん2005/07/15(金) 01:44:09ID:???
>>597-598
リファレンスは静的に保存することはできない。
http://www.php.net/manual/ja/language.variables.scope.php
06005972005/07/15(金) 07:23:40ID:???
>>599
なるほど…。PHPのリファレンスはエイリアスみたいなものだから、
異種な入れ物である静的変数とイコールにはできないということですかね。
ありがとうございました。
0601nobodyさん2005/07/29(金) 19:03:11ID:???
PHPでOOPやろうとすると、
$self->書き忘れでいつもバグが発生するのは漏れだけ?
0602nobodyさん2005/07/30(土) 00:08:49ID:???
$self->書いてもバグは消えないとおもうな
06036012005/07/30(土) 00:18:51ID:???
クラス変数指定するときに、$self-> つけわすれて単なるローカル変数になり、
思ったとおりに動かない、という人為的なバグがおきるんだけど。
0604nobodyさん2005/07/30(土) 01:14:46ID:???
>>603
$this->ですか?
self::ですか?
まー前者だとは思うけど。
06056012005/07/30(土) 01:15:51ID:???
$self じゃなくて $this だった orz
そういうことか…>>602

議論の主旨は変わりませんが
0606nobodyさん2005/07/30(土) 02:28:57ID:???
E_ALLにしとけカス
OOP云々の問題じゃねえよ
06076012005/07/30(土) 03:42:23ID:???
>>606
notice出せばよいのか。ごもっともです。すみませんでした
0608nobodyさん2005/07/31(日) 03:57:50ID:???
>>601
おまえは他にどんな言語でOOPやってんだ?
0609nobodyさん2005/08/21(日) 20:39:39ID:R+xir7FS
PHP5ならE_ALLより厳しいエラーレベルが追加されたから
それを指定しておくのがよさげ。
0610nobodyさん2005/08/21(日) 23:44:39ID:???
E_STRICTは、PEARをはじめ外部ライブラリのコードがことごとく
エラーとして警告されるという諸刃の剣。
0611nobodyさん2005/08/22(月) 15:45:30ID:???
PEARはPHP4でも動くからね、
そういう互換性保ってるスクリプトは全部E_STRICTでは通らない。
0612nobodyさん2005/08/22(月) 17:30:30ID:???
classのvarを書き換えろとかnewを参照渡しするなとかうるさいからな
結局E_STRICTは表示しないようにした
0613nobodyさん2005/08/23(火) 13:54:53ID:???
Action(コマンドパターン)-ロジック-DAO
って分けてるんだけど
どこまでをDAOに入れるか、
どこまでをロジックに入れるか結構迷うなぁ。
そういうとこないですか?
■ このスレッドは過去ログ倉庫に格納されています