Tutorial PHP #15: Include, Require, Include Once, Require Once
1. Kenapa Perlu Memecah File?
Bayangkan website dengan 20 halaman dan semuanya punya header dan footer yang sama. Kalau kamu tulis ulang di setiap file, saat ada perubahan kamu harus edit 20 file sekaligus. Dengan include dan require, kamu cukup edit satu file.
2. include
Menyisipkan isi file lain ke dalam file PHP saat ini. Jika file tidak ditemukan, PHP hanya menampilkan warning tapi script tetap berjalan.
<?php
// header.php
?>
<header>
<nav>
<a href="index.php">Home</a>
<a href="about.php">About</a>
</nav>
</header>
<?php
// index.php
include "header.php"; // sisipkan header
include "includes/config.php"; // sisipkan config
?>
<main>
<h1>Halaman Utama</h1>
</main>
<?php
include "footer.php"; // sisipkan footer
?>
3. require
Sama seperti include, tapi jika file tidak ditemukan, PHP menampilkan fatal error dan script berhenti. Gunakan require untuk file yang benar-benar wajib ada.
<?php
require "config.php"; // WAJIB ada, kalau tidak ada = error fatal
require "database.php"; // WAJIB ada
include "analytics.php"; // Opsional, kalau tidak ada tetap jalan
?>
4. include_once dan require_once
Versi _once memastikan file hanya dimuat satu kali meskipun dipanggil berkali-kali. Ini penting untuk mencegah error "function already defined" atau "class already declared".
<?php
// Misalkan ada dua file yang keduanya include helpers.php
// Tanpa _once: helpers.php dimuat dua kali = error!
require_once "helpers.php"; // pertama kali: dimuat
require_once "helpers.php"; // kedua kali: diabaikan, tidak error
include_once "config.php";
?>
5. Contoh Struktur Project dengan Include
project/
├── index.php
├── about.php
├── config.php
└── includes/
├── header.php
├── footer.php
├── navbar.php
└── db.php
<?php
// config.php - konfigurasi global
define("BASE_URL", "http://localhost/project");
define("APP_NAME", "Belajar PHP");
define("DB_HOST", "localhost");
define("DB_NAME", "db_belajar");
?>
<?php
// index.php
require_once "config.php";
require_once "includes/db.php";
include "includes/header.php";
?>
<main>
<h1>Selamat datang di <?= APP_NAME ?></h1>
</main>
<?php include "includes/footer.php"; ?>
6. Path Absolut vs Relatif
<?php
// Path relatif - relatif dari lokasi file yang menjalankan
include "includes/header.php";
include "../config.php";
// Path absolut - lebih aman, tidak tergantung lokasi file
include __DIR__ . "/includes/header.php";
include dirname(__FILE__) . "/config.php";
?>
Tips: Gunakan __DIR__ untuk path absolut yang dinamis - lebih aman daripada path relatif terutama saat file dipanggil dari folder yang berbeda.
7. Ringkasan
include- menyisipkan file, warning jika tidak adarequire- menyisipkan file, fatal error jika tidak ada (untuk file wajib)include_once/require_once- mencegah file dimuat lebih dari satu kali- Gunakan
__DIR__untuk path yang lebih aman dan konsisten
Tutorial berikutnya membahas superglobal variable di PHP.
.jpg)
