Symfony لـ PHP: دليل كامل مع أمثلة

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

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

ابدأ الدورة

ما هو Symfony ولماذا هو مطلوب؟

\n\n

Symfony هو إطار عمل مكوني قوي وناضج ومن أشهر أطر العمل للغة PHP. وهو مصمم لإنشاء تطبيقات الويب، بدءًا من المواقع الصغيرة وصولاً إلى الأنظمة المؤسسية المعقدة. على عكس أطر العمل المتجانسة، تم بناء Symfony على مبدأ النمطية: فهو يتكون من مجموعة من المكونات (المكتبات) المستقلة والموثقة جيدًا والقابلة لإعادة الاستخدام. يمكنك استخدام الإطار بأكمله أو مكوناته الفردية (على سبيل المثال، فقط مكون طلب HTTP أو التوجيه) في أي مشروع PHP آخر.

\n\n

لماذا هو مطلوب؟

\n
    \n
  • تسريع التطوير: يوفر Symfony حلولاً جاهزة للمهام النموذجية: التوجيه، العمل مع قواعد البيانات (عبر Doctrine ORM)، القوالب (Twig)، المصادقة، معالجة النماذج، التخزين المؤقت، وأكثر من ذلك بكثير. لست بحاجة لإعادة اختراع العجلة.
  • \n
  • الهيكلة وقابلية الصيانة: يفرض الإطار بنية واضحة (MVC - Model-View-Controller)، مما يجعل الكود منظمًا وقابلًا للتنبؤ وسهل الصيانة من قبل المطورين الآخرين.
  • \n
  • الموثوقية والأمان: يحتوي Symfony على آليات مدمجة للحماية من الثغرات الشائعة (CSRF, XSS, SQL-حقن). يُستخدم في عمالقة مثل Drupal و phpBB والعديد من المشاريع المؤسسية.
  • \n
  • المجتمع والنظام البيئي: مجتمع ضخم، وآلاف الحزم الجاهزة (الإضافات)، وتوثيق ممتاز، ودعم طويل الأمد (إصدارات LTS).
  • \n
  • المرونة: يمكنك البدء بإطار عمل مصغر (Symfony MicroKernel) لواجهات API ثم إضافة المكونات المطلوبة تدريجيًا مع نمو المشروع.
  • \n
\n\n

تثبيت Symfony

\n\n

على عكس Python (حيث يُستخدم pip)، في PHP تُستخدم Composer لإدارة التبعيات. يتكون تثبيت Symfony من مرحلتين: تثبيت المثبت نفسه (Symfony CLI) وإنشاء المشروع.

\n\n

1. تثبيت Composer

\n

إذا لم يكن لديك Composer بعد، قم بتنزيله وتثبيته من الموقع الرسمي getcomposer.org. هذه أداة عالمية لـ PHP.

\n
# التحقق من تثبيت Composer\ncomposer --version
\n\n

2. تثبيت Symfony CLI (موصى به)

\n

Symfony CLI هي أداة مريحة لإنشاء وإدارة وتشغيل المشاريع.

\n
# التثبيت على macOS/Linux (عبر curl)\ncurl -sS https://get.symfony.com/cli | bash\n\n# التثبيت على Windows (عبر Chocolatey)\nchoco install symfony-cli\n\n# التحقق\nsymfony --version
\n\n

3. إنشاء مشروع جديد

\n

استخدم الأمر symfony new لإنشاء هيكل التطبيق.

\n
# إنشاء تطبيق ويب كامل (مع Symfony Flex)\nsymfony new my_project --full\n\n# إنشاء تطبيق مصغر (لواجهات API)\nsymfony new my_api_project
\n

إذا كنت لا ترغب في تثبيت CLI، يمكنك استخدام Composer مباشرة:

\n
composer create-project symfony/skeleton:"7.0.*" my_project\n# أو للتطبيق الكامل:\ncomposer create-project symfony/website-skeleton:"7.0.*" my_project
\n\n

بداية سريعة مع مثال كود

\n\n

لنقم بإنشاء صفحة بسيطة "Hello, World!" باستخدام Symfony.

\n\n

1. إنشاء المتحكم (Controller)

\n

المتحكم هو كلاس PHP يعالج الطلب ويعيد الاستجابة. قم بإنشاء ملف src/Controller/HelloController.php:

\n
<?php\n// src/Controller/HelloController.php\n\nnamespace App\\Controller;\n\nuse Symfony\\Bundle\\FrameworkBundle\\Controller\\AbstractController;\nuse Symfony\\Component\\HttpFoundation\\Response;\nuse Symfony\\Component\\Routing\\Annotation\\Route;\n\nclass HelloController extends AbstractController\n{\n    #[Route('/hello/{name}', name: 'hello_page')]\n                    

توصيات