|
|
|
| Есть код
class ClassAutoloader {
public function __construct() {
spl_autoload_register(array($this, 'loader'));
}
private function loader($className) {
include strtolower($className) . '.php';
}
}
$autoloader = new ClassAutoloader();
|
но не суть особо его важна. Так вот проблема в том, что если я вызываю класс, которого нету (физически на диске нету), то генерируется Warning что файл не найден. Как избавится от этого? поставил заглушку @ на инклуд, но это решение мне совершенно не нравится. Есть ли какая-то функция, на подобии file_exists, которая проверит наличие файла в путях, установленных через set_include_path ? | |
|
|
|
|
|
|
|
для: speedsoft
(12.05.2012 в 13:08)
| | А file_exists чем не подходит? | |
|
|
|
|
|
|
|
для: cheops
(12.05.2012 в 13:37)
| | Сейчас еще раз проверю, но вроде он не находил файл, и я подумал что для него include_path не писан. | |
|
|
|
|
|
|
|
для: cheops
(12.05.2012 в 13:37)
| | Да не ищет, но почитав внимательно комментарии пользователей на php.net к этой функции, нашел решение
<?php
function filexists($file)
{
$ps = explode(":", ini_get('include_path'));
foreach($ps as $path)
{
if(file_exists($path.'/'.$file)) return true;
}
if(file_exists($file)) return true;
return false;
}
?>
|
Мне кажется грузновато получается, но пока это единственное решение что нашел. | |
|
|
|