[PHP-users 1858] XP, UML など

TAKAHASHI Masayoshi php-users@php.gr.jp
Thu, 06 Sep 2001 13:04:55 +0900


高橋征義です。

Morikawa Encore-Ann <i@encore-ann.com> wrote:
> 最近PHPUNITなるものを知って結構はまっているのですが、
> PHPのオブジェクト指向絡みな話題って結構少ないような
> 気がします。#XPがオブジェクト指向絡みであるとして。

私も使ってみていますが、「TestCaseのサブクラスにTest〜という
クラスを作ると、テスト用メソッドと混乱するんでダメ」みたいな
ことが書かれたコメントがあったので、下のようなパッチをあてて、
テスト用メソッドの方を「test_〜」という名前になるようにして
使っています。
# ついでに、assertEqualsメソッドで、型での比較も行っています。
# 暗黙の型変換のためにテストが通ってしまってびっくりしたので(^^;


--- phpunit.php	Thu Nov 30 05:30:03 2000
+++ phpunit.php.new	Fri Aug 31 19:30:30 2001
@@ -63,7 +63,8 @@
   }
 
   function assertEquals($expected, $actual, $message=0) {
-    if ($expected != $actual) {
+    if (($expected != $actual) ||
+	(gettype($expected) != gettype($actual))) {
       $this->failNotEquals($expected, $actual, "expected", $message);
     }
   }
@@ -196,7 +197,7 @@
 	// PHP4 introspection, submitted by Dylan Kuhn
 	$names = get_class_methods($classname);
 	while (list($key, $method) = each($names)) {
-	  if (preg_match('/^test/', $method) && $method != "testcase") {  
+	  if (preg_match('/^test_/', $method)) {  
 	    $this->addTest(new $classname($method));
 	  }
 	}


> やはりPerlと同じようにオブジェクト指向をとことん目指すには
> 難しい(もしくはメリットない)っちゅうことでしょうか。

Perl5に比べれば、クラスやメソッドの定義などはだいぶすっきりして
いるとは思います(というか、Perl5がいろんな意味ですごすぎる)が、
「PHPマニュアル」の膨大な(非OOの)関数リファレンスを見ると、
文化が違うのかなあと感じました。

# PHP日本語マニュアルはたいへん重宝しています。ありがとう
# ございます>PHP日本語マニュアル翻訳プロジェクトの方々


あと、オブジェクト指向の部分で疑問に思ったのは2点あります。

・メソッドの可視性の指定(publicとかprivateとか)はできないんでしょうか?
・メソッドチェーン($obj->foo()->bar() みたいな呼び出し方)はできない
  んでしょうか?


では。

高橋征義 (TAKAHASHI Masayoshi)       Email:maki@inac.co.jp