شرح صفوف ومحتوى الفقرة
لا تكتب كلمات مرور قاعدة البيانات أو مفاتيح الواجهات داخل الكود المرفوع إلى Git أبداً؛ بل اقرأها من متغيرات البيئة عبر $_ENV أو getenv().
- ارفع ملف نموذج باسم
.env.exampleبالقيم الافتراضية، وأضف ملف.envالحقيقي إلى.gitignore. - اجمع قراءة متغيرات البيئة في ملف إعداد مركزي مثل
config/database.php. - حوّل القيم الرقمية أو المنطقية المقروءة من البيئة صراحةً (مثل
(int) ($_ENV["DB_PORT"] ?? 3306)).
يوفر معامل دمج الفارغ ?? قيماً افتراضية للتطوير المحلي مع قراءة قيم الخادم الحقيقية في بيئة الإنتاج.
PHP
<?php
// File: config/database.php
$dbConfig = [
'host' => $_ENV['DB_HOST'] ?? '127.0.0.1',
'port' => (int) ($_ENV['DB_PORT'] ?? 3306),
'name' => $_ENV['DB_DATABASE'] ?? 'closetag_app',
'debug' => ($_ENV['APP_DEBUG'] ?? 'false') === 'true',
];
echo "DSN: mysql:host={$dbConfig['host']};dbname={$dbConfig['name']}\n";