<aside> ☝

Složková struktura se může mírně lišit v závislosti na verzi Laravelu, to samé platí o souborech, které se v ní vyskytují. Proto je dobré číst oficiální dokumentaci a i informace o změnách mezi verzemi.

</aside>

Strukturu je možné rozdělit na pomyslné 3 celky - konfigurační soubory, složky a soubory aplikace a složky a soubory pro nastavení aplikace.

Většina konfiguračních souborů je vytvořená v kořenovém adresáři projektu (rootu) a nastavují se jen výjímečně. Například při instalaci projektu nebo publikování na server.

Informace poskytnuté zde rozšiřují to co je v oficiální dokumentaci a říkají to základní ce je třeba vědět.

Laravel - The PHP Framework For Web Artisans

Directory Structure - Oficiální dokumetace

Základní struktura Laravel projektu

Základní struktura Laravel projektu

Konfigurační soubory v rootu

Všechny tyto soubory slouží jako konfigurace projektu.

Všechny soubory začínající tečkou jsou skryté soubory! Více se o tom lze dozvědět v operačním systému Linux!

Soubory nutné pro projekt

Snímek obrazovky 2025-01-08 v 14.22.55.png

.editorconfig

Jedná se o soubor nutný v případě práce na projektu v IDE - Vývojové prostředí, které tuto konfiguraci podporují (doporučuji ji vždy zapnout i pro VS Code). Nastavuje se zde jak velké budou mezery, jestli tabulátor bude 4 nebo více mezer a celkově jak se píše kód po stránce odsazení a formátování.

<aside> ☝

Poznámka z praxe. Není nic horšího než si na Gitu přepisovat mezery za tabulátory, protože někdo z týmu neumí využívat tento soubor!

</aside>

.env a .env.example

Soubor, kde je veškerá konfigurace projektu, které nemůže být “hardcoded” uvnitř PHP. Tedy zde najdete všechny bezpečnostní klíče, hesla, přístupy a další konfigurace jak má kód PHP následně pracovat.

Příkladem může být nastavení serveru pro SMTP a odesílání e-mailů, ukládání souborů, přihlášení do databáze a další.

Soubor .env neexistuje a je jej nutné vždy vytvořit! při první čistý (čistý projekt) je automaticky vytvořen z .env.example, pokud se tak však nestane, je nutné jej ručně z tohoto souboru vytvořit jako kopii. Tento soubor se neverzuje - obsahuje citlivé údaje!

.env.example slouží k informování, jak má vypadat .env, je tedy nutné je udržovat stejné (ne však s citlivými údaji, ty jsou jen v .env!). Tento soubor se verzuje - neobsahuje citlivé údaje!

.gitignore

Soubor, který říká, jaké soubory nebudou verzovány na Git. Více se o tomto souboru lze dozvědět v Verzování, Git, GitHub.

artisan

Jedná se o příkazový řádek Laravelu (zde je jako forma souboru, která se volá skrze příkaz PHP). Více se o tomto příkazu php artisan ... lze dozvědět v Artisan - CLI.

composer.json

Jedná se o soubor, ve kterém jsou uloženy informace o projektu a všech využitých PHP knihovnách, které náš projekt bude používat. Jde tedy o PHP alternativu NPM u JavaScriptu.

Knihovny se instalují z repozitáře Packagist - ten je napojený na GitHub a lze jednoduše instalovat i knihovny přímo z GitHubu bez nutnosti mít vytvořenou knihovnu na tomto repozitáři.

Všechny tyto knihovny se instalují do složky vendor, uvnitř kořenové složky projektu (pokud není nastaveno jinak v tomto souboru). Tato složka se neverzuje!

Po instalaci vzniká soubor composer.lock - jedná se o soubor, který obsahuje v textové podobě všechny informace o aktuálně nainstalovaných knihovnách (mohou být například rozdílné verze od toho co požadujeme v composer.json).