> ## Documentation Index
> Fetch the complete documentation index at: https://kawax.biz/llms.txt
> Use this file to discover all available pages before exploring further.

# Verzeichnisstruktur

> Erläutert die Rolle der wichtigsten Verzeichnisse und Dateien in einem Laravel-Projekt.

## Einführung

Die Standard-Anwendungsstruktur von Laravel liefert einen Ausgangspunkt, der sich sowohl für große als auch für kleine Anwendungen gut eignet.
Wie Sie Ihre Anwendung strukturieren, bleibt jedoch Ihnen überlassen.
Laravel schreibt Ihnen kaum vor, wo Sie Ihre Klassen ablegen müssen. Solange Composer die Klassen autoladen kann, ist alles in Ordnung.

## Root-Verzeichnis

Wenn Sie ein neues Laravel-Projekt anlegen, entsteht folgende Verzeichnisstruktur:

```
example-app/
├── app/
├── bootstrap/
├── config/
├── database/
├── public/
├── resources/
├── routes/
├── storage/
├── tests/
├── vendor/
├── .env
├── artisan
└── composer.json
```

### Verzeichnis `app/`

Speichert den Kern-Code Ihrer Anwendung.
Nahezu alle Klassen Ihrer Anwendung – Controller, Modelle, Middleware und mehr – liegen hier.

Standardmäßig enthält es die Unterverzeichnisse `Http`, `Models` und `Providers`.
Wenn Sie Klassen mit Artisan-Befehlen erzeugen, werden weitere Unterverzeichnisse automatisch angelegt.

### Verzeichnis `bootstrap/`

Enthält die Datei `app.php`, die das Framework startet.
Außerdem enthält es das Verzeichnis `cache/`, das Performance-Optimierungsdateien wie Route- und Service-Cache speichert.

### Verzeichnis `config/`

Enthält alle Konfigurationsdateien Ihrer Anwendung.
Es wird empfohlen, diese Dateien durchzulesen, damit Sie die verfügbaren Optionen kennenlernen.

### Verzeichnis `database/`

Speichert Datenbank-Migrationen, Modell-Factories und Seeder.
Auch eine SQLite-Datenbankdatei kann hier abgelegt werden.

### Verzeichnis `public/`

Enthält die Datei `index.php`, die den Einstiegspunkt aller Anfragen an Ihre Anwendung bildet.
Außerdem werden hier Assets wie Bilder, JavaScript und CSS abgelegt.

<Warning>
  Konfigurieren Sie das Document Root Ihres Webservers so, dass es auf das Verzeichnis `public/` Ihres Laravel-Projekts zeigt.
  Wenn Sie stattdessen den Projekt-Root oder ein anderes Unterverzeichnis direkt veröffentlichen, riskieren Sie, sensible Dateien preiszugeben.
</Warning>

### Verzeichnis `resources/`

Enthält [Views](/de/views) sowie unkompilierte Assets wie CSS und JavaScript.

### Verzeichnis `routes/`

Speichert alle Routendefinitionen Ihrer Anwendung.
Standardmäßig gibt es zwei Routen-Dateien: `web.php` und `console.php`.

| Datei          | Zweck                                                                                                                                          |
| -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| `web.php`      | Routen für den Browser. Auf sie wird die Middleware-Gruppe `web` angewendet, die Session, CSRF-Schutz und Cookie-Verschlüsselung bereitstellt. |
| `console.php`  | Datei, in der Sie Artisan-Befehle als Closures definieren.                                                                                     |
| `api.php`      | Stateless-API-Routen. Mit dem Befehl `install:api` hinzugefügt.                                                                                |
| `channels.php` | Datei zur Registrierung von Broadcasting-Kanälen.                                                                                              |

### Verzeichnis `storage/`

Speichert vom Framework erzeugte Dateien wie Logs, kompilierte Blade-Templates, dateibasierte Sessions und File-Cache.
Es ist in die drei Unterverzeichnisse `app/`, `framework/` und `logs/` aufgeteilt.

### Verzeichnis `tests/`

Speichert Ihre automatisierten Tests.
Beispiele für Unit- und Feature-Tests mit [Pest](https://pestphp.com) oder [PHPUnit](https://phpunit.de/) sind von Anfang an enthalten.

### Verzeichnis `vendor/`

Enthält die [Composer](https://getcomposer.org)-Abhängigkeiten. Committen Sie dieses Verzeichnis nicht in die Versionskontrolle.

## Details zum Verzeichnis `app/`

Viele Klassen im Verzeichnis `app` lassen sich mit Artisan-Befehlen erzeugen.
Um die verfügbaren Befehle zu sehen, führen Sie aus:

```shell theme={null}
php artisan list make
```

<AccordionGroup>
  <Accordion title="Verzeichnis Http/">
    Enthält Controller, Middleware und Form Requests.
    Nahezu die gesamte Logik zur Verarbeitung von Anfragen befindet sich hier.
  </Accordion>

  <Accordion title="Verzeichnis Models/">
    Enthält sämtliche [Eloquent-Modell](/de/eloquent)-Klassen.
    Für jede Datenbanktabelle gibt es ein zugehöriges Modell, mit dem Sie Daten abfragen und einfügen.
  </Accordion>

  <Accordion title="Verzeichnis Providers/">
    Enthält alle [Service Provider](/de/service-providers) Ihrer Anwendung.
    Service Provider binden Dienste in den Container, registrieren Events und übernehmen weitere Startaufgaben.
  </Accordion>

  <Accordion title="Verzeichnis Console/">
    Enthält alle eigenen Artisan-Befehle.
    Sie können mit `make:command` erzeugt werden.
  </Accordion>

  <Accordion title="Verzeichnis Exceptions/">
    Enthält alle benutzerdefinierten Exceptions Ihrer Anwendung.
    Sie können mit `make:exception` erzeugt werden.
  </Accordion>
</AccordionGroup>

## Wichtige Dateien

### Datei `.env`

Verwaltet Konfigurationswerte, die sich je nach Umgebung unterscheiden (z. B. Datenbank-Zugangsdaten oder API-Schlüssel).
Sie werden über den Helper `env()` aus den Konfigurationsdateien in `config/` referenziert.

```ini theme={null}
APP_NAME=Laravel
APP_ENV=local
APP_DEBUG=true
APP_URL=http://localhost

DB_CONNECTION=sqlite
```

### Datei `artisan`

Der Einstiegspunkt der Artisan-Kommandozeilenschnittstelle.
Sie führen sie in der Form `php artisan <Befehlsname>` aus.

## Nächste Schritte

<Card title="Routing" icon="route" href="/de/routing">
  Lernen Sie, wie Sie Routen definieren und URLs mit Anwendungslogik verknüpfen.
</Card>


## Related topics

- [Vue.js – Einstieg mit Inertia × Laravel](/de/blog/vue-introduction.md)
- [Plugin Directories](/de/packages/laravel-copilot-sdk/plugin-directories.md)
- [React – Einstieg mit Inertia × Laravel](/de/blog/react-introduction.md)
- [Svelte – Einstieg mit Inertia × Laravel](/de/blog/svelte-introduction.md)
- [Skills](/de/packages/laravel-copilot-sdk/skills.md)
