[ Mini Kiebo ]
Server: Windows NT DESKTOP-5B8S0D4 6.2 build 9200 (Windows 8 Professional Edition) i586
Path:
D:
/
Backup
/
05122024
/
htdocs
/
jurnal-kesmas
/
v1
/
lib
/
pkp
/
classes
/
db
/
[
Home
]
File: DAORegistry.php
<?php /** * @file classes/db/DAORegistry.php * * Copyright (c) 2014-2021 Simon Fraser University * Copyright (c) 2000-2021 John Willinsky * Distributed under the GNU GPL v3. For full terms see the file docs/COPYING. * * @class DAORegistry * * @ingroup db * * @see DAO * * @brief Maintains a static list of DAO objects so each DAO is instantiated only once. */ namespace PKP\db; use APP\core\Application; use PKP\core\Registry; class DAORegistry { /** * Get the current list of registered DAOs. * This returns a reference to the static hash used to * store all DAOs currently instantiated by the system. * * @return array */ public static function &getDAOs() { $daos = & Registry::get('daos', true, []); return $daos; } /** * Register a new DAO with the system. * * @param string $name The name of the DAO to register * @param object $dao A reference to the DAO to be registered * * @return object A reference to previously-registered DAO of the same * name, if one was already registered; null otherwise */ public static function registerDAO($name, $dao) { $daos = & DAORegistry::getDAOs(); $returner = null; if (isset($daos[$name])) { $returner = $daos[$name]; } $daos[$name] = $dao; return $returner; } /** * Retrieve a reference to the specified DAO. * * @param string $name the class name of the requested DAO * * @return DAO */ public static function &getDAO($name) { $daos = & DAORegistry::getDAOs(); if (!isset($daos[$name])) { // Import the required DAO class. $application = Application::get(); $className = $application->getQualifiedDAOName($name); if (!$className) { throw new \Exception('Unrecognized DAO ' . $name . '!'); } // Only instantiate each class of DAO a single time $daos[$name] = new $className(); } return $daos[$name]; } } if (!PKP_STRICT_MODE) { class_alias('\PKP\db\DAORegistry', '\DAORegistry'); }