ФорумПрограммированиеPHP для идиотов → __autoload

__autoload

  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 14 июля 2010 г. 14:57

    Чет не работает =(

    Все работает до подключения смарти


    require_once 'include/AutoLoad.inc';
    require_once 'include/Constants.inc';

    $test = new Test();//Этот класс находит

    require_once SMARTY_CLASS_DIR . 'Smarty.class.php';

    $smarty = new Smarty();
    $config = new Config();//этот уже нет

    все классы выше строчки
    require_once SMARTY_CLASS_DIR . 'Smarty.class.php';

    находятся


    function __autoload($className)
    {

    $directory = "class/";
    $fileNameFormats = array(
    '%s.php',
    '%s.class.php',
    'class.%s.php'
    );


    foreach ($fileNameFormats as $fileNameFormat)
    {
    $path = $directory . sprintf($fileNameFormat, strtolower($className));
    if (file_exists($path)) {
    include_once $path;
    return;
    }
    }
    }


    Как решить данную проблему?

  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 14 июля 2010 г. 15:05, спустя 8 минут 39 секунд

    Юзать spl_autoload =)
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 14 июля 2010 г. 15:19, спустя 13 минут 40 секунд

    Чет не могу въехать как правильно пользоваться spl_autoload
    по примеру из мануала


    2. Change priority:
    <?php
    spl_autoload_extensions('.php,.inc');
    // new priority: .php .inc
    for($n=65; $n<70; $n++) {
       $className = 'Class'.chr($n);
       spl_autoload($className);
       $ins = new $className;
       echo $ins->val.'<br>';
    }

    какая то хрень
    Спустя 217 сек.
    О, вроде получилось =)
  • md5

    Сообщения: 11949 Репутация: N Группа: в ухо

    Spritz 14 июля 2010 г. 15:42, спустя 22 минуты 59 секунд

    Professor, ну так покажи, как получилось
    все умрут, а я изумруд
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 14 июля 2010 г. 15:51, спустя 8 минут 44 секунды

    md5, конечно белая госпожа! =)

    spl_autoload_register("autoload");

    /**
    * Подключаем классы
    */
    function autoload($className)
    {
    $directory = "class/";
    $fileNameFormats = array(
    '%s.php',
    '%s.class.php',
    'class.%s.php'
    );


    foreach ($fileNameFormats as $fileNameFormat)
    {
    $path = $directory . sprintf($fileNameFormat, strtolower($className));
    if (file_exists($path)) {
    include_once $path;
    return;
    }
    }
    }
  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 14 июля 2010 г. 16:59, спустя 1 час 8 минут 51 секунду

    смарти во всем виноват ессно. Смарти - гавно)
  • md5

    Сообщения: 11949 Репутация: N Группа: в ухо

    Spritz 15 июля 2010 г. 4:14, спустя 11 часов 14 минут 47 секунд

    Абырвалг, да сам ты гавно)
    все со смарти хорошо)
    все умрут, а я изумруд

Пожалуйста, авторизуйтесь, чтобы написать комментарий!