To jest dokumentacja dla Slim 4. Poszukujesz wersji dla Slim 3?.
Slim to microframework PHP, który syzbko pomaga pisać proste, ale potężne aplikacje internetowe oraz interfejsy API. U podstaw Slim posiada dyspozytor, który odbiera żądanie HTTP, wywołuje odpowiednie wywołanie zwrotne procedura i zwraca odpowiedź HTTP. To wszystko!
Slim jest idealnym narzędziem do tworzenia interfejsów API, które wykorzystują, zmieniają przeznaczenie lub publikują dane. Slim też jest doskonałym narzędziem do szybkiego prototypowania. Możesz nawet zbudować w pełni funkcjonalną sieć aplikacji z interfejsami użytkownika. Co ważniejsze, Slim jest super szybki i ma bardzo mało kodu. W rzeczywistości możesz odczytać i zrozumieć jego kod źródłowy w jedno popołudnie!
U podstaw Slim jest dyspozytor, który odbiera żądanie HTTP, wywołuje odpowiednie wywołanie zwrotne i zwraca odpowiedź HTTP. To wszystko!
Nie zawsze potrzebujesz kombajnu, takiego jak Symfony lub Laravel. Na pewno są to świetne narzędzia. Ale często są przesadzone. Slim zapewnia tylko minimalny zestaw narzędzi, które wykona to, czego potrzebujesz i nic więcej.
Po pierwsze, potrzebujesz serwera WWW takiego jak Nginx lub Apache. Powinieneś/powinnaś skonfigurować swój serwer WWW, aby wysyłał wszystkie odpowiednie żądania do jednego pliku PHP „front-controller”. Tworzysz instancję i uruchamiasz aplikację Slim w tym pliku PHP.
Aplikacja Slim zawiera trasy (routes), które odpowiadają na określone żądania HTTP. Każda trasa wywołuje funkcję zwrotną i zwraca odpowiedź HTTP. Aby rozpocząć, najpierw utwórz i skonfiguruj aplikację Slim. Następnie zdefiniuj trasy aplikacji. Na koniec uruchom aplikację Slim. To takie proste. Oto przykładowa aplikacja:
<?php
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Slim\Factory\AppFactory;
require __DIR__ . '/../vendor/autoload.php';
/**
* Instantiate App
*
* In order for the factory to work you need to ensure you have installed
* a supported PSR-7 implementation of your choice e.g.: Slim PSR-7 and a supported
* ServerRequest creator (included with Slim PSR-7)
*/
$app = AppFactory::create();
// Add Routing Middleware
$app->addRoutingMiddleware();
/*
* Add Error Handling Middleware
*
* @param bool $displayErrorDetails -> Should be set to false in production
* @param bool $logErrors -> Parameter is passed to the default ErrorHandler
* @param bool $logErrorDetails -> Display error details in error log
* which can be replaced by a callable of your choice.
* Note: This middleware should be added last. It will not handle any exceptions/errors
* for middleware added after it.
*/
$errorMiddleware = $app->addErrorMiddleware(true, true, true);
// Define app routes
$app->get('/hello/{name}', function (Request $request, Response $response, $args) {
$name = $args['name'];
$response->getBody()->write("Hello, $name");
return $response;
});
// Run app
$app->run();
Podczas tworzenia aplikacji Slim często pracujesz bezpośrednio z Request (żądanie) i Response (odpowiedź). Te obiekty reprezentują rzeczywiste otrzymane żądanie HTTP przez serwer WWW i ewentualną odpowiedź HTTP zwróconą do klienta.
Każda trasa aplikacji (route) Slim otrzymuje jako argument bieżące obiekty Request i Response do jego procedury zwrotnej. Obiekty te implementują popularne interfejsy PSR-7. Trasa aplikacji Slim może sprawdzić lub w razie potrzeby manipulowa¢ tymi obiektami. Ostatecznie każda trasa aplikacji Slim MUSI zwrócić obiekt odpowiedzi PSR-7.
Slim został zaprojektowany do współpracy z innymi komponentami PHP. możesz się zarejestrować dodatkowe komponenty własne, takie jak Slim-Csrf, Slim-HttpCache, lub Slim-Flash, które bazują na domyślnej funkcjonalności Slim. Także łatwo do zintegrować komponenty innych firm znalezione na Packagist.
Jeśli dopiero zaczynasz korzystać ze Slim’a, zalecamy przeczytanie tej dokumentacji od samego początku do końca. Jeśli znasz już Slim, możesz zamiast tego przejść prosto do odpowiedniej sekcji.
Ta dokumentacja zaczyna się od wyjaśnienia koncepcji i architektury Slima przed podjęciem konkretnych tematów, takich jak obsługa zapytań i odpowiedzi, routing i obsługa błędów.
Ta strona internetowa i dokumentacja są licencjonowane na podstawie Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.