Сервисы
Структура сервисов для нашего приложения показана ниже:
|-- app/
|-- Services/ # Сервисы
|-- My/ # Сервисы для работы с XML, HHTP, строками, массивами и другие...
|-- MyService.php # Базовый класс для добавления сервисов
`-- Zf2Service.php # Класс для добавления `Zend` сервисов
Silex является не только фреймворком, но и сервисным контейнером. Он достигает этого, расширяя Pimple который обеспечивает очень простой сервисный контейнер.
Наше приложение содержит разные виды сервисов:
- Встроенные сервисы, которые поставляются Silex фреймворком
- Внешние сервисы, которые вы можете установить самостоятельно например, с помощью Symfony 2 компонентов
- Пользовательские сервисы, которые вы можете сами добавить в ваше приложение
- Сервисы Zend Framework 2, это дополнительные возможности известного фреймворка, которые также можно добавить в ваше приложение
Встроенные сервисы
Встроенные сервисы поставляются вместе с Silex фреймворком.
Это такие сервисы как: request, routes, controllers, dispatcher, resolver, kernel, request_context, exception_handler, logger и т.д.
Более подробно можно посмотреть здесь
Внешние сервисы
Внешние сервисы можно установить например, с помощью Symfony 2 компонентов vendor/symfony/symfony/src/Component/
.
Это делается с помощью Composer. Необходимый набор
компонентов нужно указать в файле composer.json
. Например, чтобы установить
все Symfony 2 компоненты, Monolog, Swiftmailer, Doctrine(DBAL) и
Doctrine(ORM) нужно сделать такую запись:
{
"require": {
...
"symfony/symfony": "^2.7",
"monolog/monolog": "^1.14",
"swiftmailer/swiftmailer": "^5.4",
"doctrine/dbal": "^2.5",
"doctrine/orm": "^2.5",
...
},
...
}
Пользовательские сервисы
Пользовательские сервисы находятся здесь app/Services/My/
. Они устанавливаются
с помощью класса MyService app/Services/MyService.php
В приложение входят следующие сервисы:
- Работа с массивами (
ArrayBox.php
) - Работа с XML (
CrXml.php
) - Работа с HTTP (
Http.php
) - Работа с параметрами (
ParamBox.php
) - Работа со строками (
String.php
) - Общие функции (
System.php
) - Работа с разметкой Markdown (
app/Services/My/markdown/
)
Сервисы Zend Framework 2
Сервисы Zend Framework 2 находятся здесь vendor/zendframework/
.
Их можно установить с помощью Composer. Необходимый набор
компонентов нужно указать в файле composer.json
. Например, чтобы установить
Zend-Json, Zend-Xml и Zend-Filter нужно сделать такую запись:
{
"require": {
...
"zendframework/zend-json": "2.*",
"zendframework/zendxml": "^1.0",
"zendframework/zend-filter": "2.*"
},
...
}
В наше приложение сервисы Zend Framework 2 устанавливаются с помощью
класса Zf2Service app/Services/Zf2Service.php
.