По такому принципу подключаются многие классы.
Но как я думаю возможно есть способ попроще так как у меня около 100
классов, и под каждый писать функцию наподобие update нерационально.
К тому-же как я понимаю все эти функции будут хранится в памяти.
Хелпните
Упс забыл добавить, функция автологардер не подойдёт.
Так как cms должна стабильно работать на разных версиях php.
Покинул форум
Сообщений всего: 9
Дата рег-ции: Февр. 2011
Помог: 0 раз(а)
Напишу попроще у меня cms по принципу mvc.
есть папка систем в ней реализованы все возможные классы которые мне могут понадобится.
Так же есть папка юзер в которой содержатся папки модель и вывод.
В модели создаются php файлы которые наследуют класс парсер тот в свою очередь наследует класс логардер.
На одном из форумов по php как то видел реализацию кода таким образом
что класс присоединяется только когда его запрашивают.
Пример
И в описание данного кода было написано что пока нет запроса данный класс не где не существует и подключается только когда его запрашивают.
При этом сам код всего строчек 20 занимал.
Тогда просто как бы не задумывался что буду ОПП заниматся, а вот сейчас надо и не могу найти. Уже все посковики перевернул.
Okula
Отправлено: 29 Февраля, 2012 - 08:56:42
Участник
Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010
Помог: 42 раз(а)
Тебе же написали:
spl_autoload_register()
или просто __autoload()
digi
Отправлено: 29 Февраля, 2012 - 12:08:59
Посетитель
Покинул форум
Сообщений всего: 406
Дата рег-ции: Янв. 2012
Покинул форум
Сообщений всего: 19
Дата рег-ции: Июнь 2010
Помог: 0 раз(а)
radlif пишет:
Ну вот так как ответов нет сделал сам
Теперь жду ваших коментов
Какие могут быть проблемы и в чём я не прав
Я думаю более разумнее будет вынести метод loadDB класса loader как простую функцию, либо сделать метод статическим. Предпочтительней первый вариант конечно
+ надо сделать вызов trigger_error, либо отлавливать исключение, т.к. если класс не найден, дальнейшее выполнение программы нежелательно.. В твоем случае ты просто проверяешь, существует ли файл с классом. И если существует - возвращаешь экземпляр, а если нет - ничего не возвращаешь, но все равно у тебя будет попытка вызова метода addS
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Помог: 353 раз(а)
А я добавлю:
1) Подключать и после отработки тут же уничтожать классы - вобще "не айс"...
2) Сколько раз вы будете к диску обращаться?
3) А если нужно будет "родить" сотенку моделек для списка чего либо?
4) А где кеширование результата работы класса/метода, зачем же его повторно вызывать?
5) Автолоадеру нужно заранее передать окружение, в котором он будет искать различные классы: плагины, вьюхи, контроллеры...
6) Автолоадером и собственно единым хранилищем всех инициализированных классов может стать "фабрика".
7) откажитесь передавать что-то куда-то явно по ссылке (тот же ваш return) - будет куча следов с рекурсией ссылок, и если вы решите все-же освободить память, то не сможете удалить объект, т.к. на него где-то остались ссылки. С этим какраз отлично справляется "фабрика".
trigger_error("Данный класс несуществует!",E_USER_ERROR);
}
}
}
else
{
return$Rez[$NC];
}
}
}
DeepVarvar у меня в каждом классе есть функция деструкт, пока проблем по уничтожению ненужных классов не наблюдал
sanyoksanya
Отправлено: 08 Августа, 2014 - 21:14:33
Новичок
Покинул форум
Сообщений всего: 4
Дата рег-ции: Авг. 2014
Помог: 0 раз(а)
А ты не думал над тем, если в разных папках (sql и mod в данном случае) будет одинаковый по названию файл класса, что будет тогда, и какой из них программа выберет первым, это уже вопрос. Ну ладно две папки, а если в нескольких папках будет одинаковый по названию файл класса?
caballero
Отправлено: 09 Августа, 2014 - 02:35:41
Активный участник
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
Вася, зачем подымать тему двухлетней давности только чтобы чушь написать?
потрудись погуглить PSR-0
Покинул форум
Сообщений всего: 4
Дата рег-ции: Авг. 2014
Помог: 0 раз(а)
Ваня, а я не тебе писал, я пишу для тех, кто попадет в интернете на эту тему так, как я, и просмотрит всю переписку. Так что не советуй когда тебя не просят.
radlif
Отправлено: 09 Августа, 2014 - 10:39:13
Новичок
Покинул форум
Сообщений всего: 9
Дата рег-ции: Февр. 2011
Помог: 0 раз(а)
Во какую древнюю тему подняли))
Вообще то я ко всем классам всегда делал префикс,
к примеру:
BDconekt, SUSpars и тд....
Ща же это всё абсолютно неактуально да и на самописной смс не заработаешь так как нэт бесплатными под завязку забит...
tato
Отправлено: 11 Августа, 2014 - 01:06:39
Посетитель
Покинул форум
Сообщений всего: 468
Дата рег-ции: Сент. 2011 Откуда: Владивосток
Помог: 8 раз(а)
Это тема для топа!!!
Первое сообщение автора: "Пишу свою CMS"
спустя два года: "...на самописной смс не заработаешь так как нэт бесплатными под завязку забит"
Это прям должно быть на входе форума, мож подействует на кого (=
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.