دورة symfony 4 للمبتدئين الدرس الأول


فهاد الدورة الجديدة ولي غادي نخصصوها ل symfony 4 بناءا على الطلب ديال العديد من الزوار ديال الموقع غادي نشوفوا كل ما يخص هاد المكتبة لي هي فرنسية أطلقت مجانا للجميع سنة 2005 من طرف Fabien Potencier.

فهاد الدرس الأول لي غادي يكون عبارة عن مقدمة غادي نحاولوا نزيدوا projet جديد ب symfony 4 وغادي نشوفوا كيفاش نفتحوه  فالمتصفح بالإضافة لأشياء آخرى.


1- إضافة projet جديد ب symfony 4

أول حاجة وقبل ما نبدا باش تستفذ من هاد الدورة فخصك تكون عارف ل POO يعني la programmation orienté objet ف php حيت غادي نحتاجوها فهاد الدورة وثاني حاجة خصك تكون كتعرف la structure model vue controller يعني ل MVC فيلا مكنتيش عارف هادشي شوف دورة php للمبتدئين لي عندنا فالموقع والقناة معا.

قلنا أول حاجة غادي نزيدو projet جديد باش تخدم عندك symfony 4 خصك على الأقل تكون عندك la version 7.1 ديال php ولي يلا كنتي م installé آخر version ديال xampp أو wamp راه غادي تكون عندك وأيضا خص يكون عندك composer déjà installé لي يمكنلك تطيليشارجيه من هنا.

منبعد فاش يكون عندك كلشي مقاد غادي تفتح cmd وتمشي ل htdocs انا خدام ب xampp غادي تدير هاد ل commande :

cd c:\xampp\htdocs 

كنتي خدام ب wamp :

cd c:\wamp\www

من بعد غادي تدير هاد ل commande (فبلاصت nom-de-projet دير إسم ل projet ديالك) :

                                //
 composer create-project symfony/website-skeleton  nom-de-projet
                            

2- فتح ل projet فالمتصفح

دبا زدنا ل projet ديالنا وخصنا نفتحوه  فالمتصفح دائما ف cmd غادي  ندير هاد ل commande :

                                //
php bin/console server:run
                            

3- إضافة أول controller

دبا من بعد ما فتحنا ل projet ديالنا فالمتصفح كيف كتشوف فالصورة :


غادي نزيدو أول controller ديالنا غادي نمشي ل dossier src فيه عندي dossier Controller فيه غادي نزيد fichier جديد سميه HelloController.php لي زدت فيه fonction index لي فقط كترجعنا كلمة فيها hello world.

الكود لي غادي يكون فيه هو :

                                //
<?php

namespace App\Controller;

use Symfony\Component\HttpFoundation\Response;

class HelloController
{
    public function index()
    {
        return new Response(
            '<html><body>Hello World</body></html>'
        );
    }
}
                            

4- إضافة اول route

فيلا سبقلك خدمتي ب laravel أو أي مكتبة من قبل غادي تكون سمعتي ب route فالدور ديالو أنه كيمكني من التنقل بين الصفحات.

فغادي نمشي للملف config/routes.yaml غادي نزيد route ديالي لي عطيتو إسم و path يعني ل url و ل controller مع ل fonction لي حددتها ف index فيلا مشيتي ل  http://127.0.0.1:8000/hello  غادي تلقى هاد النتيجة :

الكود ديال routes.yaml بعد التعديل هو :

                                    //
#index:
#    path: /
#    controller: App\Controller\DefaultController::index
hello_world :
  path: /hello
  controller: App\Controller\HelloController::index
                                

5- إستعمال ل annotation لإضافة routes

عوض الطريقة التقليدية لي شفنا ديال إضافة les routes فالملف routes.yaml غادي نشوفوا طريقة اخرى لي كتوفرها symfony سميتها Annotation لي كتمكن من إضافة route داخل ل controller.

باش تزيد ل Annotations ل projet دير هاد ل commande :

composer require annotations

منبعد ما يتزاد غادي نديروا تعديلات على HelloController.php :

- كنقول ل controller بلي غادي نخدم بل Annotation وكنزيدها فاول ل controller.

- كنزيد route فوق ل fonction index ف route دائما كيكون فوق ل fonction ولي كنعطيه الرابط لي بقا دائما hello/.

الكود ديال HelloController.php بعد التعديل هو :


                                    //
<?php

namespace App\Controller;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\Response;

class HelloController
{
    /**
    * @Route("/hello")
    */
    public function index()
    {
        return new Response(
            '<html><body>Hello World</body></html>'
        );
    }
}