![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| CyClon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 3.12.2005 Репутация: нет Всего: 4 |
Собственно, медленно, очень медленно, но верно продвигается написание собственной CMS
Собственно, хочу подискуссировать на эту тему %) Может кто-то уже на этом, как говориться, "собаку съел" и поделится советами? |
|||
|
||||
| mishaSL |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1046 Регистрация: 10.1.2007 Где: Санкт-Петербург Репутация: нет Всего: 54 |
CyClon, если у тебя множество функций и их можно разделить по смысловому или какому-то еще понятному и удобному для тебя принципу, то тогда можно и удобнее будет раскидать все функции по классам и объявить методы статическими. Если же твой набор функций никак не разделить по какому-либо критерию, то смысла все их объединять в класс нет.
Пример:
-------------------- Лучший способ научиться программированию - это посмотреть как это делают другие... |
|||
|
||||
| WolfON |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 604 Регистрация: 19.7.2004 Репутация: 1 Всего: 8 |
Не надо пихать ооп просто из-за идеи, если это не удобно.
Самый очевидный, простой и удобный способ - сделать класс, библиотеку функций, со статическими методами - нужными функциями, а его подгружать автолоадом. |
|||
|
||||
| CyClon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 3.12.2005 Репутация: нет Всего: 4 |
Ммм... Насколько я помню, __autoload срабатывает только при объявлении ($obj = new class) класса? Или при обращении к статическим методам тоже?
|
|||
|
||||
| Anarki |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 326 Регистрация: 14.3.2005 Репутация: 1 Всего: 11 |
При вызове статических методов/получении статических свойств класса(без создания объекта) - тоже срабатывает в PHP5 Это сообщение отредактировал(а) Anarki - 27.11.2007, 22:18 |
|||
|
||||
| FractalizeR |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 273 Регистрация: 27.12.2007 Где: Россия/Москва Репутация: 1 Всего: 4 |
Я у себя такой автолоадер написал:
Имена классов в проекте такие: Fractal_MySQLDb_Connection. Файл, содержащий этот класс лежит в папке MySQLDb и называется Connection.class.php -------------------- Чтобы поблагодарить или наоборот поругать участника форума лучше пользоваться значками "+" и "-", изменяющими репутацию. Они находятся слева от поста под именем пользователя. |
|||
|
||||
| CyClon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 3.12.2005 Репутация: нет Всего: 4 |
Хм, интересная идея
Если имя класса не содержит "_" - делать include('kernel/classes/' . $className . '.class.php'), если содержит - входить в подкаталоги и инклюдить уже оттуда. Добавлено через 1 минуту и 23 секунды Ну, а по сабжу что посоветуете, кто как делает? Разбить функции по группам и загнать в классы? |
|||
|
||||
| GeneralElectric |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 797 Регистрация: 11.1.2008 Репутация: нет Всего: 16 |
||||
|
||||
| flashaa |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 796 Регистрация: 7.3.2006 Репутация: 1 Всего: 25 |
У Котерова примерно такая же идея. Вообще, если не ошибаюсь, такая идея хранения классов и их подгрузки взята из PEAR. Ведь там тоже классы называются HTML_Template, HTML_ .. к примеру. Не кажется ли слишком сложным? Думаю одна папка с классами будет удовлетворять всем требованиям. |
|||
|
||||
| CyClon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 3.12.2005 Репутация: нет Всего: 4 |
flashaa, как раз-таки одна папка не есть гуд, я об этом уже как-то думал. Подумай - есть класс DB и классы MySQL, MSSQL и еще куча подобных. Сбрасывать это все в одну папку (где будут храниться классы Convert, Agent, Log и т.п. неразумно). Будет разумнее так (опять же мое ИМХО):
Соотстветвенно, будет класс DB и будет класс DB_MySQL extends DB. Или у кого-то есть более рациональные предложения по именованию/размещения файлов классов в файловой системе? Это сообщение отредактировал(а) CyClon - 24.2.2008, 13:31 |
|||
|
||||
| flashaa |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 796 Регистрация: 7.3.2006 Репутация: 1 Всего: 25 |
CyClon, сколько всего будет классов? У меня до 20 доходит и не чувствуется неудобство.
|
|||
|
||||
| FractalizeR |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 273 Регистрация: 27.12.2007 Где: Россия/Москва Репутация: 1 Всего: 4 |
Думаю, аоборот, будет очень просто, красиво и логично. -------------------- Чтобы поблагодарить или наоборот поругать участника форума лучше пользоваться значками "+" и "-", изменяющими репутацию. Они находятся слева от поста под именем пользователя. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Для профи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |