Здраствуйте, пришло время второй лекции...
Для начала попробуем спроектировать структуру каталога для реализации нашего веб приложения с использованием MVC. Потом определим вспомогательные и основные классы.
Дак что же нам нужно:
- Точка входа в приложение, а точнее файл index.php.
- Надстройка над сервером, а точнее .htaccess.
- Системные классы, с возможностью расширения с помощью модулей и простой подмены.
- Основные системные функции, а точнее 1 функция __autoload. (Кто не знает что это за функция, поищите в гугле).
- Модули. (как же без них)
- Ну и конечно-же классы нашего приложения, контроллеры, модели и представления.
И еще, нам ведь хочется использовать наши наработки в разных проектах и использовать их с легкостью и с наименьшими усилиями. Для реализации этой потребности, нам просто будет необходимо отделить основные классы и модули от приложения.
Структура проекта:
- app (папка нашего приложения)
|- config (файлы конфигурации)
|- classes (переопределенные системные классы + свои)
|- controllers (контроллеры)
|- models (модели)
|- views (представления) - modules (об этой папке поговорим потом)
- core (системные файлы)
|- classes (классы ядра)
|- functions.php (функции ядра) - index.php
- .htaccess
Вспомогательные классы:
- Observed и Observer - Я надеюсь вы выполнили прошлое задание и почитали о паттерне Observer, вот его то мы тут и будем реализовывать, хотя и не так стандартно.
- Object - Класс, который должен наследовать любой объект, сдесь мы будем реализовывать общие функции.
- Registry - Класс, который будет замещать паттерн Singleton, в котором я попросил разобраться в прошлый раз.
- Configurator - Простой класс, реализующий загрузку и сохранение конфигураций для наших классов. (на форуме я готовую реализацию уже выкладывал)
Основные классы:
- Starter - Как вы уже наверное поняли по названию, это тот самый класс, который будет запускать наше приложение. Также он будет подгружать необходимые модули.
- Router - Сердце нашего приложения. Роутер должен определить контроллер и его метод, который будет формировать нужную страницу, исходя из запроса пользователя.
- Controller - Родительский класс для компонетов приложения.
- Model - Родитель моделей.
- View - Как таковых классов для представлений мы реализовывать не будем, поэтому этот класс и не является абстрактым, он будет реализовывать формирование вывода (страничек, которые в конечном итоге видны пользователю).
Это промежуточная лекция, между теорией и практикой, поэтому заданий не будет...
Спустя 2 часа, 48 минут, 20 секунд (23.11.2009 - 12:10) Argnist написал(а):
Честно говоря непонятно, зачем нужны "наблюдатель" и "одиночка"(
Спустя 1 час, 32 минуты, 57 секунд (23.11.2009 - 13:43) Alehandr написал(а):
Argnist
На практике надеюсь поймешь...
На практике надеюсь поймешь...
Спустя 2 часа, 14 минут, 45 секунд (23.11.2009 - 15:58) Joker написал(а):
Я не понел, смысл этой лекции) чтоб мы структуру в папке сделали что ли???
Спустя 17 часов, 44 минуты, 15 секунд (24.11.2009 - 09:42) Alehandr написал(а):
Joker
Маленькая подготовка к практике.
Маленькая подготовка к практике.
