ФорумПрограммированиеПыхнуть хотите?Готовые решения → Ещё одна реализация autoload

Ещё одна реализация autoload

  • VaseninM

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

    Spritz Окт. 25, 2010, 10:17 п.п., спустя 3 минуты 28 секунд

    Дуд - розовый пластелин))
  • phpdude

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

    Spritz Окт. 25, 2010, 10:24 п.п., спустя 7 минут 12 секунд

    SpartakuS, лучше чем забаненый)
    Сапожник без сапог
  • VaseninM

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

    Spritz Окт. 25, 2010, 10:40 п.п., спустя 15 минут 45 секунд

    шантажист :D
  • phpdude

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

    Spritz Окт. 25, 2010, 10:42 п.п., спустя 1 минуту 34 секунды

    SpartakuS, а то!)
    Сапожник без сапог
  • Sinkler

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

    Spritz Окт. 26, 2010, 1:21 д.п., спустя 2 часа 39 минут 25 секунд

    не тот цвет, не тот))))))))))))))))))))))))))))))))))))))))
  • ivanscm

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

    Spritz Окт. 26, 2010, 7:58 д.п., спустя 6 часов 36 минут 56 секунд


    ivanscm, я вас подружил, живите мирно пластилины)

    Я синий властилин! Пасибо Дуд, поржали :)
    С возвращением, Пiха! hyperoff.ru - качественный хостинг php
  • Hight

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

    Spritz Окт. 26, 2010, 6:37 п.п., спустя 10 часов 39 минут 12 секунд

    Синий властилин!

    властЕлин

    RTFM по русскому языку
  • phpdude

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

    Spritz Окт. 26, 2010, 6:38 п.п., спустя 1 минуту 8 секунд

    Не меняйте мне подпись! Слыхал, ДУД?!

    нет не слышал
    Сапожник без сапог
  • Hight

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

    Spritz Окт. 26, 2010, 6:42 п.п., спустя 3 минуты 20 секунд

    phpdude, разве не ты мне подпись поменял? Вот больше не меняй. =)
  • phpdude

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

    Spritz Окт. 26, 2010, 6:43 п.п., спустя 1 минуту 11 секунд

    Hight, нет не я, ты про чо?
    Спустя 21 сек.
    я тебе подпись под аватаркой делал, как ваше величество просило и все
    Спустя 11 сек.
    ну и банил для профилактики :)
    Спустя 20 сек.
    Вам был закрыт доступ к форуму
    Обратитесь к вебмастеру или администратору форумов за дополнительной информацией
    :D
    Сапожник без сапог
  • Hight

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

    Spritz Окт. 26, 2010, 6:44 п.п., спустя 1 минуту 7 секунд

    phpdude, да вот эту подпись:
    Не меняйте мне подпись! Слыхал, ДУД?!

    Мне кто-то вместо этого какую-то хуйню написал. И молчит!!!

    А Ты ДУД всё верно сделал. Молодец! =)
  • phpdude

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

    Spritz Окт. 26, 2010, 6:45 п.п., спустя 1 минуту 16 секунд

    Hight, ага, я молодец!
    Сапожник без сапог
  • soul

    Сообщения: 790 Репутация: N Группа: Кто попало

    Spritz Окт. 26, 2010, 11:15 п.п., спустя 4 часа 29 минут 10 секунд

    вот у меня такой метод автолоадер в классе loader


    static public function auto_load($classname) {

    $filename = strtolower($classname);

    if ($path = file_exists(APPATH.'libs/'.$filename.'.php')) {
    require_once(APPATH.'libs/'.$filename.'.php');
    }
    elseif($path = file_exists(APPATH.'libs/'.$filename.'/'.$filename.'.php')) {
    require_once(APPATH.'libs/'.$filename.'/'.$filename.'.php');
    }
    elseif($path = file_exists(SYSPATH.'libs/'.$filename.'.php')) {
    require_once($path);
    }
    elseif($path = file_exists(SYSPATH.'libs/'.$filename.'/'.$filename.'.php')) {
    require_once($path);
    }
    else {
    throw new LoaderException("Loader: library '$name' not found");
    }
    }


    сейчас ломаю голову что делать с ним. гуру, подскажите, как этот говнокод лучше оптимизировать
    Спустя 122 сек.
    еще думал долго, как по-другому получше реализовать механизм, чтоб классы можно было на лету на другие заменять, как в коде выше, ни к чему не пришел.
    Спустя 82 сек.

    if ($path = file_exists(APPATH.'libs/'.$filename.'.php')) {


    вот тут '$patch =' нет, это мне для кое-каких тестов надо было.
    Спустя 141 сек.

    static public function auto_load($classname) {

    $filename = strtolower($classname);

    if (file_exists(APPATH.'libs/'.$filename.'.php')) {
    require_once(APPATH.'libs/'.$filename.'.php');
    }
    elseif(file_exists(APPATH.'libs/'.$filename.'/'.$filename.'.php')) {
    require_once(APPATH.'libs/'.$filename.'/'.$filename.'.php');
    }
    elseif(file_exists(SYSPATH.'libs/'.$filename.'.php')) {
    require_once(SYSPATH.'libs/'.$filename.'.php');
    }
    elseif(file_exists(SYSPATH.'libs/'.$filename.'/'.$filename.'.php')) {
    require_once(SYSPATH.'libs/'.$filename.'/'.$filename.'.php');
    }
    else {
    throw new Exception("Loader: library '$name' not found");
    }
    }
  • phpdude

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

    Spritz Окт. 26, 2010, 11:50 п.п., спустя 35 минут 53 секунды

    throw new LoaderException("Loader: library '$name' not found");

    нельзя так делать, у тебя могут быть чужие либы, которые свой автолоадер ставят и по своему грузят, в итоге ты получишь ексепшн.

    чтоб классы можно было на лету на другие заменять, как в коде выше, ни к чему не пришел.

    фабричный реестр?)
    Сапожник без сапог
  • soul

    Сообщения: 790 Репутация: N Группа: Кто попало

    Spritz Окт. 27, 2010, 12:43 д.п., спустя 52 минуты 35 секунд


    нельзя так делать, у тебя могут быть чужие либы, которые свой автолоадер ставят и по своему грузят, в итоге ты получишь ексепшн.


    ну а что тогда делать? не игнорить же


    фабричный реестр?)


    вот от него я и избавился, сделав автолоад.

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