%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
<?php
/**
* CONTOH Konfigurasi Database — PPID Kabupaten Mamuju Tengah
*
* CARA PAKAI:
* 1. Salin berkas ini menjadi `config/database.php` (di folder yang sama).
* 2. Isi kredensial sesuai server.
*
* Linux/SSH : cp config/database.example.php config/database.php
* Windows : copy config\database.example.php config\database.php
*
* PENTING: `config/database.php` sengaja TIDAK diikutkan ke git (.gitignore)
* agar kredensial server tidak bocor ke repository DAN agar `git pull`
* tidak menimpa pengaturan produksi Anda.
*/
// ── Kredensial database ──
// Lokal (Laragon/XAMPP) biasanya: host 127.0.0.1, user root, password kosong.
// Server produksi: isi sesuai data dari panel hosting Anda.
define('DB_HOST', '127.0.0.1');
define('DB_PORT', '3306');
define('DB_NAME', 'ppid_mateng');
define('DB_USER', 'ppid_user');
define('DB_PASS', 'PPID@2026');
define('DB_CHARSET', 'utf8mb4');
/**
* Mengembalikan instance PDO tunggal (singleton).
*
* @return PDO
*/
function db(): PDO
{
static $pdo = null;
if ($pdo === null) {
$dsn = sprintf(
'mysql:host=%s;port=%s;dbname=%s;charset=%s',
DB_HOST,
DB_PORT,
DB_NAME,
DB_CHARSET
);
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
try {
$pdo = new PDO($dsn, DB_USER, DB_PASS, $options);
} catch (PDOException $e) {
if (defined('APP_ENV') && APP_ENV === 'development') {
die('Koneksi database gagal: ' . htmlspecialchars($e->getMessage()));
}
http_response_code(500);
die('Terjadi kesalahan pada server. Silakan coba beberapa saat lagi.');
}
}
return $pdo;
}