<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
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!
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>
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!
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.
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.
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).