في الفصل السابق أنجزنا برنامج أهلا، و للقيام بذلك إحتجنا :

  •  تعريف طريق مخصصة في الروتر router
  •  تعريف طريقة مخصصة في كونترولر Controller
  •  تعريف القالب تويغ twig الذي يحتوي على HTML

 

  1. البندل Bundle

 

إستعملنا الكونترولر الموجود إعتباطيا في نسخة سيمفوني التي ثبتناها، هذا الأخير يوجد في ملف إسمه AppBundle، لا بد لنا من التوقف عند مفهوم Bundle: في سيمفوني، البندل Bundle يعني الوحدة المستقلة. عمليا، لن نحتاج إستعمال أكثر من بندل للتطبيقات و المواقع العادية. و يحتوي البندل على العناصر التالية :

  • فئات الكونترولر Controller الموجودة في ملف من نفس الإسم : كل كونترولر يحمل إسما ينتهي ب Controller، و يضم طرقا إسمها ينتهي ب Action.
  • فئات النموذج Model و توجد في ملف إسمه Entity : هنا نعرف الفئات التي لها جداول تمثلها في قاعدة البيانات ( نعود لهذا الشق بتفصيل في فصل موالي).
  • الملف Resources الذي يحوي ملفات view و config : في الفصل السابق قمنا بتعريف القالب تويغ twig و بتحديث الملف routing.yml الموجودين في app، لقد قمنا بتعريف هذه العناصر مباشرة في المستوى العلوي (app). كان بإمكاننا تعريف الطريق و القوالب تويغ مباشرة في الملفات الموجودة تحت البندل (appBundle/resources)، شريطة أن نعلم المستوى العلوي بوجود تهييئات خاصة على مستوى البندل.
  • الملف Form الذي يحتوي على تعريفات الإستمارات ( نأتي عليها لاحقا).

 

  1. الكومبوزر Composer

 

الكمبوزر Composer ليس جزء من سيمفوني، بل إنه برنامج مستقل يستعمل في فريموركات PHP، في الفصل الاول من هذا الدرس و الذي خصصناه لتثبيت سيمفوني تطرقنا للكومبوزر كوسيلة لتثبيت سيمفوني في حد ذاته في حالة ما إذا فشل المثبت الخاص لسيمفوني.  سيمكننا الكومبوزر من ربح الكثير من الوقت، إذ إنطلاقا من أوامر نضعها له في موجه الأوامر سيقوم بتوليد الكود سورس الخاص بهذا العنصر او ذاك. تأكدوا من أن الكمبوزر مثبت في جهازكم، و إلا قوموا بتثبيته كما هو مبين في الفصل الاول.

 

  1. الروتر router سيمفوني

 

بدل عناوين تنتهي بشيء من شكل : index.php?controller=default&str=see سيمكننا الروتر سيمفوني من صياغة العناوين كما نريد، مثلا بتعويض العنوان ب def/see/

و كما سبقت الإشارة، نعرف العناوين و لكل عنوان طريقه في الملف app/config/routing.yml أو نضع في هذا الملف ما يفيد أننا سنقوم بتعريف عناوين أخرى في الملف الموجود داخل البندل و نعرف الطرق المرتبطة بالبندل داخله مباشرة ( في الملف appBundle/Resources/config/routing.yml )