Spojování souborů

Spojování souborů

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.

Využití:

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:

hlavicka.php

<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>

paticka.php

<footer>
  <div>
    <a href="#"><img src="ico/facebook.svg" alt="facebook" /></a>
  </div>
  <div>Copyright © 2019 | Můj web</div>
</footer>

index.php

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