Форум → Программирование → Пыхнуть хотите? → Готовые решения → Ещё одна реализация autoload
Ещё одна реализация autoload
-
-
Окт. 25, 2010, 10:24 п.п., спустя 7 минут 12 секунд
SpartakuS, лучше чем забаненый)Сапожник без сапог -
-
-
Окт. 26, 2010, 1:21 д.п., спустя 2 часа 39 минут 25 секунд
не тот цвет, не тот)))))))))))))))))))))))))))))))))))))))) -
Окт. 26, 2010, 7:58 д.п., спустя 6 часов 36 минут 56 секунд
ivanscm, я вас подружил, живите мирно пластилины)
Я синий властилин! Пасибо Дуд, поржали :)С возвращением, Пiха! hyperoff.ru - качественный хостинг php -
Окт. 26, 2010, 6:37 п.п., спустя 10 часов 39 минут 12 секунд
Синий властилин!
властЕлин
RTFM по русскому языку -
Окт. 26, 2010, 6:38 п.п., спустя 1 минуту 8 секунд
Не меняйте мне подпись! Слыхал, ДУД?!
нет не слышалСапожник без сапог -
Окт. 26, 2010, 6:42 п.п., спустя 3 минуты 20 секунд
phpdude, разве не ты мне подпись поменял? Вот больше не меняй. =) -
Окт. 26, 2010, 6:43 п.п., спустя 1 минуту 11 секунд
Hight, нет не я, ты про чо?Спустя 21 сек.я тебе подпись под аватаркой делал, как ваше величество просило и всеСпустя 11 сек.ну и банил для профилактики :)Спустя 20 сек.Вам был закрыт доступ к форуму
:D
Обратитесь к вебмастеру или администратору форумов за дополнительной информациейСапожник без сапог -
Окт. 26, 2010, 6:44 п.п., спустя 1 минуту 7 секунд
phpdude, да вот эту подпись:Не меняйте мне подпись! Слыхал, ДУД?!
Мне кто-то вместо этого какую-то хуйню написал. И молчит!!!
А Ты ДУД всё верно сделал. Молодец! =) -
-
Окт. 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");
}
} -
Окт. 26, 2010, 11:50 п.п., спустя 35 минут 53 секунды
throw new LoaderException("Loader: library '$name' not found");
нельзя так делать, у тебя могут быть чужие либы, которые свой автолоадер ставят и по своему грузят, в итоге ты получишь ексепшн.чтоб классы можно было на лету на другие заменять, как в коде выше, ни к чему не пришел.
фабричный реестр?)Сапожник без сапог -
Окт. 27, 2010, 12:43 д.п., спустя 52 минуты 35 секунд
нельзя так делать, у тебя могут быть чужие либы, которые свой автолоадер ставят и по своему грузят, в итоге ты получишь ексепшн.
ну а что тогда делать? не игнорить же
фабричный реестр?)
вот от него я и избавился, сделав автолоад.
Пожалуйста, авторизуйтесь, чтобы написать комментарий!