0Pricing
PHP Academy · Lekcja

Dołączanie i wymaganie plików

Dziel strony na wielokrotnie używane części za pomocą include i require

Dołączanie i wymaganie plików to bezpłatna lekcja PHP Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej PHP Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs PHP Academy zawiera 4 lekcji w sumie.

Ponowne używanie kodu za pomocą dołączania plików

PHP udostępnia cztery instrukcje dołączania kodu z innych plików:

  • include — dołącza plik; wyświetla ostrzeżenie, jeśli go brakuje
  • require — dołącza plik; powoduje błąd krytyczny, jeśli go brakuje
  • include_once — dołącza plik tylko wtedy, gdy nie został wcześniej dołączony
  • require_once — wymaga pliku tylko wtedy, gdy nie został wcześniej dołączony

include i require

Najważniejsza różnica: brakujący plik require powoduje błąd krytyczny, a brakujący plik include jedynie ostrzeżenie:

<?php
// Fatal error if missing — use for critical files
require 'config.php';
require 'database.php';

// Warning if missing, but execution continues
include 'optional_plugin.php';

// Use __DIR__ for reliable relative paths:
require __DIR__ . '/helpers/utils.php';

include_once i require_once

Warianty _once zapobiegają wielokrotnemu dołączaniu tego samego pliku:

<?php
// Without _once: including twice redefines functions
include 'functions.php';
include 'functions.php';  // Fatal: function redefined!

// With _once: second include is a no-op
require_once 'functions.php';
require_once 'functions.php';  // safe — skipped

// Rule: use require_once for class and function definition files

Zakres zmiennych w dołączanych plikach

Dołączane pliki współdzielą zakres pliku, który je dołącza — ale nie zakres funkcji:

<?php
// main.php
$title = 'My Site';
require 'header.php';  // header.php can use $title

// But in a function:
function loadTemplate(): void {
    require 'header.php';  // $title is NOT accessible here!
    // Must pass data explicitly
}

Zwracanie wartości z dołączanych plików

Dołączane pliki mogą zwracać wartości za pomocą instrukcji return:

<?php
// config.php content:
// return ['debug' => true, 'db_host' => 'localhost'];

// main.php:
$config = require 'config.php';
echo $config['db_host'];  // localhost

// Common pattern for configuration files that return arrays

Budowanie prostego układu strony

Podziel stronę na wielokrotnie używane pliki nagłówka, treści i stopki:

<?php
// index.php
$pageTitle = 'Home Page';
$bodyClass = 'home';

require_once 'partials/header.php';
?>

<main class="container">
    <h1>Welcome!</h1>
    <p>Main content goes here.</p>
</main>

<?php require_once 'partials/footer.php'; ?>

Częściowe szablony

Twórz wielokrotnie używane pliki częściowych widoków dla powtarzających się komponentów:

<?php
// partials/card.php
// Expects: $card['title'], $card['body'], $card['url']
?>

<div class="card">
    <h3><a href="<?= htmlspecialchars($card['url']) ?>">
        <?= htmlspecialchars($card['title']) ?>
    </a></h3>
    <p><?= htmlspecialchars($card['body']) ?></p>
</div>

Przekazywanie zmiennych do częściowych szablonów

Przekaż dane do częściowego szablonu, przypisując lokalne zmienne przed jego dołączeniem:

<?php
$articles = getArticles();

foreach ($articles as $article) {
    $card = [
        'title' => $article['title'],
        'body'  => substr($article['body'], 0, 100) . '...',
        'url'   => '/articles/' . $article['slug'],
    ];
    require 'partials/card.php';
}

include a automatyczne ładowanie

We współczesnym PHP używającym Composera pliki klas są ładowane automatycznie — nie trzeba dołączać ich ręcznie:

<?php
// Old way (manual includes):
require 'classes/User.php';
require 'classes/Post.php';

// Modern way (Composer autoloading):
require __DIR__ . '/vendor/autoload.php';

// Classes are loaded automatically when first used
$user = new User();  // User.php loaded by autoloader
$post = new Post();  // Post.php loaded by autoloader

Bezpieczeństwo: zapobieganie path traversal

Nigdy nie dołączaj plików na podstawie niezweryfikowanych danych wejściowych użytkownika:

<?php
// DANGEROUS:
$page = $_GET['page'];
include $page . '.php';  // allows ../../etc/passwd

// SAFE: whitelist allowed pages
$allowed = ['home', 'about', 'contact'];
$page = $_GET['page'] ?? 'home';

if (!in_array($page, $allowed)) {
    $page = 'home';
}

include __DIR__ . '/pages/' . $page . '.php';

Konfiguracja include_path

Skonfiguruj include_path PHP, aby móc dołączać pliki bez podawania pełnych ścieżek:

<?php
// Current include_path:
echo get_include_path();

// Add your library directory:
set_include_path(
    get_include_path() . PATH_SEPARATOR . '/var/www/lib'
);

// Now you can include without full path:
include 'helpers.php';  // found in /var/www/lib/helpers.php

Szybkie sprawdzenie

Jaka jest różnica między include i require, gdy brakuje pliku?

Podsumowanie: dołączanie plików

Podsumowanie:

  • require — błąd krytyczny w przypadku braku pliku; używaj do plików kluczowych
  • include — ostrzeżenie w przypadku braku pliku; używaj do plików opcjonalnych
  • Warianty _once zapobiegają wielokrotnemu ładowaniu
  • Dołączane pliki współdzielą zakres zmiennych wywołującego
  • Pliki mogą zwracać wartości za pomocą return
  • Nigdy nie dołączaj ścieżek pochodzących od użytkownika — stosuj wyłącznie białą listę

Często zadawane pytania

Czy lekcja „Dołączanie i wymaganie plików” jest bezpłatna?

Tak — pełny tekst „Dołączanie i wymaganie plików” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu PHP Academy, przejdź na CoddyKit PRO. Kurs PHP Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Dołączanie i wymaganie plików”?

Dziel strony na wielokrotnie używane części za pomocą include i require Ćwiczysz PHP Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć PHP Academy?

Nie wymagamy żadnego doświadczenia. PHP Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.

Ile czasu zajmuje lekcja „Dołączanie i wymaganie plików”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji PHP Academy?

Tak. Każda lekcja PHP Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Znaczniki PHP i składnia osadzania
  2. Dynamiczny kod HTML z pętlami PHP
  3. Dołączanie i wymaganie plików
  4. Wzorzec szablonu: oddzielanie logiki od widoku
← Powrót do PHP Academy