| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Для профи > Функции всеместного применения |
| Автор: CyClon 27.11.2007, 18:35 |
| Собственно, медленно, очень медленно, но верно продвигается написание собственной CMS Собственно, хочу подискуссировать на эту тему %) Может кто-то уже на этом, как говориться, "собаку съел" и поделится советами? |
| Автор: mishaSL 27.11.2007, 19:03 | ||
| CyClon, если у тебя множество функций и их можно разделить по смысловому или какому-то еще понятному и удобному для тебя принципу, то тогда можно и удобнее будет раскидать все функции по классам и объявить методы статическими. Если же твой набор функций никак не разделить по какому-либо критерию, то смысла все их объединять в класс нет. Пример:
|
| Автор: WolfON 27.11.2007, 19:39 |
| Не надо пихать ооп просто из-за идеи, если это не удобно. Самый очевидный, простой и удобный способ - сделать класс, библиотеку функций, со статическими методами - нужными функциями, а его подгружать автолоадом. |
| Автор: CyClon 27.11.2007, 19:58 |
| Ммм... Насколько я помню, __autoload срабатывает только при объявлении ($obj = new class) класса? Или при обращении к статическим методам тоже? |
| Автор: FractalizeR 27.12.2007, 20:09 | ||
Я у себя такой автолоадер написал:
Имена классов в проекте такие: Fractal_MySQLDb_Connection. Файл, содержащий этот класс лежит в папке MySQLDb и называется Connection.class.php |
| Автор: CyClon 24.2.2008, 11:02 |
| Хм, интересная идея Если имя класса не содержит "_" - делать include('kernel/classes/' . $className . '.class.php'), если содержит - входить в подкаталоги и инклюдить уже оттуда. Добавлено через 1 минуту и 23 секунды Ну, а по сабжу что посоветуете, кто как делает? Разбить функции по группам и загнать в классы? |
| Автор: GeneralElectric 24.2.2008, 12:16 | ||
Тебя обманули. Это не имеет никакого отношения к ООП. |
| Автор: flashaa 24.2.2008, 12:51 |
У Котерова примерно такая же идея. Вообще, если не ошибаюсь, такая идея хранения классов и их подгрузки взята из PEAR. Ведь там тоже классы называются HTML_Template, HTML_ .. к примеру. Не кажется ли слишком сложным? Думаю одна папка с классами будет удовлетворять всем требованиям. |
| Автор: CyClon 24.2.2008, 13:29 | ||
flashaa, как раз-таки одна папка не есть гуд, я об этом уже как-то думал. Подумай - есть класс DB и классы MySQL, MSSQL и еще куча подобных. Сбрасывать это все в одну папку (где будут храниться классы Convert, Agent, Log и т.п. неразумно). Будет разумнее так (опять же мое ИМХО):
Соотстветвенно, будет класс DB и будет класс DB_MySQL extends DB. Или у кого-то есть более рациональные предложения по именованию/размещения файлов классов в файловой системе? |
| Автор: flashaa 27.2.2008, 18:28 |
| CyClon, сколько всего будет классов? У меня до 20 доходит и не чувствуется неудобство. |
| Автор: FractalizeR 8.3.2008, 13:05 | ||
Думаю, аоборот, будет очень просто, красиво и логично. |