Symfony как микрофреймворк
Руслан Ханов
Кто я
и какая у меня проблема?
│Разработчик
› gloryon.ru
› i-teco.ru
› lamoda.ru
│Пользователь
› symfony 1.0-1.4
› symfony 2.0-2.8
› Silex
› бандлы, бандлы, бандлы!
Какая у меня проблема?
5
Я не понимаю для чего нужен
Symfony
как микрофреймворк
6
Symfony 1.x это
• PHP 5.0
• PEAR
• CVS/SVN
• Apache 1
• Notepad++
9
Symfony 1.x это НЕ
• Composer
• PDO
• PSR
10
Symfony 1.x это
11
Symfony как микрофреймворк
12
Класс HttpKernel
15
Symfony full stack
16
Kernel это
• Front controller
• Сложный DI
• Routing
• Controllers
• Аннотации
• Файлы конфигураций 17
│Kernel – это комбайн
│Kernel не даст вам MVP
Micro
1. Простой и производительный
2. Один из представителей - Silex
20
Silex это
• Front controller
• Простой DI
• Routing
• Controllers
21
Silex это НЕ
• Аннотации
• Файлы конфигураций
• Сложный DI
22
│Silex даст вам MVP
• Kernel
• Silex
24
Kernel vs Silex
25
Symfony как
микрофреймворк
трейт MicroKernelTrait
27
MicroKernel это
• Front controller
• Сложный DI
• Аннотации
• Файлы конфигураций
• Controllers
28
class MicroKernel extends Kernel {
use MicroKernelTrait;
public function registerBundles() {
return [
new FrameworkBundle(),
];
}
protected function configureContainer(ContainerBuilder $c, LoaderInterface $loader) {
$c->loadFromExtension('framework‘, [’secret‘ => ’secret‘]);
}
protected function configureRoutes(RouteCollectionBuilder $routes) {
$routes->add(‘/‘, 'kernel:indexAction‘, 'index’);
}
public function indexAction() {
return new Response (‘Hello World’);
}
}
require_once ‘autoloader.php‘;
$app = MicroKernel(’prod‘, false);
$app->loadClassCache();
$app->handle(Request::createFromGlobals())->send();
│MicroKernel – это комбайн
│MicroKernel даст вам MVP
MicroKernel в продакшене
MicroKernel в продакшене
• Rapid API Development
• Proxy
• Adapter
• Converter
• CMS
33
MicroKernel в продакшене
34
Kernel и Silex в продакшене
35
MicroKernel не нужен,
Спасибо!
Ханов Руслан
hanovruslan41@
+7-903-538-01-07 hanovruslan
hanov.ruslan