Alexandre
PHPПенсионер
Шаги к MVC или как правильно (или неправильно) сделать проект
Идеалогия построения WEB-проекта:
Проект состоим из Модулей, классов поддержки (общих для всех модулей), шаблонов и вспомогательных и ini файлов.
Проект разбивается на модули. Модуль представляет программный код, содержащийся в одном файле, который содержит обобщенные законченные действия для одного субъекта.
Более простыми словами: Модуль "Пользователи" содержит все действия по отношению к "Пользователям", а поточнее:
- регистрация,
- редактирование профайла
- удаление
Модуль "Товары" содержит все действия по отношению к "Товарам"(изменение, заведение, удаление )
Каждый модуль представляет собой класс, произведенный от австрактного класса TModule
Каждый модуль имеет внешнее представление ввиде шаблона (я исп. XSLТ но можно и Smarty)
На один модуль один шаблон. Шаблон имеет имя, соответствующее имени модуля, но др. расширение *.xsl и лежит в отдельном каталоге /xsl
При необходимости, шаблон может иметь *.ini файл, имя которого соответствует имени модуля с др. расширением,
но сам *.ini файл лежит в каталоге /ini
По этому же принципу могут быть файлы css и js
Общая структура проекта приблизительно такая
..
/images
/xsl
/ini
/css
*.php
Подробнее об class Users extend TModule {} :
Класс имеет методы, которые соответствуют действиям. Действия (actions) выполнябтся над "субъектами", например Модуль "Пользователи" содержит все действия:
( регистрация, редактирование профайла, удаление) которые соответствуют action = reg, action = edit, action = delete.
При получении модулем каждого действия, происходит его анализ и запускается соответствующий метод, т.е. в нашем случае класс должн содержать методы:
- reg
- edit
- delete.
Соответственно в HTML формах должны быть скрытые поля пример: <input type=hidden name=action value=edit>
в ходе выполнения конкретного метода, формируются данные, которые потом оборачиваются в структуру:
<root>
<action error=[сообщение об ошибке]>[name method]</actiom>
<xmlData> ....</xmlData>
<root>
Так же в теге <root> может содержаться иная пользовательская или служебная информация в качестве аттрибутов.
Модуль каждого Xsl файла вызывают:
1) общий для всех страниц шаблон
2) шаблон метода, который указан в <action>[name method]</actiom>
метод print объекта TModule осуществляет:
- вычисление полного имени файла (поддиректории /xsl) шаблона
- парсинг
- вывод
Идеалогия построения WEB-проекта:
Проект состоим из Модулей, классов поддержки (общих для всех модулей), шаблонов и вспомогательных и ini файлов.
Проект разбивается на модули. Модуль представляет программный код, содержащийся в одном файле, который содержит обобщенные законченные действия для одного субъекта.
Более простыми словами: Модуль "Пользователи" содержит все действия по отношению к "Пользователям", а поточнее:
- регистрация,
- редактирование профайла
- удаление
Модуль "Товары" содержит все действия по отношению к "Товарам"(изменение, заведение, удаление )
Каждый модуль представляет собой класс, произведенный от австрактного класса TModule
Каждый модуль имеет внешнее представление ввиде шаблона (я исп. XSLТ но можно и Smarty)
На один модуль один шаблон. Шаблон имеет имя, соответствующее имени модуля, но др. расширение *.xsl и лежит в отдельном каталоге /xsl
При необходимости, шаблон может иметь *.ini файл, имя которого соответствует имени модуля с др. расширением,
но сам *.ini файл лежит в каталоге /ini
По этому же принципу могут быть файлы css и js
Общая структура проекта приблизительно такая
..
/images
/xsl
/ini
/css
*.php
Подробнее об class Users extend TModule {} :
Класс имеет методы, которые соответствуют действиям. Действия (actions) выполнябтся над "субъектами", например Модуль "Пользователи" содержит все действия:
( регистрация, редактирование профайла, удаление) которые соответствуют action = reg, action = edit, action = delete.
При получении модулем каждого действия, происходит его анализ и запускается соответствующий метод, т.е. в нашем случае класс должн содержать методы:
- reg
- edit
- delete.
Соответственно в HTML формах должны быть скрытые поля пример: <input type=hidden name=action value=edit>
в ходе выполнения конкретного метода, формируются данные, которые потом оборачиваются в структуру:
<root>
<action error=[сообщение об ошибке]>[name method]</actiom>
<xmlData> ....</xmlData>
<root>
Так же в теге <root> может содержаться иная пользовательская или служебная информация в качестве аттрибутов.
Модуль каждого Xsl файла вызывают:
1) общий для всех страниц шаблон
2) шаблон метода, который указан в <action>[name method]</actiom>
метод print объекта TModule осуществляет:
- вычисление полного имени файла (поддиректории /xsl) шаблона
- парсинг
- вывод