PhpBoot
PhpBoot — это PHP-фреймворк, предназначенный для быстрой разработки RESTful API. Он помогает разработчикам сосредоточиться на бизнес-логике, делегируя фреймворку рутинные задачи, такие как написание документации по интерфейсу, проверка параметров и реализация удалённого вызова кода.
PhpBoot предоставляет множество популярных функций, таких как ORM и внедрение зависимостей. Эти функции тщательно разработаны и выбраны (некоторые из них являются сторонним открытым исходным кодом, например PHP-DI), но наиболее заметной особенностью PhpBoot по сравнению с другими фреймворками является:
Вы, вероятно, видели такой код:
// **Не используя** PhpBoot
class BookController {
public function findBooks(Request $request) {
$name = $request->get('name');
$offset = $request->get('offset', 0);
$limit = $request->get('limit', 10);
...
return new Response(['total' => $total, 'data' => $books]);
}
public function createBook(Request $request) ...
}
Многие популярные фреймворки требуют написания такого кода для реализации интерфейсов. Однако проблема этого подхода заключается в том, что входные и выходные данные методов скрыты в реализации, что не соответствует общепринятым принципам кодирования. Если вы предъявляете более высокие требования к коду, вы можете реализовать дополнительный слой Service-интерфейса и просто вызывать его из Controller. Используя PhpBoot, можно определить и реализовать интерфейс более естественным образом. В примере выше, в рамках фреймворка PhpBoot это будет выглядеть так:
/**
* @path /books/
*/
class Books {
/**
* @route GET /
* @return Book[]
*/
public function findBooks($name, &$total = null, $offset = 0, $limit = 10) {
$total = ...
...
return $books;
}
/**
* @route POST /
* @param Book $book {@bind request.request} bind $book with http body
* @return string id of created book
*/
public function createBook(Book $book) {
$id = ...
return $id;
}
}
Приведённый выше код выполняет те же действия. Можно заметить, что код, написанный с использованием PhpBoot, больше соответствует принципам объектно-ориентированного программирования. Полную версию кода можно увидеть в phpboot-example.
Swagger — самый популярный на данный момент фреймворк для документирования интерфейсов. Хотя многие фреймворки могут поддерживать Swagger через расширения, обычно они не требуют большого количества дополнительных комментариев и могут только экспортировать базовую информацию о маршрутах, а не подробные входные и выходные параметры. С помощью PhpBoot можно легко выполнить эту задачу без увеличения дополнительной нагрузки на кодирование. На рисунке ниже показан документ, соответствующий функции findBooks. Для получения дополнительной информации см. документацию и онлайн-демонстрацию.
С помощью PhpBoot легко создавать распределённые приложения. Приведённый ниже код позволяет легко получить удалённый доступ к интерфейсу Books, показанному в примере выше:
$books = $app->make(RpcProxy::class, [
'interface' => Books::class,
'prefix' => 'http://x.x.x.x/'
]);
$books->findBooks(...);
Одновременно можно удобно инициировать параллельные запросы, например:
$res = MultiRpc::run([
function() use ($service1) {
return $service1->doSomething();
},
function() use ($service2) {
return $service2->doSomething();
},
]);
Для получения дополнительной информации ознакомьтесь с документацией.
Функция подсказки кода в IDE может значительно упростить работу разработчиков, но многие фреймворки не предоставляют хороших решений в этой области, и вам приходится обращаться к документации или коду, чтобы узнать, как использовать определённую функцию. PhpBoot с самого начала уделяет большое внимание дружественности фреймворка к IDE, стремясь сохранить точные подсказки кода. Например, на приведённом ниже рисунке показано использование DB в PhpStorm:
БД ORM
Автоматическое документирование и инструменты для работы с интерфейсами.
Распределённая поддержка (RPC).
Hook.
Механизм рабочего процесса (в разработке…).
Установите Composer (если он уже установлен, этот шаг можно пропустить).
curl -s http://getcomposer.org/installer | php
Установите PhpBoot.
composer require "caoym/phpboot"
Загрузите PhpBoot в index.php.
<?php
require __DIR__.'/vendor/autoload.php';
$app = \PhpBoot\Application::createByDefault(__DIR__.'/config/config.php');
$app->loadRoutesFromPath(__DIR__.'/App/Controllers');
$app->dispatch();
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )