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