Я хочу создать простой API на основе Symfony framework.
Контроллеры уже реализованы.
1) Какая минимальная настройка пакетов composer мне нужна?
2) Как мне настроить рабочий индекс. php файл, который создает маршруты из аннотаций, соответствует URL-адресам и выводит ответ?
Спасибо очень много!
Вот пример кода одного из моих контроллеров, расположенных в src / Bitter / Cloud / Server / Controller / PhotosController. php:
<?php
namespace Bitter\Cloud\Server\Controller;
use Bitter\Cloud\Cloud;
use Bitter\Cloud\Services\PhotosService;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
class PhotosController extends AbstractController
{
protected Request $request;
protected PhotosService $service;
public function __construct()
{
$this->request = Request::createFromGlobals();
$this->service = Cloud::getServices()->getPhotos();
}
/**
* Send a request to fetch photos and videos from the photo service.
*
* @Route("/photos/get_photos")
*
* @link project://docs/services/photos/get-photos.md
*/
public function getPhotos(): JsonResponse
{
$this->service->init();
return new JsonResponse([
"success" => true,
"photos" => $this->service->getPhotos()
]);
}
}
Все остальные контроллеры аналогичны.
Вот моя composer. json настройка:
{
"name": "bitter/cloud-server",
"description": "Cloud Server for PHP.",
"license": "MIT",
"type": "project",
"homepage": "*********removed*********",
"authors": [
{
"name": "*********removed*********",
"email": "*********removed*********",
"role": "Developer"
}
],
"minimum-stability": "dev",
"repositories": [
{
"name": "bitter/cloud-api",
"type": "vcs",
"url": "git@bitbucket.org:*********removed*********"
}
],
"keywords": [
"cloud",
"php",
"api"
],
"support": {
"issues": "*********removed*********"
},
"require": {
"bitter/cloud-api": "*",
"symfony/http-foundation": "5.0.0",
"symfony/routing": "5.0.0",
"symfony/config": "5.0.0",
"doctrine/annotations": "1.8.0",
"symfony/framework-bundle": "5.0.0",
"doctrine/cache": "1.8.0"
},
"autoload": {
"psr-4": {
"Bitter\\Cloud\\Server\\": "src/Bitter/Cloud/Server"
}
}
}