Frameworki PHP to narzędzia, które pomagają w organizowaniu kodu, zarządzaniu bazą danych, tworzeniu routingu i obsłudze żądań HTTP. Laravel i Symfony to dwa najpopularniejsze frameworki PHP, które są szeroko stosowane w dużych aplikacjach webowych.
Laravel
Laravel to framework PHP, który oferuje szeroką gamę narzędzi, takich jak system routingu, ORM (Eloquent), autentykację, testowanie oraz wiele innych. Jest uważany za jeden z najłatwiejszych frameworków do nauki i używania, dzięki swojej intuicyjnej składni.
Kluczowe cechy Laravel:
- Routing: Umożliwia przypisanie URL do odpowiednich funkcji kontrolera.
- Eloquent ORM: Zapewnia prosty sposób na interakcję z bazą danych.
- Blade: Silnik szablonów, który umożliwia tworzenie dynamicznych widoków.
- Migrations: Narzędzia do zarządzania strukturą bazy danych.
- Artisan: CLI (Interfejs wiersza poleceń) do wykonywania różnych zadań (np. generowanie kodu, migracje).
Do czego służy Laravel?
- Tworzenie aplikacji webowych.
- Obsługa baz danych.
- Obsługa zapytań HTTP.
- Autentykacja użytkowników.
- Budowanie API.
Przykład kontrolera w Laravel
// app/Http/Controllers/StronaController.php
namespace AppHttpControllers;
use Illuminate\Http\Request;
class StronaController extends Controller {
public function powitanie() {
return "Witamy w Laravel!";
}
}
// routes/web.php
Route::get('/powitanie', [StronaController::class, 'powitanie']);
Symfony
Symfony to framework, który skupia się na dużych, rozbudowanych projektach. Jest bardziej skoncentrowany na czystym kodzie, skalowalności i standardach. Symfony jest często wykorzystywane do tworzenia aplikacji zorientowanych na usługi, a także API.
Kluczowe cechy Symfony:
- Routing: Konfigurowanie tras (URL) i przypisywanie ich do akcji kontrolera.
- Doctrine ORM: Rozbudowany mechanizm do obsługi baz danych.
- Twig: Silnik szablonów.
- Flex: Umożliwia dodawanie nowych komponentów w prosty sposób.
- Komponenty Symfony: Możliwość wykorzystania samych komponentów Symfony, np. komponenty do routingu, formularzy, sesji, itp.
Do czego służy Symfony?
- Tworzenie dużych aplikacji.
- Budowanie aplikacji złożonych z usług.
- Obsługa HTTP, RESTful API, CLI.
Przykład kontrolera w Symfony
// src/Controller/StronaController.php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
class StronaController extends AbstractController {
public function powitanie(): Response {
return new Response("Witamy w Symfony!");
}
}
// config/routes.yaml
powitanie:
path: /powitanie
controller: AppControllerStronaController::powitanie