Модульные PHP приложения, построенные по трехзвенной модели – вопросы создания

Alexxx

Guest
Модульные PHP приложения, построенные по трехзвенной модели – вопросы создания

Порекомендуйте, пожалуйста, хорошие источники информации по написанию модульных приложений на PHP. Интересует именно организация связей модулей между собой, а также с уровнями содержимого и представления.

Также буду рад материалам по продвинутому (advanced) использованию трехзвенной модели в PHP приложениях.

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

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

1-ый этап: Создание уровня содержимого - проектирование модели данных (напр. MySQL), и использование абстрактного слоя доступа к ней (у меня ADODB light)

2-ой: Создание логики приложения – написание модулей с двойственным интерфейсом (административным – интерфейсом управления модулем и пользовательским - интерфейсом представления модуля) а также ядра, которое занимается взаимодействием модулей между собой и с уровнями содержимого и представления.
Создание логики приложения – это как раз тот этап, который я не до конца ясно себе представляю, особенно, как наиболее эффективно его организовать.

3-ий: Уровень представления – класс, который занимается обработкой шаблонов представления. Раньше я был в восторге от Smarty, но он является слишком объемным и «навороченным» для реального использования имхо.

Интересует также организация эффективной структуры директорий приложения, построенного по трехзвенной модели, для обеспечения максимальной безопасности, и организация эффективного взаимодействия между различными уровнями.

Нужны источники по которым можно разобраться с вышеописанными проблемами и их решением средствами PHP.

Хотя темы похожей тематики уже и не раз подымалась, но они ориентировались в основном на чем-то конкретно, а меня интересуют именно то, что я описал.

Ну не нашел я материалов, которые бы могли сделать проектирование и реализацию модульного программирования на PHP с использованием трехзвенной модели кристально чистым для понимания и практической реализации.

Источники которые больше всего понравились это «Профессиональное РНР программирование 2-е издание» и книга Дмитрия Котерова.
 

atv

Новичок
Ну не нашел я материалов, которые бы могли сделать проектирование и реализацию модульного программирования на PHP с использованием трехзвенной модели кристально чистым для понимания и практической реализации.
Скорее всего и не найдёш, так как это частный случай ОО Проектирования. Нужно почитать любой материал по ОО Проектированию, например http://books.kulichki.net/data/c/c/ - как по мне, один из самых лучших.

Создание логики приложения – это как раз тот этап, который я не до конца ясно себе представляю, особенно, как наиболее эффективно его организовать.
А когда освоиш способы декомпозиции, выделения абстракций и создания иерархий, то сможеш провести анализ своей задачи, а по задаче и проектирование и реализация станут более понятными.

Что касается трёхзвенной модели, то это результат проектирования по результатам анализа вполне конкретной задачи. Т.е. пытаться понять и применить её в обратном порядке чем анализ->проектирование->реализация не имеет смысла. Да, некоторые проектные решения могут подойти к другим задачам, но чтобы убедиться в этом, в любом случае, нужно сперва провести анализ задачи, а потом проверить применимость проектного решения в данном конкретном случае.

Как ни крути, нужно научиться анализу. По вышеприведенной ссылке это можно сделать.
 

_RVK_

Новичок
Alexxx
нет ничего что может сделать твое понимание кристально чистым. у MVC столько трактовок, и рализаций, что структурировать все это не получится никак. Читай фаулера, банду четырех, посмотри существующие фреймвеки, и пытайся реализовать. Все равно 3-5 раз придется переписывать :)
 

Alexxx

Guest
Что такое банда четырех?

Конечно не очень радует то что переписывать несколько придется, хотя это не минуемо, фреймворки без сомнения просмотрю, уже занимался этим, но сложновато из чужого рабочего большого по объему приложения выделить концепцию взаимосвязи чтобы перенести ее в свое приложение, это реально, но это не элементарная задача и требует времени. Но что поделать, буду разбираться…

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

Что касается схемы приведенной atv анализ->проектирование->реализация , то это стандартная схема создания не только трехзвенных приложений, и нарушить ее следование вряд ли получиться, проектирование нельзя начать без анализа, а реализацию без проектирования можно начать только создавая приложения уровня гостевой книги имхо, поэтому учитывая, что уровни содержимого и представления уже относительно готовы (ADODB и Smarty) анализ проектирование и реализация будет в основном касаться уровня логики.
 

Alexxx

Guest
http://books.kulichki.net/data/c/c/ и Fowler - Patterns of Enterprise Application Architecture

Насколько я понял материалов по описанию модульного программирования именно на PHP и реализации MVC на PHP вообще нет (судя по предложеным книгам).

есть у меня еще книги
Programming with Objects: A Comparative Presentation of Object-Oriented Programming with C++ and Java

Erich Gamma Richard Helm Ralph Johnson John Vlissides - Design Patterns Elements of Reusable Object-Oriented Software

тут описывается создание простенькой CMS на PHP:
wiley&sons - secure php development - building 50 practical applications
 

_RVK_

Новичок
Alexxx
Полного разжевывания паттренов на PHP я не встречал. Обычно примерв на спп или жаве, а там уж сам более или менее удачно переносишь на пхп. Я вот как раз сейчас сижу и пытаюсь реализовать на пхп что-то подобное паттрену прокси.
 

syfisher

TDD infected!!
Как хорошее пособие по паттернам на PHP и по введению в TDD могу порекомендовать книгу J.Sweat "Guide to PHP Design Patterns". По-моему, ее сейчас очень легко найти в сети. Написана просто, полно кода, все разжевано - в самый раз.
 

BeGe

Вождь Апачей, блин (c)
А там примеры большинство только с использованием php4 что не есть хорошо -(.
 

syfisher

TDD infected!!
BeGeВсе там нормально. И для php4, и для php5. Автор везде дает комментарии по тому, как код будет меняться для различных версий. Все равно другой книги такого содержания и уровня нет.
 

texrdcom

Новичок
Почему наши деятели которые пишут книги о php не напишут такую книгу ?, а то блин сто книг в которых разжован ман с примерами которые не всегда работают :)
 

Alexxx

Guest
http://www.sitepoint.com/forums/showthread.php?t=184548

http://www.sitepoint.com/forums/showthread.php?t=78687

В этих англоязычных топиках проходило активное обсуждение MVC и полезных ресурсов PHP там можно найти много чего полезного.
 
Сверху