OSDN Git Service

fixed: remove refs
[ethna/ethna.git] / class / ClassFactory.php
index 75b558d..47a7728 100644 (file)
@@ -55,10 +55,10 @@ class Ethna_ClassFactory
      *  @param  object  Ethna_Controller    &$controller    controllerオブジェクト
      *  @param  array                       $class          クラス定義
      */
-    function Ethna_ClassFactory(&$controller, $class)
+    public function __construct(&$controller, $class)
     {
-        $this->controller =& $controller;
-        $this->ctl =& $controller;
+        $this->controller = $controller;
+        $this->ctl = $controller;
         $this->class = $class;
     }
 
@@ -72,7 +72,7 @@ class Ethna_ClassFactory
      *  @param  bool    $weak   オブジェクトが未生成の場合の強制生成フラグ(default: false)
      *  @return object  Ethna_AppManager    マネージャオブジェクト
      */
-    function &getManager($type, $weak = false)
+    function getManager($type, $weak = false)
     {
         $obj = null;
 
@@ -124,13 +124,13 @@ class Ethna_ClassFactory
         if (in_array("getinstance", $this->method_list[$class_name])) {
             $obj = call_user_func(array($class_name, 'getInstance'));
         } else {
-            $backend =& $this->controller->getBackend();
-            $obj =& new $class_name($backend);
+            $backend = $this->controller->getBackend();
+            $obj = new $class_name($backend);
         }
 
         //  生成したオブジェクトはとりあえずキャッシュする
         if (isset($this->manager[$type]) == false || is_object($this->manager[$type]) == false) {
-            $this->manager[$type] =& $obj;
+            $this->manager[$type] = $obj;
         }
 
         return $obj;
@@ -147,7 +147,7 @@ class Ethna_ClassFactory
      *  @param  bool    $ext    オブジェクトが未生成の場合の強制生成フラグ(default: false)
      *  @return object  生成されたオブジェクト(エラーならnull)
      */
-    function &getObject($key, $ext = false)
+    function getObject($key, $ext = false)
     {
         $object = null;
 
@@ -174,8 +174,8 @@ class Ethna_ClassFactory
         //  AppObject をはじめに扱う 
         //  AppObject はキャッシュされないことに注意
         if (isset($this->class[$key]) == false) {
-            $backend =& $this->controller->getBackend();
-            $object =& new $class_name($backend, $key_type, $key_value, $prop);
+            $backend = $this->controller->getBackend();
+            $object = new $class_name($backend, $key_type, $key_value, $prop);
             return $object;
         }
 
@@ -204,17 +204,17 @@ class Ethna_ClassFactory
         //  インスタンス化のヘルパがあればそれを使う
         $method = sprintf('_getObject_%s', ucfirst($key));
         if (method_exists($this, $method)) {
-            $object =& $this->$method($class_name);
+            $object = $this->$method($class_name);
         } else if (in_array("getinstance", $this->method_list[$class_name])) {
             $object = call_user_func(array($class_name, 'getInstance'));
         } else {
-            $object =& new $class_name();
+            $object = new $class_name();
         }
 
         //  クラスキーに定められたクラスのインスタンスは
         //  とりあえずキャッシュする
         if (isset($this->object[$key]) == false || is_object($this->object[$key]) == false) {
-            $this->object[$key] =& $object;
+            $this->object[$key] = $object;
         }
 
         return $object;
@@ -243,9 +243,9 @@ class Ethna_ClassFactory
      *  @param  string  $class_name     クラス名
      *  @return object  生成されたオブジェクト(エラーならnull)
      */
-    function &_getObject_Backend($class_name)
+    function _getObject_Backend($class_name)
     {
-        $_ret_object =& new $class_name($this->ctl);
+        $_ret_object = new $class_name($this->ctl);
         return $_ret_object;
     }
 
@@ -256,9 +256,9 @@ class Ethna_ClassFactory
      *  @param  string  $class_name     クラス名
      *  @return object  生成されたオブジェクト(エラーならnull)
      */
-    function &_getObject_Config($class_name)
+    function _getObject_Config($class_name)
     {
-        $_ret_object =& new $class_name($this->ctl);
+        $_ret_object = new $class_name($this->ctl);
         return $_ret_object;
     }
 
@@ -269,9 +269,9 @@ class Ethna_ClassFactory
      *  @param  string  $class_name     クラス名
      *  @return object  生成されたオブジェクト(エラーならnull)
      */
-    function &_getObject_I18n($class_name)
+    function _getObject_I18n($class_name)
     {
-        $_ret_object =& new $class_name($this->ctl->getDirectory('locale'), $this->ctl->getAppId());
+        $_ret_object = new $class_name($this->ctl->getDirectory('locale'), $this->ctl->getAppId());
         return $_ret_object;
     }
 
@@ -282,9 +282,9 @@ class Ethna_ClassFactory
      *  @param  string  $class_name     クラス名
      *  @return object  生成されたオブジェクト(エラーならnull)
      */
-    function &_getObject_Logger($class_name)
+    function _getObject_Logger($class_name)
     {
-        $_ret_object =& new $class_name($this->ctl);
+        $_ret_object = new $class_name($this->ctl);
         return $_ret_object;
     }
 
@@ -295,9 +295,9 @@ class Ethna_ClassFactory
      *  @param  string  $class_name     クラス名
      *  @return object  生成されたオブジェクト(エラーならnull)
      */
-    function &_getObject_Plugin($class_name)
+    function _getObject_Plugin($class_name)
     {
-        $_ret_object =& new $class_name($this->ctl);
+        $_ret_object = new $class_name($this->ctl);
         return $_ret_object;
     }
 
@@ -308,9 +308,9 @@ class Ethna_ClassFactory
      *  @param  string  $class_name     クラス名
      *  @return object  生成されたオブジェクト(エラーならnull)
      */
-    function &_getObject_Renderer($class_name)
+    function _getObject_Renderer($class_name)
     {
-        $_ret_object =& new $class_name($this->ctl);
+        $_ret_object = new $class_name($this->ctl);
         return $_ret_object;
     }
 
@@ -321,9 +321,9 @@ class Ethna_ClassFactory
      *  @param  string  $class_name     クラス名
      *  @return object  生成されたオブジェクト(エラーならnull)
      */
-    function &_getObject_Session($class_name)
+    function _getObject_Session($class_name)
     {
-        $_ret_object =& new $class_name($this->ctl->getAppId(), $this->ctl->getDirectory('tmp'), $this->ctl->getLogger());
+        $_ret_object = new $class_name($this->ctl, $this->ctl->getAppId());
         return $_ret_object;
     }
 
@@ -334,9 +334,9 @@ class Ethna_ClassFactory
      *  @param  string  $class_name     クラス名
      *  @return object  生成されたオブジェクト(エラーならnull)
      */
-    function &_getObject_Sql($class_name)
+    function _getObject_Sql($class_name)
     {
-        $_ret_object =& new $class_name($this->ctl);
+        $_ret_object = new $class_name($this->ctl);
         return $_ret_object;
     }
 
@@ -377,7 +377,8 @@ class Ethna_ClassFactory
             }
 
             // try ethna master style
-            // Ethna_Foo_Bar -> class/Ethna/Foo/Ethna_Foo_Bar.php
+            // Ethna_Foo_Bar -> class/Ethna/Foo/Bar.php
+            $tmp = explode('_', $match[2]);
             array_unshift($tmp, 'Ethna', 'class');
             $file = sprintf('%s.%s',
                             implode(DIRECTORY_SEPARATOR, $tmp),