Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Autoloader и Предупреждения
 
 автор: speedsoft   (12.05.2012 в 13:08)   письмо автору
 
 

Есть код

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 ?

  Ответить  
 
 автор: cheops   (12.05.2012 в 13:37)   письмо автору
 
   для: speedsoft   (12.05.2012 в 13:08)
 

А file_exists чем не подходит?

  Ответить  
 
 автор: speedsoft   (12.05.2012 в 13:53)   письмо автору
 
   для: cheops   (12.05.2012 в 13:37)
 

Сейчас еще раз проверю, но вроде он не находил файл, и я подумал что для него include_path не писан.

  Ответить  
 
 автор: speedsoft   (12.05.2012 в 13:57)   письмо автору
 
   для: 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;
}
?>


Мне кажется грузновато получается, но пока это единственное решение что нашел.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования