+156
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
class CLoader
{
protected static $_importPaths = array(APPLICATION_PATH);
public static function import($path)
{
self::$_importPaths[] = APPLICATION_PATH . '/' . $path;
}
public function classExist($className)
{
return class_exists($className) || interface_exists($className);
}
public static function autoload($className)
{
foreach(self::$_importPaths as $path)
{
if(is_file($fileName = $path . '/' . $className . '.php'))
{
include $fileName;
break;
}
}
}
}
spl_autoload_register(array('CLoader', 'autoload'));
Гавнокод или нет? Идея в том, чтобы нормально можно было написать if(CLoader::classExist('Router'))...
Может я чего не дочитал, но если добавлять пути с либами в include_path, а в функции autoload просто писать include $className . '.php', то class_exists('Router') выкинет ошибку, если файл Router.php не найден.
Запостил: Jetti,
09 Мая 2011
Jetti 09.05.2011 12:55 # 0
guest 09.05.2011 16:46 # −2
Jetti 09.05.2011 16:50 # −2
guest 09.05.2011 16:56 # −1
Uchkuma 09.05.2011 20:30 # +2
guest 17.05.2011 20:54 # 0
guest 17.05.2011 20:55 # 0
guest8 08.04.2019 21:04 # −999
guest8 08.04.2019 21:23 # −999
guest8 08.04.2019 22:05 # −999
guest8 09.04.2019 10:43 # −999