Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: MVC, модули, проектирование, OOP

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: проектировае web-приложений
AVTOKONNEKT
Отправлено: 05 Апреля, 2011 - 14:07:11
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Апр. 2011  


Помог: 0 раз(а)




Сразу предупреждаю я в php не гений, а в OOP тем более.
Сейчас стоят две задачи:
1) Сайт - простенький, просто выбор из БД и вывод статей.
2) Личный кабинет - идет как отдельный сайт.
Появилась мысль сделать свой framework, на котором сделать отдельно обе задачи.
На данный момент в framework реализовано:
1) Единая точка входа index.php
2) Из нее грузится engine.php
3) Он дефайнит переменные - папки и загружает список классов framework'а и инициализирует их
а) Logger - синглтон, отвечает за логгирование
б) Database - синлтон, отвечает за коннект базе
в) Loader - синглтон, отвечает за проверку и загрузку модулей (пока не ясно что грузить, читайте дальше)
г) Request - синглтон, отвечает за получение данных из Get, Post
д) DataManager - синглтон, отвечает за валидацию данных и за разбитие на массивы
е) Router - синглтон, отвечает за передачу управления опрееленному модулю (пока не ясно кому передает)

Не реализован, но нужен класс Template, отвечающий за отрисовку основного шаблона.


Касательно проекта "Сайт":
Есть модель БД.
Таблицы:
Block (информационные блоки, типа "Новости")
Category (категории статей)
CategoryBlock (сответствие блоков категориям)
Article (статья, Title, content, содержит CategoryID)
Menu (похоже на блок, но выводится не инфа, а ссылки на статьи данной категории)

То есть на данный момент грузится некий framework, который позвляет через классы загруженные engine.php работать с данными, логировать и т.д.
Первый вопрос состоит в том, достаточно ли этого, для дальнейшей разработки уже самих проектов (сайт и личный кабинет).
Второй вопрос это реализация логики. Мне пока не понятно как реализовать все в модулях. То есть если брать проект "сайт", то я думаю примерно так. Пользватель вводит в адресной строке адрес. Роутер разбирает данный адрес и запускает какой то модуль типа page, он в свою очередь, получает CategoryID, и ArticleID из роутера. Далее объект page создает объекты blocks, menu и article в сответствии с CategoryID и ArticleID, каждый из них себя выбирает из БД отрисовывает (типа MVC).
То есть в проекте "Сайт" передать управление одному модулю, а он уже все делает сам.

Не понятно как реализовать шаблоны, основной и допустим view для объекта article, block.
Сложность с взаимодействиями объектов в OOP и MVC в частности.
Сложность в понятии "модульность" и "компонентность" применительно к сайтам и php.

Вышеописанный framework, чем то похж на Joomla. Так вот в Joomla есть компоненты, модули, плагины + шаблон страницы.
Как это все там увязано?
Что грузится при обычном заходе на главную страницу компонент, модуль, плагины?
Какой компонент, модуль или плагин отрисовывает основной шаблон?
 
 Top
movEAX
Отправлено: 05 Апреля, 2011 - 14:30:36
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 750
Дата рег-ции: Авг. 2009  


Помог: 16 раз(а)




AVTOKONNEKT пишет:
Не реализован, но нужен класс Template, отвечающий за отрисовку основного шаблона.

twig

А вообще, перед тем как писать собственный фреймворк не помешало бы изучить уже существующие, особенно если ООП знаете не очень хорошо .


-----
армия.. самое убогое место
 
 Top
AVTOKONNEKT
Отправлено: 05 Апреля, 2011 - 16:40:38
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Апр. 2011  


Помог: 0 раз(а)




movEAX изучали frameworkи?
 
 Top
Stierus Супермодератор
Отправлено: 06 Апреля, 2011 - 12:12:52
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




Согласен с movEAX на 100%
дополнение-поправка, joomla -не фрэймворк, это cms ... из фрэймворков можешь посмотреть на Yii, CodeIgniter, Kohana, ZendFramework.
 
My status
 Top
AVTOKONNEKT
Отправлено: 06 Апреля, 2011 - 12:17:33
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Апр. 2011  


Помог: 0 раз(а)




http://wiki[dot]huihoo[dot]com/index.php?title=Joomla
Нашел то что хотел. Нужно реализовать Application. Хотя вопросы еще есть.

Joomla это CMS, но посмотрите на схему, которая по ссылке выше и вы увидите, что Joomla построена на собственном framework. А так Joomla можно считать web-application, который базируется на framework.
 
 Top
OrmaJever Модератор
Отправлено: 06 Апреля, 2011 - 13:54:02
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




http://ru[dot]wikipedia[dot]org/wiki/Framework
Фреймворк это обычно клас или несколько класов для упрощения написания кода. По сути любая cms написана на собственом фреймворке. Если в паблик фреймворках описан основной функционал который может понадобится пользователю то cms фреймворки разработчики пишут под свои нужды в своих cms (ничего лишнего). Можите покопатся в любом движке и увидите несколько основных файлов (класов) где идет основной функционал.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB