Spojování souborů se hodí k rozdělení kódu na menší části a jejich případné znovupoužití.
V PHP jsou k dispozici 4 funkce pro vložení jiného PHP skriptu – include, include_once, require a require_once. Rozdíl mezi include a require je ten, že require skončí při nenalezení souboru fatální chybou, kdyžto include jenom vyvolá varování. Varianty _once slouží k zajištění pouze jednoho vložení onoho souboru, nedojde k jeho načtení vícekrát.
V rámci kurzu se ve většině případů vystačíme s používáním require.
U většiny webů vypadá hlavička i patička na všech stránkách daného webu stejně. Dává proto velký smysl rozdělit si kód hlavičky a patičky do samostatných souborů a ty poté pouze připojovat. V budoucnu, když se poté rozhodneme udělat v hlavičce nebo patičce nějakou změnu, nemusíme jí provádět ve všech souborech, ale úpravu provedeme jen na jednom místě.
Můžeme mít například 3 soubory hlavicka.php, paticka.php a index.php, které budou vypadat takto:
<header>
<div class="logo"><img src="logo.svg" alt="logo" /></div>
<nav>
<ul>
<li><a href="#">Domů</a></li>
<li><a href="#">O mně</a></li>
<li><a href="#">Blog</a></li>
<li><a href="#">Kontakt</a></li>
</ul>
</nav>
</header>
<footer>
<div>
<a href="#"><img src="ico/facebook.svg" alt="facebook" /></a>
</div>
<div>Copyright © 2019 | Můj web</div>
</footer>
<!DOCTYPE html>
<html lang="cs">
<head>
<meta charset="UTF-8" />
<title>Můj web</title>
</head>
<body>
<?php require __DIR__ . '/hlavicka.php'; ?>
<main>
<h1>Můj web</h1>
<p>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Repellat culpa
ducimus laudantium, voluptatem officiis debitis odit dicta,
necessitatibus accusantium temporibus accusamus reiciendis aliquid? Sit,
molestiae alias ab dignissimos exercitationem maxime?
</p>
</main>
<?php require __DIR__ . '/paticka.php'; ?>
</body>
</html>
V kódu u souboru index.php vás může překvapit nové klíčové slovo __DIR__. Jedná se o magickou konstantu, ve které je uložena cesta k aktuálnímu souboru, ve kterém je konstanta použita. Náš kód by ve většině případů fungoval i bez ní, ale je dobré si zvyknout na její používání a vyhnout se tak případným problémům.
Html kód, který server vygeneruje při volání souboru index.php bude vypadat takto:
<!DOCTYPE html>
<html lang="cs">
<head>
<meta charset="UTF-8" />
<title>Můj web</title>
</head>
<body>
<header>
<div class="logo"><img src="logo.svg" alt="logo" /></div>
<nav>
<ul>
<li><a href="#">Domů</a></li>
<li><a href="#">O mně</a></li>
<li><a href="#">Blog</a></li>
<li><a href="#">Kontakt</a></li>
</ul>
</nav>
</header>
<main>
<h1>Můj web</h1>
<p>
Lorem ipsum dolor sit amet consectetur adipisicing elit. Repellat culpa
ducimus laudantium, voluptatem officiis debitis odit dicta,
necessitatibus accusantium temporibus accusamus reiciendis aliquid? Sit,
molestiae alias ab dignissimos exercitationem maxime?
</p>
</main>
<footer>
<div>
<a href="#"><img src="ico/facebook.svg" alt="facebook" /></a>
</div>
<div>Copyright © 2019 | Můj web</div>
</footer>
</body>
</html>