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 :: Структура сайта (not mvc)

 PHP.SU

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


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

> Без описания
malina95
Отправлено: 12 Мая, 2014 - 16:16:27
Post Id



Новичок


Покинул форум
Сообщений всего: 46
Дата рег-ции: Окт. 2012  
Откуда: Украина, Донецк


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




Привет, коллеги!

Если что, меня зовут Влад, я сюда давно не заходил)))

В общем, интересует вопрос о создании архитектуры сайта без mvc.

На данный момент, я делаю по аналогии с ниже представленной архитектурой:
Цитата:

Application
--Shop
----Modules
------ShopModules.php(abstract Modules - системный класс для передачи объектов)
----IndexPage.php
--Admin
----...
Core
--Config
--Cache
--DataBase
..etc..
.htaccess
index.php
manage.php(обработчик всех запросов)


router у меня настроенный только на гет запросы(чпу берутся из конфига), хочу сделать рест роутер, но тогда не могу додуматься каким образом делать обработчики и где их хранить, как вызывать, если пример IndexPage.php выглядит так:

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4. use Application\App\Modules\FrontModules;
  5.  
  6. class IndexPage extends FrontModules {
  7.        
  8.         public function getTitle() {
  9.                 return 'Интернет-Магазин Пряслице | Пряжа для вязания';
  10.         }
  11.        
  12.         public function getDescription() {
  13.                 return 'Интернет-Магазин Пряслице - Пряжа для вязания';
  14.         }
  15.        
  16.         public function getKeywords() {
  17.                 return 'Интернет-Магазин Пряслице - Пряжа для вязания';
  18.         }
  19.        
  20.         public function getTop() {
  21.                 //return $this->view->display('front_banner');
  22.         }
  23.        
  24.         public function getMiddle() {
  25.                 return $this->getFrontFilters([1, 3]);
  26.         }
  27.        
  28.         public function getBottom() {
  29.                 return 'content bottom';
  30.         }
  31.        
  32. }
  33.  


FrontModules наследуется от Modules, у которого есть метод для сбора данных, тоесть getTitle etc... это абстрактные методы определяющие обязательные данные страницы.

Вызов страницы происходит по такому типу:

PHP:
скопировать код в буфер обмена
  1.  
  2. $router->add('/', [
  3. 'module' => 'shop',
  4. 'page' => 'index'
  5. ]);
  6.  


Если поменять роутер на rest, то можно будет использовать множество методов передачи данных, и поэтому, можно будет не ограничиваться одним массивом, можно будет сделать closure и string вызовы экшенов.

Прошу помощи в улучшении архитектуры, но не убирая структуру классов страниц
(Добавление)
Народ, ну посоветуйте хоть что-нибудь путное пожалуйста...

Если вам не хватает какой-то инфы, то скажите, всё расскажу и покажу на пальцах.

Пожалуйста...
 
 Top
caballero
Отправлено: 12 Мая, 2014 - 17:22:07
Post Id


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


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


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




чтобы советовать нужно как минимум понимать проблемму


а вообще непонятно почему страница наследуется от некоего модуля который занимается сбором данных
отсутствие MVC не означает что надо все свалить в кучу


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
malina95
Отправлено: 12 Мая, 2014 - 18:31:25
Post Id



Новичок


Покинул форум
Сообщений всего: 46
Дата рег-ции: Окт. 2012  
Откуда: Украина, Донецк


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




caballero пишет:
чтобы советовать нужно как минимум понимать проблемму


а вообще непонятно почему страница наследуется от некоего модуля который занимается сбором данных
отсутствие MVC не означает что надо все свалить в кучу


Проблема в том, что классы страниц не могут быть обработчиками. Они просто отрисовывают страницу, и сборщик данных не собирает все в кучу, он собирает то, что отрисовывает класс страницы в шаблон, тоесть методы getTitle, getKeywords, ... getBottom, а класс FrontModules может переопределить метод сборки чтобы добавить или удалить данные из шаблона, так же может сменить шаблон.

А что не понятно в проблеме?
 
 Top
caballero
Отправлено: 12 Мая, 2014 - 18:37:44
Post Id


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


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


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




Цитата:
Проблема в том, что классы страниц не могут быть обработчиками.

как раз они и должны быть обработчиками
на фига они тогда вообще
выводить страницу может и какой нибудь шаблонизатор

Цитата:
А что не понятно в проблеме?

не понятно где вообще проблема. Не считая проблемы отсутствия у вас необходимых знаний и опыта.


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Мелкий Супермодератор
Отправлено: 12 Мая, 2014 - 18:38:36
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




caballero пишет:
отсутствие MVC не означает что надо все свалить в кучу

Тем более, что показан типичнейший MVC с тонкими/вырожденными моделями.


-----
PostgreSQL DBA
 
 Top
malina95
Отправлено: 12 Мая, 2014 - 18:55:18
Post Id



Новичок


Покинул форум
Сообщений всего: 46
Дата рег-ции: Окт. 2012  
Откуда: Украина, Донецк


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




Как раз в mvc мне и не нравится копипаст при работе с шаблоном...

Вообщем ясно, сделаю папку Libs в корне, и буду выходить из проблемы
 
 Top
caballero
Отправлено: 12 Мая, 2014 - 19:46:24
Post Id


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


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


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




Цитата:
Как раз в mvc мне и не нравится копипаст при работе с шаблоном

копипаст от неграмотного проектирования. MVC там или нет сути дела не меняет


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« CMS и фреймворки »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB