SlideShare a Scribd company logo
1 of 30
PHP micro-
frameworks
Что это и зачем это
BohdanVorona
Фреймворк. Микрофреймворк?
Зачем? Простые сайтики
не кошерно не нужно
Несколько
страниц
Зачем? Прототипирование
Зачем? Web API
CRUD
Зачем? Mailers
… и многое другое
The MicroPHP Manifesto
Я PHP-разработчик
Я не разработчик Zend Framework или Symfony или
CakePHP
Я думаю, что PHP достаточно сложен
Мне нравится делать маленькие вещи
Мне нравится делать маленькие вещи, имеющие
простые цели
Мне нравится делать вещи, которые решают
проблемы
Мне нравится делать маленькие вещи, которые
работают вместе для решения больших проблем
Я хочу писать меньше кода, а не больше
Я хочу писать меньше кода, а не больше
Я хочу управлять меньшим количеством кода, а не
большим
Я хочу поддерживать меньшее количество кода, а не
большее
Я должен обосновать каждый кусок кода, который
включаю в проект
Мне нравится простой, читабельный код
Я хочу писать понятный код
Я хочу иметь легко проверяемый код
microphp.org funkatron
Особенности
Кодогенераторы Namespaces Lambda
Что внутри?
Micro
Роутер
MVC
HTTP
Обработка
ошибок
Много...
PHP micro-
frameworks
BulletPHP
Fat-Free
Framework
Limonade
Lumen Phalcon
Recess
PHP
Silex
Slim
Tonic
The One
Framework
Wave
Framework
Zaphpa
Lumen
Плюсы:
- Очень хорошая документация;
- Да, действительно быстрый;
- Отличная поддержка 3rd party
(спасибо старшему брату -
Laravel);
- Легко апгрейднуться до full
Laravel проекта;
- Простой в понимании синтакс.
Минусы:
- Размер не совсем micro;
- Не нравится Laravel != не
нравится Lumen.
Lumen
Lumen
Lumen
Lumen
Service
Providers
Unit Testing
Validation
Queues Events Errors &
Logging
Database
Cache
Authorization
Lumen
Lumen
Silex
Плюсы:
- Один из самых быстрых;
- На данный момент best-known;
- Построен на базе Symfony
компонентов и модулей;
- Используй только, что нужно;
- Очень хорошая документация;
- Может быть хорошим и для
больших проектов.
Минусы:
- Не знаешь Symfony => Silex
может показаться сложным за
счёт использования
компонентов старшего брата.
Silex
Silex
Silex
Silex
Twig
URL
Generator
Session
Validator
Form HTTP Security SwiftmailerMonolog
Translation
Doctrine
Silex
Silex
Silex
Slim
Phalcon
Что выбрать?
Даже тестирование
https://goo.gl/GRI2gk
BohdanVorona

More Related Content

What's hot

Секреты внутренней оптимизации: как правильно составить title и description
Секреты внутренней оптимизации: как правильно составить title и description Секреты внутренней оптимизации: как правильно составить title и description
Секреты внутренней оптимизации: как правильно составить title и description Pavel Shtanko
 
Meet Magento Belarus - Andriy Samilyak
Meet Magento Belarus - Andriy SamilyakMeet Magento Belarus - Andriy Samilyak
Meet Magento Belarus - Andriy SamilyakAmasty
 
Вебинар по БЭМ: верстаем веб-страницу
Вебинар по БЭМ: верстаем веб-страницуВебинар по БЭМ: верстаем веб-страницу
Вебинар по БЭМ: верстаем веб-страницуYandex
 
Reliable DOM testing with browser-monkey
Reliable DOM testing with browser-monkeyReliable DOM testing with browser-monkey
Reliable DOM testing with browser-monkeyMoscowJS
 
JSLab.Сергей Пузанков. "Разработка небольшого проекта c BEM и node.js"
JSLab.Сергей Пузанков. "Разработка небольшого проекта c BEM и node.js" JSLab.Сергей Пузанков. "Разработка небольшого проекта c BEM и node.js"
JSLab.Сергей Пузанков. "Разработка небольшого проекта c BEM и node.js" GeeksLab Odessa
 
Bemer: декларативная шаблонизация на учебном примере — Артём Курбатов, Яндекс
Bemer: декларативная шаблонизация на учебном примере — Артём Курбатов, ЯндексBemer: декларативная шаблонизация на учебном примере — Артём Курбатов, Яндекс
Bemer: декларативная шаблонизация на учебном примере — Артём Курбатов, ЯндексYandex
 
Server-side Rendering with JavaScript Frameworks | Odessa Frontend Meetup #6
Server-side Rendering with JavaScript Frameworks | Odessa Frontend Meetup #6Server-side Rendering with JavaScript Frameworks | Odessa Frontend Meetup #6
Server-side Rendering with JavaScript Frameworks | Odessa Frontend Meetup #6OdessaFrontend
 
Lviv Euro Drupal Camp 2015_Как подружить дизайнеров и Drupal-разработчиков
Lviv Euro Drupal Camp 2015_Как подружить дизайнеров и Drupal-разработчиковLviv Euro Drupal Camp 2015_Как подружить дизайнеров и Drupal-разработчиков
Lviv Euro Drupal Camp 2015_Как подружить дизайнеров и Drupal-разработчиковdeWeb
 
Введение в Windows Communication Foundation
Введение в Windows Communication FoundationВведение в Windows Communication Foundation
Введение в Windows Communication Foundationakrakovetsky
 

What's hot (11)

Секреты внутренней оптимизации: как правильно составить title и description
Секреты внутренней оптимизации: как правильно составить title и description Секреты внутренней оптимизации: как правильно составить title и description
Секреты внутренней оптимизации: как правильно составить title и description
 
Meet Magento Belarus - Andriy Samilyak
Meet Magento Belarus - Andriy SamilyakMeet Magento Belarus - Andriy Samilyak
Meet Magento Belarus - Andriy Samilyak
 
Вебинар по БЭМ: верстаем веб-страницу
Вебинар по БЭМ: верстаем веб-страницуВебинар по БЭМ: верстаем веб-страницу
Вебинар по БЭМ: верстаем веб-страницу
 
Reliable DOM testing with browser-monkey
Reliable DOM testing with browser-monkeyReliable DOM testing with browser-monkey
Reliable DOM testing with browser-monkey
 
JSLab.Сергей Пузанков. "Разработка небольшого проекта c BEM и node.js"
JSLab.Сергей Пузанков. "Разработка небольшого проекта c BEM и node.js" JSLab.Сергей Пузанков. "Разработка небольшого проекта c BEM и node.js"
JSLab.Сергей Пузанков. "Разработка небольшого проекта c BEM и node.js"
 
Bemer: декларативная шаблонизация на учебном примере — Артём Курбатов, Яндекс
Bemer: декларативная шаблонизация на учебном примере — Артём Курбатов, ЯндексBemer: декларативная шаблонизация на учебном примере — Артём Курбатов, Яндекс
Bemer: декларативная шаблонизация на учебном примере — Артём Курбатов, Яндекс
 
Kothic JS - Web Browser Crash Test
Kothic JS - Web Browser Crash TestKothic JS - Web Browser Crash Test
Kothic JS - Web Browser Crash Test
 
Server-side Rendering with JavaScript Frameworks | Odessa Frontend Meetup #6
Server-side Rendering with JavaScript Frameworks | Odessa Frontend Meetup #6Server-side Rendering with JavaScript Frameworks | Odessa Frontend Meetup #6
Server-side Rendering with JavaScript Frameworks | Odessa Frontend Meetup #6
 
Lviv Euro Drupal Camp 2015_Как подружить дизайнеров и Drupal-разработчиков
Lviv Euro Drupal Camp 2015_Как подружить дизайнеров и Drupal-разработчиковLviv Euro Drupal Camp 2015_Как подружить дизайнеров и Drupal-разработчиков
Lviv Euro Drupal Camp 2015_Как подружить дизайнеров и Drupal-разработчиков
 
Introduction in TDD
Introduction in TDDIntroduction in TDD
Introduction in TDD
 
Введение в Windows Communication Foundation
Введение в Windows Communication FoundationВведение в Windows Communication Foundation
Введение в Windows Communication Foundation
 

Similar to Php micro frameworks

Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...
Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...
Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...Ontico
 
Ликбез по веб-технологиям
Ликбез по веб-технологиямЛикбез по веб-технологиям
Ликбез по веб-технологиямAlexey Simonenko
 
Python & Web: От простого к сложному
Python & Web: От простого к сложномуPython & Web: От простого к сложному
Python & Web: От простого к сложномуIlya Bolkhovsky
 
Основные понятия связанные с разработкой ПО: просто о сложном. Лаабе Дмитрий.
Основные понятия связанные с разработкой ПО: просто о сложном. Лаабе Дмитрий.Основные понятия связанные с разработкой ПО: просто о сложном. Лаабе Дмитрий.
Основные понятия связанные с разработкой ПО: просто о сложном. Лаабе Дмитрий.IT-Доминанта
 
Внедрение компонента templating в существующий проект
Внедрение компонента templating в существующий проектВнедрение компонента templating в существующий проект
Внедрение компонента templating в существующий проектStanislaw Smetanin
 
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...Anthony Marchenko
 
1_symfony_introduction.pptx
1_symfony_introduction.pptx1_symfony_introduction.pptx
1_symfony_introduction.pptxrdninc
 
Как сделать интернет-сайт на SharePoint и не передумать на полпути
Как сделать интернет-сайт на SharePoint и не передумать на полпутиКак сделать интернет-сайт на SharePoint и не передумать на полпути
Как сделать интернет-сайт на SharePoint и не передумать на полпутиAndrew Mayorov
 
Экскурс в мир WEB разработки
Экскурс в мир WEB разработкиЭкскурс в мир WEB разработки
Экскурс в мир WEB разработкиIT-Доминанта
 
Алексей Лустин. Непрерывная проверка качества кода.
Алексей Лустин. Непрерывная проверка качества кода.Алексей Лустин. Непрерывная проверка качества кода.
Алексей Лустин. Непрерывная проверка качества кода.ScrumTrek
 
Терминология как основной способ поиска разработчиков или как не опозорится п...
Терминология как основной способ поиска разработчиков или как не опозорится п...Терминология как основной способ поиска разработчиков или как не опозорится п...
Терминология как основной способ поиска разработчиков или как не опозорится п...SBTech
 
Разработка веб-приложений с помощью TypeScript
Разработка веб-приложений с помощью TypeScriptРазработка веб-приложений с помощью TypeScript
Разработка веб-приложений с помощью TypeScriptStas Vyschepan
 
Микросервисы и Magento: 10 пунктов, которые надо сделать, чтобы избежать ярки...
Микросервисы и Magento: 10 пунктов, которые надо сделать, чтобы избежать ярки...Микросервисы и Magento: 10 пунктов, которые надо сделать, чтобы избежать ярки...
Микросервисы и Magento: 10 пунктов, которые надо сделать, чтобы избежать ярки...Magecom UK Limited
 
Сборник практических задании по Php
Сборник практических задании по PhpСборник практических задании по Php
Сборник практических задании по PhpRauan Ibraikhan
 
Как создать сайт с нуля за 1 день
Как создать сайт с нуля за 1 деньКак создать сайт с нуля за 1 день
Как создать сайт с нуля за 1 деньАлександр Лысяк
 
Володимир Дем’яненко, «How to become a Test Automation Engineer. My way»
Володимир Дем’яненко, «How to become a Test Automation Engineer. My way»Володимир Дем’яненко, «How to become a Test Automation Engineer. My way»
Володимир Дем’яненко, «How to become a Test Automation Engineer. My way»Sigma Software
 
Игорь Кашкута
Игорь КашкутаИгорь Кашкута
Игорь КашкутаCodeFest
 
Sw325 lekts 1
Sw325 lekts 1Sw325 lekts 1
Sw325 lekts 1D. Saraa
 
Проектирование большого интернет-магазина
Проектирование большого интернет-магазинаПроектирование большого интернет-магазина
Проектирование большого интернет-магазинаArtem Markov
 

Similar to Php micro frameworks (20)

Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...
Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...
Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...
 
WEB
WEBWEB
WEB
 
Ликбез по веб-технологиям
Ликбез по веб-технологиямЛикбез по веб-технологиям
Ликбез по веб-технологиям
 
Python & Web: От простого к сложному
Python & Web: От простого к сложномуPython & Web: От простого к сложному
Python & Web: От простого к сложному
 
Основные понятия связанные с разработкой ПО: просто о сложном. Лаабе Дмитрий.
Основные понятия связанные с разработкой ПО: просто о сложном. Лаабе Дмитрий.Основные понятия связанные с разработкой ПО: просто о сложном. Лаабе Дмитрий.
Основные понятия связанные с разработкой ПО: просто о сложном. Лаабе Дмитрий.
 
Внедрение компонента templating в существующий проект
Внедрение компонента templating в существующий проектВнедрение компонента templating в существующий проект
Внедрение компонента templating в существующий проект
 
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...
Встраивание Python в мобильные приложения – нюансы interoperation, новые подх...
 
1_symfony_introduction.pptx
1_symfony_introduction.pptx1_symfony_introduction.pptx
1_symfony_introduction.pptx
 
Как сделать интернет-сайт на SharePoint и не передумать на полпути
Как сделать интернет-сайт на SharePoint и не передумать на полпутиКак сделать интернет-сайт на SharePoint и не передумать на полпути
Как сделать интернет-сайт на SharePoint и не передумать на полпути
 
Экскурс в мир WEB разработки
Экскурс в мир WEB разработкиЭкскурс в мир WEB разработки
Экскурс в мир WEB разработки
 
Алексей Лустин. Непрерывная проверка качества кода.
Алексей Лустин. Непрерывная проверка качества кода.Алексей Лустин. Непрерывная проверка качества кода.
Алексей Лустин. Непрерывная проверка качества кода.
 
Терминология как основной способ поиска разработчиков или как не опозорится п...
Терминология как основной способ поиска разработчиков или как не опозорится п...Терминология как основной способ поиска разработчиков или как не опозорится п...
Терминология как основной способ поиска разработчиков или как не опозорится п...
 
Разработка веб-приложений с помощью TypeScript
Разработка веб-приложений с помощью TypeScriptРазработка веб-приложений с помощью TypeScript
Разработка веб-приложений с помощью TypeScript
 
Микросервисы и Magento: 10 пунктов, которые надо сделать, чтобы избежать ярки...
Микросервисы и Magento: 10 пунктов, которые надо сделать, чтобы избежать ярки...Микросервисы и Magento: 10 пунктов, которые надо сделать, чтобы избежать ярки...
Микросервисы и Magento: 10 пунктов, которые надо сделать, чтобы избежать ярки...
 
Сборник практических задании по Php
Сборник практических задании по PhpСборник практических задании по Php
Сборник практических задании по Php
 
Как создать сайт с нуля за 1 день
Как создать сайт с нуля за 1 деньКак создать сайт с нуля за 1 день
Как создать сайт с нуля за 1 день
 
Володимир Дем’яненко, «How to become a Test Automation Engineer. My way»
Володимир Дем’яненко, «How to become a Test Automation Engineer. My way»Володимир Дем’яненко, «How to become a Test Automation Engineer. My way»
Володимир Дем’яненко, «How to become a Test Automation Engineer. My way»
 
Игорь Кашкута
Игорь КашкутаИгорь Кашкута
Игорь Кашкута
 
Sw325 lekts 1
Sw325 lekts 1Sw325 lekts 1
Sw325 lekts 1
 
Проектирование большого интернет-магазина
Проектирование большого интернет-магазинаПроектирование большого интернет-магазина
Проектирование большого интернет-магазина
 

More from Sumy PHP User Grpoup

Using Elastic Search Outside Full-Text Search
Using Elastic Search Outside Full-Text SearchUsing Elastic Search Outside Full-Text Search
Using Elastic Search Outside Full-Text SearchSumy PHP User Grpoup
 
Путешествия во времени
Путешествия во времениПутешествия во времени
Путешествия во времениSumy PHP User Grpoup
 
High Availability в жизни обычного разработчика
High Availability в жизни обычного разработчикаHigh Availability в жизни обычного разработчика
High Availability в жизни обычного разработчикаSumy PHP User Grpoup
 
Service approach for development REST API in Symfony2
Service approach for development REST API in Symfony2Service approach for development REST API in Symfony2
Service approach for development REST API in Symfony2Sumy PHP User Grpoup
 
Service approach for development Rest API in Symfony2
Service approach for development Rest API in Symfony2Service approach for development Rest API in Symfony2
Service approach for development Rest API in Symfony2Sumy PHP User Grpoup
 

More from Sumy PHP User Grpoup (7)

Web and IoT
Web and IoTWeb and IoT
Web and IoT
 
Using Elastic Search Outside Full-Text Search
Using Elastic Search Outside Full-Text SearchUsing Elastic Search Outside Full-Text Search
Using Elastic Search Outside Full-Text Search
 
Путешествия во времени
Путешествия во времениПутешествия во времени
Путешествия во времени
 
High Availability в жизни обычного разработчика
High Availability в жизни обычного разработчикаHigh Availability в жизни обычного разработчика
High Availability в жизни обычного разработчика
 
Service approach for development REST API in Symfony2
Service approach for development REST API in Symfony2Service approach for development REST API in Symfony2
Service approach for development REST API in Symfony2
 
Service approach for development Rest API in Symfony2
Service approach for development Rest API in Symfony2Service approach for development Rest API in Symfony2
Service approach for development Rest API in Symfony2
 
Oro open source solutions
Oro open source solutionsOro open source solutions
Oro open source solutions
 

Php micro frameworks