أفضل 10 مستودعات PHP على GitHub: من المبتدئ إلى المحترف

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

لماذا يجب أن تبحث في كود الآخرين؟

\n

هل تذكر ذلك الشعور عندما تكتب سكريبتًا يعمل على ما يبدو، لكنك تشعر أنه كان يمكن أن يكون أبسط وأكثر أناقة؟ أو عندما تنظر إلى كودك بعد شهر ولا تفهم ما يحدث؟ مرحبًا بك في النادي. الخبر السار هو أنك لست بحاجة لإعادة اختراع العجلة. مجتمع PHP على GitHub هو منجم ذهب من الحلول الجاهزة والأنماط المعمارية ومجرد أسطر كود جميلة.

\n

في هذه المقالة، لن نكتفي بسرد الروابط. سنوضح لك كيف تقرأ كود الآخرين وما الذي تبحث عنه تحديدًا في كل من هذه المستودعات. استعد، سيكون الأمر ممتعًا.

\n\n

1. Laravel: الأناقة و"السحر" تحت الغطاء

\n

لنبدأ بالملك. مستودع laravel/framework ليس مجرد إطار عمل، بل هو كتاب دراسي عن البرمجة كائنية التوجه المتقدمة في PHP. إذا كنت تريد فهم كيفية عمل Service Container أو Facades أو Eloquent، فهذا هو المكان المناسب.

\n

ما الذي يجب النظر إليه أولاً:

\n
    \n
  • المجلد src/Illuminate/Support — مجموعة من الدوال المساعدة. لاحظ الـ traits Macroable و Tappable. هذا هو السحر الذي يجعل الكود قابلاً للقراءة.
  • \n
  • ملفات التوجيه (Router.php) — افهم كيف يتحول الطلب إلى استجابة.
  • \n
  • الدالة __call() والدوال السحرية — يستخدمها Laravel بنشاط. شاهد كيف تم تنفيذ Facades.
  • \n
\n
<?php\n// مثال من trait Macroable\npublic static function macro($name, $macro)\n{\n    static::$macros[$name] = $macro;\n}\n\npublic function __call($method, $parameters)\n{\n    if (isset(static::$macros[$method])) {\n        return call_user_func_array(static::$macros[$method]->bindTo($this, static::class), $parameters);\n    }\n    throw new BadMethodCallException("Method {$method} does not exist.");\n}\n?>
\n

نصيحة: لا تحاول قراءة كل شيء دفعة واحدة. ابدأ بمكون واحد (مثل Http أو Database) وشاهد كيف يتم اختباره. الاختبارات في Laravel هي فن بحد ذاتها.

\n\n

2. Symfony: البنية التي يقوم عليها كل شيء

\n

إذا كان Laravel هو سيارة سباق، فإن symfony/symfony هو خط إنتاج مصنع. النمطية، Dependency Injection، Event Dispatcher. هذا المستودع سيعلمك كتابة كود لن ينهار بعد عام.

\n

نقاط الدخول الرئيسية:

\n
    \n
  • مكون HttpKernel — الجهاز العصبي للإطار. شاهد كيف يعمل middleware ومعالجة الاستثناءات.
  • \n
  • مكون DependencyInjection — افهم كيف يدير الحاوية التبعيات. هذا سيغير منهجيتك في التصميم.
  • \n
  • مكون Console — إذا كنت تكتب أوامر وحدة التحكم، شاهد كيف تم ذلك في Symfony. هناك حيل مع الأسئلة وشريط التقدم.
  • \n
\n
<?php\n// مثال من مكون Console: إخراج بسيط مع تقدم\nuse Symfony\\Component\\Console\\Helper\\ProgressBar;\n\n$progressBar = new ProgressBar($output, 50);\n$progressBar->start();\n\nfor ($i = 0; $i < 50; $i++) {\n    // ... نفعل شيئًا ...\n    usleep(100000);\n    $progressBar->advance();\n}\n\n$progressBar->finish();\n?>
\n

نصيحة: تجاهل "السحر". في Symfony لا يوجد سحر. كل شيء واضح وموثق. ابحث عن الملفات ذات اللاحقة Interface.php — هذه هي العقود التي تربط كل شيء معًا.

\n\n

3. Composer: مدير التبعيات الذي تستخدمه يوميًا

\n

مستودع composer/composer هو مثال على كيفية كتابة أدوات سطر الأوامر. إنه لا يتعلق بالويب، بل يتعلق بالهندسة.

\n

ماذا تتعلم:

\n
    \n
  • تحليل وحل التبعيات — خوارزمية معقدة، تم تنفيذها في الفئة Solver. شاهد

المدونات

توصيات الكتب