2. Для чего
Простые сайты
еще не ZendFramework, но уже неWordpress
Прототип функционала
показать заказчику что-то до разработки
REST API
для мобильных приложений, HTTP+JSON
Промежуточный компонент системы
mailer
Расширить функционал существующей системы
сайт на CMS давно работает, хочется добавить
3. Проблема full-stack фреймворков
Фреймворки обладают огромнейшим
функционалом и возможностями.
Но очень часто при разработке небольших
проектов, весь функционал фреймворка
попросту не нужен, вполне достаточно только
неких базовых возможностей.
4. The MicroPHP Manifesto
I am a PHP developer
I am not a Zend Framework or
Symfony or CakePHP developer
I think PHP is complicated enough
I like building small things
I like building small things with
simple purposes
I like to make things that solve
problems
I like building small things that work
together to solve larger problems
I want less code, not more
I want to write less code, not more
I want to manage less code, not
more
I want to support less code, not
more
I need to justify every piece of code I
add to a project
I like simple, readable code
I want to write code that is easily
understood
I want code that is easily verifiable
http://microphp.org - Ed Finkler
начинать с как можно более легковесной основы
5. Что есть (обычно)
роутинг
базовый MVC
обработка HTTP запросов
обработка ошибок
возможность расширения
6. Чего нет (обычно)
ORM
кэширование
шаблонизатор
мультиязычность
валидация форм
авторизация / аутентификация, роли
7. Lumen
version 5.4
Основан на Laravel
PHP >= 5.6.4
https://lumen.laravel.com
OpenSSL PHP Extension
PDO PHP Extension
Mbstring PHP Extension
9. Lumen: Особенности
Отличная документация
Очень быстрый
Можно обновиться до Laravel
Размер большой для микрофреймворка
Специализация: micro-services и API
Не включает работу с сессиями и шаблонами
10. Slim
version: 3.8.1
Web server with URL rewriting
PHP 5.5+
https://www.slimframework.com
15. Silex: Особенности
Не знакомым с Symfony покажется сложным
Очень хорошая документация
Модульный, используйте то, что нужно
Хорош для больших проектов
Медленнее Lumen в 2 раза
17. Phalcon Micro: Пример
use PhalconDIFactoryDefault, PhalconMvcMicro, PhalconHttpResponse, PhalconHttpRequest;
$di = new FactoryDefault();
//Using an anonymous function, the instance will be lazy loaded
$di["response"] = function () {
return new Response();
};
$di["request"] = function () {
return new Request();
};
$app = new Micro();
$app->setDI( $di );
$app->get( '/api', function () use ( $app ) {
echo "Welcome";
} );
$app->post( '/api', function () use ( $app ) {
$post = $app->request->getPost();
print_r( $post );
} );
$app->notFound(
function () use ( $app ) {
$app->response->setStatusCode( 404, "Not Found" )->sendHeaders();
echo 'This is crazy, but this page was not found!';
}
);
$app->handle();
18. Phalcon Micro: Особенности
PHP extension (C)
Самый быстрый
Отличная документация
Для дебага надо знать C или Zephir
19. Для чего (повтор)
Простые сайты
еще не ZendFramework, но уже неWordpress
Прототип функционала
показать заказчику что-то до разработки
REST API
для мобильных приложений, HTTP+JSON
Промежуточный компонент системы
mailer
Расширить функционал существующей системы
сайт на CMS давно работает, хочется добавить
20. Ссылки
PHP micro-frameworks (PHP микрофреймворки) |Thinking
http://thinking.bohdanvorona.name/php-micro-frameworks/
Top 12 Best PHP RESTful Micro Frameworks (Pro/Con)
http://www.gajotres.net/best-available-php-restful-micro-frameworks/
10 Best PHP microframeworks as of 2017 - Slant
https://www.slant.co/topics/2642/~php-microframeworks
PHP Microframework vs. Full Stack Framework | Application
Performance Monitoring Blog | AppDynamics
https://blog.appdynamics.com/engineering/php-microframework-vs-
full-stack-framework/