![]() |
+7 (495) 229-0436 | ![]() |
shopadmin@itshop.ru | 119334, г. Москва, ул. Бардина, д. 4, корп. 3 | ![]() |
![]() |
![]() |
|
|
Разработка архитектуры приложения с использованием инверсии зависимости16.11.2012 12:26
Elfet
В этой статье я хочу ещё раз поговорить о разработке архитектуры приложения с использованием инверсии зависимости (Inversion of Control).
Отлично, теперь нам нужна реализация этого интерфейса. Для начала будем хранить информацию в файлах. Создадим класс FileStorage. FileStorage.php
Теперь создадим класс пользователя
Теперь чтобы создать экземпляр класса User:
Отлично, а что если какой-нибудь другой программист захочет вместо файлов использовать базу данных? Для этого ему нужно создать класс DatabaseStorage, реализовать интерфейс StorageInterface и заменить все вхождения FileStorage. Но изменение библиотеки сулит проблемы с её обновлениями. Что бы этого избежать, давайте, введём опции:
Теперь что бы заменить FileStorage на DatabaseStorage, нужно всего лишь указать это в опциях:
То, что мы сейчас назвали опциями, на самом деле является контейнером IoC. Именно такая архитектура позволяет строить наиболее гибкие приложения и библиотеки. Теперь она называется Granula. Любая библиотека может быть модулем для гранулы. Например из компонентов Symfony Components можно создать MVC приложение на подобии самой Symfony. Каждый модуль гранулы должен быть описан своим классом:
Например, описание библиотеки, которую мы создавали в начале статьи будет таким:
Можно даже сократить ещё больше:
Но в таком случае не будет работать ленивая загрузка классов, так как FileStorage будет загруженInversion(библиотекой IoC контейнеров) сразу для определения его интерфейсов.
Пример описания модуля для Symfony Routing Component
Теперь можно создавать экземпляры как в Symfony при помощи контейнера:
Либо при момощи фабрики (при использовании trait):
Затем все необходимые модули указываются в Front Controller:
И в файле index.php запускаются:
Я оформил все необходимые модули для создания полноценного MVC приложения. Что бы поиграться с ним используйте Composer для установки:
В него включены:
Ссылки по теме |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
О нас |
Интернет-магазин ITShop.ru предлагает широкий спектр услуг информационных технологий и ПО.
На протяжении многих лет интернет-магазин предлагает товары и услуги, ориентированные на бизнес-пользователей и специалистов по информационным технологиям. Хорошие отзывы постоянных клиентов и высокий уровень специалистов позволяет получить наивысший результат при совместной работе. В нашем магазине вы можете приобрести лицензионное ПО выбрав необходимое из широкого спектра и ассортимента по самым доступным ценам. Наши менеджеры любезно помогут определиться с выбором ПО, которое необходимо именно вам. Также мы проводим учебные курсы. Мы приглашаем к сотрудничеству учебные центры, организаторов семинаров и бизнес-тренингов, преподавателей. Сфера сотрудничества - продвижение бизнес-тренингов и курсов обучения по информационным технологиям.
|
119334, г. Москва, ул. Бардина, д. 4, корп. 3 +7 (495) 229-0436 shopadmin@itshop.ru |
|
© ООО "Interface Ltd." Продаем программное обеспечение с 1990 года |