# Erste Schritte Diese Anleitung führt Sie durch die ersten Schritte mit dem Framework, nachdem Sie es [installiert](installation.md) und [konfiguriert](configuration.md) haben. ## Projektstruktur Zunächst sollten Sie sich mit der Projektstruktur vertraut machen: ``` my-project/ ├── bin/ # Ausführbare Skripte ├── config/ # Konfigurationsdateien ├── docs/ # Dokumentation ├── public/ # Öffentlich zugängliche Dateien │ ├── index.php # Einstiegspunkt für die Anwendung │ ├── assets/ # Kompilierte Assets (CSS, JS) │ └── uploads/ # Hochgeladene Dateien ├── resources/ # Quellressourcen │ ├── css/ # CSS-Dateien │ ├── js/ # JavaScript-Dateien │ └── views/ # Template-Dateien ├── src/ # PHP-Quellcode │ ├── Application/ # Anwendungsspezifischer Code │ │ ├── Controllers/ # Controller │ │ ├── Models/ # Modelle │ │ └── Services/ # Services │ └── Framework/ # Framework-Code │ ├── Core/ # Kernkomponenten │ ├── Database/ # Datenbankabstraktion │ └── Http/ # HTTP-Komponenten ├── storage/ # Speicher für Anwendungsdaten │ ├── cache/ # Cache-Dateien │ ├── logs/ # Log-Dateien │ └── uploads/ # Hochgeladene Dateien ├── tests/ # Testdateien ├── vendor/ # Composer-Abhängigkeiten ├── .env # Umgebungsvariablen ├── composer.json # Composer-Konfiguration ├── console.php # Kommandozeilen-Interface └── README.md # Projektdokumentation ``` ## Erstellen einer einfachen Seite Lassen Sie uns eine einfache Seite erstellen, um zu sehen, wie das Framework funktioniert. ### 1. Erstellen eines Controllers Erstellen Sie eine neue Datei `src/Application/Controllers/WelcomeController.php`: ```php view('welcome', [ 'title' => 'Willkommen', 'message' => 'Willkommen beim Framework!', ]); } } ``` ### 2. Erstellen einer View Erstellen Sie eine neue Datei `resources/views/welcome.php`: ```php <?= $title ?>

``` ### 3. Definieren einer Route Öffnen Sie die Datei `config/routes.php` und fügen Sie eine neue Route hinzu: ```php get('/', [WelcomeController::class, 'index']); }; ``` ### 4. Testen der Anwendung Starten Sie den eingebauten Entwicklungsserver: ```bash php console.php serve ``` Öffnen Sie dann Ihren Browser und navigieren Sie zu `http://localhost:8000`. Sie sollten Ihre neue Seite sehen. ## Erstellen einer API-Endpunkt Lassen Sie uns einen einfachen API-Endpunkt erstellen. ### 1. Erstellen eines API-Controllers Erstellen Sie eine neue Datei `src/Application/Controllers/Api/UserController.php`: ```php 1, 'name' => 'Max Mustermann'], ['id' => 2, 'name' => 'Erika Musterfrau'], ]; return $this->json($users); } public function show(Request $request, int $id): Response { $users = [ 1 => ['id' => 1, 'name' => 'Max Mustermann'], 2 => ['id' => 2, 'name' => 'Erika Musterfrau'], ]; if (!isset($users[$id])) { return $this->json(['error' => 'Benutzer nicht gefunden'], 404); } return $this->json($users[$id]); } } ``` ### 2. Definieren von API-Routen Fügen Sie in der Datei `config/routes.php` die folgenden Routen hinzu: ```php $router->group('/api', function (Router $router) { $router->get('/users', [UserController::class, 'index']); $router->get('/users/{id}', [UserController::class, 'show']); }); ``` Vergessen Sie nicht, den Controller zu importieren: ```php use App\Application\Controllers\Api\UserController; ``` ### 3. Testen der API Starten Sie den Entwicklungsserver und testen Sie die API mit einem HTTP-Client wie curl: ```bash curl http://localhost:8000/api/users curl http://localhost:8000/api/users/1 ``` ## Arbeiten mit der Datenbank Das Framework bietet eine einfache Datenbankabstraktion. Hier ist ein Beispiel für die Arbeit mit der Datenbank: ### 1. Erstellen eines Modells Erstellen Sie eine neue Datei `src/Application/Models/User.php`: ```php schema->create('users', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('email')->unique(); $table->string('password'); $table->timestamps(); }); } public function down(): void { $this->schema->dropIfExists('users'); } } ``` ### 3. Ausführen der Migration Führen Sie die Migration aus: ```bash php console.php db:migrate ``` ### 4. Verwenden des Modells im Controller Aktualisieren Sie den `UserController`: ```php json($users); } public function show(Request $request, int $id): Response { $user = User::find($id); if (!$user) { return $this->json(['error' => 'Benutzer nicht gefunden'], 404); } return $this->json($user); } public function store(Request $request): Response { $this->validate($request, [ 'name' => 'required|string|max:255', 'email' => 'required|email|unique:users,email', 'password' => 'required|string|min:8', ]); $user = User::create([ 'name' => $request->input('name'), 'email' => $request->input('email'), 'password' => password_hash($request->input('password'), PASSWORD_DEFAULT), ]); return $this->json($user, 201); } } ``` Fügen Sie eine neue Route hinzu: ```php $router->post('/api/users', [UserController::class, 'store']); ``` ## Nächste Schritte Nachdem Sie die Grundlagen des Frameworks kennengelernt haben, können Sie sich mit den folgenden Themen befassen: - [Routing](../guides/routing.md) - Erfahren Sie mehr über das Routing-System - [Controller](../guides/controllers.md) - Lernen Sie, wie Sie Controller effektiv einsetzen - [Validierung](../guides/validation.md) - Validieren Sie Benutzereingaben - [Datenbank](../guides/database.md) - Arbeiten Sie mit der Datenbank - [Authentifizierung](../guides/authentication.md) - Implementieren Sie Benutzerauthentifizierung - [Sicherheit](../guides/security.md) - Schützen Sie Ihre Anwendung Oder erkunden Sie die [Komponenten](../components/README.md) des Frameworks, um mehr über die verfügbaren Funktionen zu erfahren.