ما هو phpdotenv؟
phpdotenv هي مكتبة PHP شائعة لإدارة تهيئة التطبيقات عبر متغيرات البيئة. تسمح بتحميل الإعدادات من ملف .env إلى المصفوفة $_ENV والمتغيرات العامة getenv()، مما يبسط فصل التهيئة عن الكود. تم إنشاؤها مستوحاة من مكتبة Ruby dotenv وتُستخدم على نطاق واسع في أطر عمل PHP الحديثة (Laravel, Symfony).
لماذا نحتاج phpdotenv؟
عند تطوير التطبيقات، غالبًا ما نحتاج لتخزين البيانات الحساسة (كلمات مرور قواعد البيانات، مفاتيح API) بشكل منفصل عن الكود. يحل phpdotenv هذه المشكلة: تقوم بإنشاء ملف .env لا يتم تضمينه في المستودع (يُضاف إلى .gitignore)، وتقوم المكتبة بتحميله إلى البيئة. هذا يضمن الأمان، والمرونة (إعدادات مختلفة لـ dev/staging/prod)، والامتثال لمبدأ 12-factor app.
تثبيت phpdotenv
قم بتثبيت المكتبة عبر Composer:
composer require vlucas/phpdotenvتأكد من تثبيت Composer و PHP الإصدار 7.1 أو أعلى.
الوظائف الأساسية
- تحميل ملف .env — تحليل مفتاح=قيمة مع دعم التعليقات (#) والأسطر الفارغة.
- المتغيرات الإلزامية — التحقق من وجود المفاتيح الضرورية باستخدام
required(). - تحديد الأنواع — تحويل تلقائي للسلاسل إلى أنواع (boolean, integer, null).
- الأمان — هروب الأحرف الخاصة، دعم علامات الاقتباس.
- الثبات — حماية من إعادة كتابة متغيرات البيئة الموجودة.
مثال كود PHP
require 'vendor/autoload.php';
use Dotenv\\Dotenv;
// تحميل .env من الدليل الجذر$dotenv = Dotenv::createImmutable(__DIR__);$dotenv->load();
// الآن المتغيرات متاحة عبر getenv()$dbHost = getenv('DB_HOST');$dbName = getenv('DB_NAME');
// أو عبر $_ENVecho $_ENV['APP_ENV']; // 'local'
// التحقق من المتغيرات الإلزامية$dotenv->required(['DB_HOST', 'DB_NAME']);
// مثال لملف .env:// DB_HOST=localhost// DB_NAME=test// APP_ENV=localمتى تستخدم phpdotenv
المكتبة مثالية لـ:
- تطبيقات الويب PHP (Laravel, Symfony, Slim).
- سكريبتات CLI والخدمات المصغرة.
- المشاريع التي تتطلب تغيير سريع في التهيئة دون تعديل الكود.
- التطوير الجماعي — يمكن لكل مطور أن يكون لديه ملف
.envخاص به. - خطوط CI/CD — يتم تعيين المتغيرات عبر بيئة الخادم بدلاً من الملف.
هام: لا تقم أبدًا بإضافة ملف .env إلى المستودع. أنشئ ملف .env.example مع قالب للزملاء.