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 brakujerequire— dołącza plik; powoduje błąd krytyczny, jeśli go brakujeinclude_once— dołącza plik tylko wtedy, gdy nie został wcześniej dołączonyrequire_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 filesZakres 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 arraysBudowanie 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 autoloaderBezpieczeń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.phpSzybkie 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 kluczowychinclude— 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
- Znaczniki PHP i składnia osadzania
- Dynamiczny kod HTML z pętlami PHP
- Dołączanie i wymaganie plików
- Wzorzec szablonu: oddzielanie logiki od widoku