Skip to content

Commit fc32b37

Browse files
committed
v1.0.0
1 parent 48d3bd5 commit fc32b37

2 files changed

Lines changed: 185 additions & 0 deletions

File tree

README-AR.md

Lines changed: 183 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,183 @@
1+
![Maatify.dev](https://www.maatify.dev/assets/img/img/maatify_logo_white.svg)
2+
3+
---
4+
5+
# ⚙️ Maatify Bootstrap
6+
7+
[![Packagist Version](https://img.shields.io/packagist/v/maatify/bootstrap.svg?label=Version&color=4C1)](https://packagist.org/packages/maatify/bootstrap)
8+
[![PHP Version Support](https://img.shields.io/packagist/php-v/maatify/bootstrap.svg?label=PHP)](https://packagist.org/packages/maatify/bootstrap)
9+
[![Build Status](https://github.com/Maatify/bootstrap/actions/workflows/tests.yml/badge.svg)](https://github.com/Maatify/bootstrap/actions/workflows/tests.yml)
10+
[![Monthly Downloads](https://img.shields.io/packagist/dm/maatify/bootstrap.svg?label=Downloads)](https://packagist.org/packages/maatify/bootstrap)
11+
[![License](https://img.shields.io/github/license/Maatify/bootstrap.svg?label=License)](LICENSE)
12+
13+
---
14+
15+
### طبقة تهيئة موحّدة للبيئة وتشخيص الأنظمة
16+
**المشروع:** `maatify:bootstrap`
17+
**الإصدار:** 1.0.0
18+
**الترخيص:** MIT
19+
**المطوّر:** [Mohamed Abdulalim (megyptm)](mailto:mohamed@maatify.dev)
20+
**© 2025 Maatify.dev**
21+
22+
> 🔗 [English Version](./README.md)
23+
24+
---
25+
26+
## 🧭 نظرة عامة
27+
28+
مكتبة `maatify/bootstrap` هي **الأساس المركزي** لنظام Maatify بالكامل،
29+
حيث توفّر تهيئة موحّدة للبيئة (Environment Initialization) وتشخيصات دقيقة (Diagnostics)
30+
إضافة إلى ضبط المنطقة الزمنية (Timezone) وفحص أمان التشغيل قبل البدء في تنفيذ أي تطبيق أو مكتبة ضمن منظومة Maatify.
31+
32+
تهدف إلى ضمان تشغيل مستقر ومتوقّع وآمن عبر جميع البيئات:
33+
- بيئة التطوير المحليّة
34+
- أنظمة الاختبار والتكامل المستمر (CI/CD)
35+
- بيئات الإنتاج والاستضافة الفعلية
36+
37+
---
38+
39+
## ⚙️ التثبيت
40+
41+
```bash
42+
composer require maatify/bootstrap
43+
````
44+
45+
---
46+
47+
## 📦 الاعتمادات
48+
49+
تعتمد هذه المكتبة على مجموعة من المشاريع مفتوحة المصدر:
50+
51+
| الاعتماد | الوظيفة الأساسية | الرابط |
52+
| -------------------- | -------------------------------------------------- | ------------------------------------------------------------------ |
53+
| **vlucas/phpdotenv** | تحميل ملفات البيئة `.env` بشكل آمن ومنظّم | [github.com/vlucas/phpdotenv](https://github.com/vlucas/phpdotenv) |
54+
| **psr/log** | واجهة تسجيل قياسية (PSR-3 Logger Interface) | [www.php-fig.org/psr/psr-3](https://www.php-fig.org/psr/psr-3/) |
55+
| **phpunit/phpunit** | إطار عمل لاختبارات الوحدة (Unit Testing Framework) | [phpunit.de](https://phpunit.de) |
56+
57+
> تبني `maatify/bootstrap` هذه المكتبات لتوفير طبقة تهيئة آمنة وموثوقة وموحّدة
58+
> تُستخدم في جميع مكتبات وتطبيقات Maatify.
59+
60+
---
61+
62+
## 🧩 المزايا الرئيسية
63+
64+
* 🔐 تحميل ملفات البيئة `.env` حسب الأولوية
65+
* 🌍 إعداد المنطقة الزمنية (`APP_TIMEZONE` – الافتراضي: `Africa/Cairo`)
66+
* 🧠 تخزين ذكي لقيم البيئة عبر `EnvHelper`
67+
* 🧱 نقطة بدء موحّدة للتطبيقات باستخدام `Bootstrap::init()`
68+
* 🚦 تفعيل "الوضع الآمن" (Safe Mode) لحماية بيئة الإنتاج
69+
* 🧪 تغطية كاملة بالاختبارات الآلية (PHPUnit + CI)
70+
* 🐳 جاهزة للتكامل مع Docker و GitHub Actions
71+
72+
---
73+
74+
## 🧠 أولوية تحميل ملفات البيئة
75+
76+
يقوم `maatify/bootstrap` بتحميل **ملف واحد فقط** من ملفات البيئة، حسب الترتيب التالي:
77+
78+
| الأولوية | الملف | الاستخدام |
79+
| -------- | -------------- | ---------------------------------- |
80+
| 1️⃣ | `.env.local` | إعدادات خاصة بالمطور (محلية وخاصة) |
81+
| 2️⃣ | `.env.testing` | إعدادات بيئة الاختبار أو CI |
82+
| 3️⃣ | `.env` | الإعدادات الأساسية لبيئة الإنتاج |
83+
| 4️⃣ | `.env.example` | ملف افتراضي يُستخدم كنسخة توضيحية |
84+
85+
> بمجرد العثور على ملف بيئة صالح، **يتوقف التحميل مباشرة**
86+
> لمنع أي ملف لاحق من استبدال القيم.
87+
> وتُستخدم طريقة `Dotenv::createImmutable()` (من مكتبة **vlucas/phpdotenv**) لتأمين القيم ومنع التعديل عليها.
88+
89+
---
90+
91+
## 🧠 مثال على الاستخدام
92+
93+
```php
94+
use Maatify\Bootstrap\Core\Bootstrap;
95+
96+
Bootstrap::init();
97+
98+
// الوصول إلى القيم المحمّلة من البيئة
99+
$env = $_ENV['APP_ENV'] ?? 'production';
100+
echo "يتم التشغيل في بيئة: $env";
101+
```
102+
103+
ولتشغيل وضع التشخيص:
104+
105+
```php
106+
use Maatify\Bootstrap\Core\BootstrapDiagnostics;
107+
use Maatify\PsrLogger\LoggerFactory;
108+
109+
$logger = LoggerFactory::create('bootstrap');
110+
$diag = new BootstrapDiagnostics($logger);
111+
112+
print_r($diag->run());
113+
```
114+
115+
---
116+
117+
## 🧰 التكامل مع Docker
118+
119+
لتوحيد البيئة بين التطوير وبيئة الاختبار (CI):
120+
121+
```bash
122+
docker compose up --build
123+
docker compose exec bootstrap composer run-script test
124+
```
125+
126+
---
127+
128+
## 🧪 الاختبارات
129+
130+
لتشغيل الاختبارات محليًا:
131+
132+
```bash
133+
composer run-script test
134+
```
135+
136+
يتم تنفيذ الاختبارات تلقائيًا في نظام GitHub Actions من خلال:
137+
138+
```
139+
.github/workflows/tests.yml
140+
```
141+
142+
---
143+
144+
## 📄 التوثيق الكامل
145+
146+
التوثيق المفصّل لكل مراحل التطوير (من المرحلة 1 إلى 7):
147+
👉 [**docs/README.full.md**](./docs/README.full.md)
148+
149+
---
150+
151+
**Maatify Bootstrap***«تهيئة واحدة، واستقرار في كل مكان».*
152+
153+
---
154+
155+
## 🪪 الترخيص
156+
157+
**[ترخيص MIT](LICENSE)** © [Maatify.dev](https://www.maatify.dev)
158+
يمكنك استخدام هذه المكتبة وتعديلها وتوزيعها بحرّية مع الحفاظ على النسبة إلى المصدر.
159+
160+
---
161+
162+
## 📚 المشاريع المعتمدة عليها
163+
164+
تم بناء `maatify/bootstrap` بالاعتماد على مشاريع مفتوحة المصدر أساسية:
165+
166+
| المكتبة | الوصف | الاستخدام داخل المشروع |
167+
| ----------------------------------------------------------- | -------------------------------------- | ---------------------------------------------------------------------------- |
168+
| **[vlucas/phpdotenv](https://github.com/vlucas/phpdotenv)** | مكتبة شهيرة لتحميل ملفات البيئة `.env` | تستخدم لتحميل القيم بشكل آمن وغير قابل للتعديل في جميع مشاريع Maatify. |
169+
| **[psr/log](https://www.php-fig.org/psr/psr-3/)** | واجهة تسجيل موحّدة من PHP-FIG (PSR-3) | تُستخدم لتمكين نظام تسجيل متوافق وقابل للاستبدال ضمن `BootstrapDiagnostics`. |
170+
| **[phpunit/phpunit](https://phpunit.de)** | إطار عمل للاختبارات في PHP | يُستخدم لتشغيل جميع الاختبارات الآلية وضمان استقرار الحزم. |
171+
172+
> شكر خاص لمطوري هذه المشاريع مفتوحة المصدر
173+
> لتقديمهم اللبنات الأساسية التي بُني عليها هذا المشروع ❤️
174+
175+
---
176+
177+
## 🧱 المطوّرون وحقوق النشر
178+
179+
**تم التطوير بواسطة:** [**Maatify.dev**](https://www.maatify.dev)
180+
**المسؤول:** Mohamed Abdulalim
181+
**المشروع:** `maatify:bootstrap`
182+
183+
---

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
**Author:** [Mohamed Abdulalim (megyptm)](mailto:mohamed@maatify.dev)
2020
**© 2025 Maatify.dev**
2121

22+
> 🔗 [بالعربي](./README-AR.md)
23+
2224
---
2325

2426
## 🧭 Overview

0 commit comments

Comments
 (0)