X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FCore%2FDAO%2FFactory.php;h=519f4c4341aa6355d059f0809f0c0d42892027dd;hb=4a3c7961f8c578506bdc6b8c0909b1ea435a9739;hp=99242f9d38dfd9c24d1ad22205de702f22c212f4;hpb=82fd7aef5afb57464121d60e237c626cf5752333;p=civicrm-core.git diff --git a/CRM/Core/DAO/Factory.php b/CRM/Core/DAO/Factory.php index 99242f9d38..519f4c4341 100644 --- a/CRM/Core/DAO/Factory.php +++ b/CRM/Core/DAO/Factory.php @@ -5,7 +5,7 @@ */ class CRM_Core_DAO_Factory { - static $_classes = array( + public static $_classes = [ 'Domain' => 'data', 'Country' => 'singleton', 'County' => 'singleton', @@ -13,14 +13,12 @@ class CRM_Core_DAO_Factory { 'GeoCoord' => 'singleton', 'IMProvider' => 'singleton', 'MobileProvider' => 'singleton', - ); + ]; - static $_prefix = array( - 'business' => 'CRM/Core/BAO/', - 'data' => 'CRM/Core/DAO/', - ); - - static $_suffix = '.php'; + public static $_prefix = [ + 'business' => 'CRM_Core_BAO_', + 'data' => 'CRM_Core_DAO_', + ]; /** * @param string $className @@ -28,25 +26,23 @@ class CRM_Core_DAO_Factory { * @return mixed * @throws Exception */ - static function &create($className) { + public static function create($className) { $type = CRM_Utils_Array::value($className, self::$_classes); if (!$type) { CRM_Core_Error::fatal("class $className not found"); } - $file = self::$_prefix[$type] . $className; - $class = str_replace('/', '_', $file); - - require_once($file . self::$_suffix); + $class = self::$_prefix[$type] . $className; if ($type == 'singleton') { $newObj = $class::singleton(); } else { // this is either 'business' or 'data' - $newObj = new $class; + $newObj = new $class(); } return $newObj; } + }