Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

ОО Проектирование CMS

4.7K
01 июня 2008 года
bobik02
140 / / 11.09.2007
В общем приблизительно такая задача(придумана мной для меня):
Вложил в "Миниатюры" UML-диаграму.

Ну и сам проект: "изобретения колеса"
Я представляю(и могу), это все написать на структурно-функциональном.
Но ключевое здесь: : Практика и первый шаг на встречу ООП ...

Естественно хочу попробовать объектно-ориентированный подход к разработке.

Страница будет такая, Вложил в "Миниатюру" 2.

( Сверестаное html-представления есть, блоки разбиты на таблицы, не фреймы)
ЧПУ будет вида ?cat=1&page=1 ... (Ну вообще приблизительно так)

контент-менеджер, для зарегистрированных пользователей будет приблизительно таким: Вложил в "Миниатюру" 3

Админ панель(а там будет управления Меню-Навигация, Управления Пользователями и Статьями), например уголок для статьи будет таким: как на "Миниатюре" 4

(ну конечно же в реальности там будет чуть больше полей, и расширенно!)

Только вот в голове куча мыслей ... (Никак собрать не получается)

Как это организовать(на ООП,) от чего мне оттолкнуться ? :confused:
(В частности интересует модель MVC, возможно зенд фраймворк)

Подскажите хотя бы сам принцип как это все должно работать на ООП ? :rolleyes:
(как спроектировать правильно систему в целом, разбить на классы, отделить логику от view и т.к)
По поводу проектирования БД - это подсказывать не нужно! (это я сделаю сам smile )

Конечно же при разработке программы я могу решать возникающие проблемы самостоятельно,
основываясь на собственном опыте, используя свой интеллект, удачу, потребляя
большое количество минеральной воды и любых других напитков. :p

Но для этого простого колеса, хотелось бы использовать уже некоторые готовые решения(подшипники,гайки и т.к.), посоветуйте какие ? (только не полностью готовая cms подобного вида, а для этого колеса подрядные элементы).

Если у вас есть свободное время поделиться опытом, натолкнуть на мыслю, пнуть носом. Буду весьма признателен! ;)
15
02 июня 2008 года
shaelf
2.7K / / 04.05.2005
На самом деле ничего сложного нет. Берёшь тот же ZF (если хочешь, хотя лучше начать с него). Далее на бумаге рисуешь все элементы, которые тебе нужны (вернее их функционал). Понимаешь, что в них есть общего. Выделяешь эту "общность" в абстракцию и реализуешь. Собсно как делел я...
Код:
class AbstractController extends (Если это зенд, то Zend_Controller_Action... кажись)))
{
    protected $_db;
    protected $_view;
    // и т.д., выделяешь тут всё то, что тебе нужно будет для работы
}

//Это мы будем использовать для добавления/удаления/редактирования
class ControllController extends AbstractController
{
    public function saveAction()
    public function deleteAction()
}
//Будет отвечать за отдачу контента списком или просмотр одного объекта
class ListController extends ControllController
{
    public function listAction();
    public function viewAction();
}

Вот так мы получаем модель, в которую нужно подставить необходимые данные для управления моделью. Ровно так сделано у меня. В конце приведу пример конкретной реализации конечного класса (скажем новости)

 
Код:
class NewsController extends ListController
{
    protected $_modelName = 'News';
    protected $_pageSize     = 20;
}

Т.е. я просто указываю имя модели (таблица в БД) и размер странички (для постраничного вывода.
4.7K
02 июня 2008 года
bobik02
140 / / 11.09.2007
shaelf ну это для Вас ничего сложного :)
А вот, у меня первые шаги :rolleyes:

Я например выделил сущности:

* Пользователь (User)
* Администратор (Admin)
* Система (Aplication)
* Вход В Систему (Access)
* Статьи (Articles)
* Меню (Menu)

(я так понял эти сущности в отдельные классы реализовать)

по поводу паттерна MVC (я пока что сложновато представляю это на практике)
Но есть вопросы(по частям):
Model(Модель) - я так понял надо по сути сделать все классы которые будут описывать таблицы в БД. (например класс для User) . или не правильный подход ?

View(Представление) - теория гласит: Это классы которые отвечают за формирования ответов(представления) браузеру.
Вот тут то я на практике не представляю это дельце:confused:

Controller(Контроллер) - так понял это Класс который по сути будет говорить как и что делать в зависимости от пришедших в него параметров.

Стоит ли делать отдельный объект(класс) для работы СУБД MySQL ?

---
Хотел бы копнуть в сторону ZF, да как то не по себе становиться :D (страх что ли)
364
02 июня 2008 года
Xupypr
148 / / 20.04.2000
Крайне интересная тема. Тоже пытаюсь разобраться во всем этом.
15
02 июня 2008 года
shaelf
2.7K / / 04.05.2005
View - компонент отвечающий за представление. В "ламерском" подходе - это шаблонизатор (смарти). В идеале... Контроллер отдаёт какие-то данные и одна часть view должна определить тип данных (pdf, html и т.д.), другая - отобразить.

Если изучишь ZF, то многие вопросы отпадут.
4.7K
02 июня 2008 года
bobik02
140 / / 11.09.2007
Ладно, и на том спасибо! Буду курить:)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог