تنبيه: قبل البدء بالمهمة، يجب عليك التأكد من تكوين بيئة العمل لديك. وهي:
يوصى باستخدام Vagrant والجهاز الظاهري Homestead. مزيد من التفاصيل هنا: https://laravel.com/docs/5.8/homestead
يظهر التثبيت في بيئة عمل OS Linux:
git clone [email protected]:BinaryStudioAcademy/bsa-2019-php-1.git
cd bsa-2019-php-1
composer install
يتم تقسيم جميع المهام إلى مجلدات داخل /src
.
ستكون مهمتك، في معظم الحالات، هي استكمال الكود الموجود بالوظيفة المفقودة. سيتم تحديد مجموعة البيانات لكل مهمة بشكل صارم لغرض التحقق في الاختبارات.
في المهمة الأولى (المهمة 1) تحتاج إلى العمل مع مقاتلي Street Fighter .
تحتاج إلى إنشاء بعض المقاتلين بناءً على فئة Fighter
واستخدام بعض البيانات من الجدول.
اسم | صورة |
---|---|
ريو | https://bit.ly/2E5Pouh |
تشون لي | https://bit.ly/2Vie3lf |
كين ماسترز | https://bit.ly/2VZ2tQd |
بعد ذلك، عليك العمل مع فئة FightArena
، وتنفيذ الأساليب
add
all
mostPowerful
(هجوم أكثر، ولكن صحة أقل)mostHealthy
(هجوم أقل، ولكن صحة أكبر)يمكنك التحقق من نفسك عن طريق تشغيل:
./vendor/bin/phpunit --testsuite task1
في المهمة الثانية (المهمة 2)، تحتاج إلى تنفيذ مولد بسيط (باستخدام yield
) يقوم بإرجاع الرموز التعبيرية التالية:
''، ''، ''، ''، ''.
للقيام بذلك، تحتاج إلى تنفيذ طريقة generate
في فئة EmojiGenerator
.
يمكنك التحقق من نفسك عن طريق تشغيل:
./vendor/bin/phpunit --testsuite task2
في المهمة الثالثة (المهمة 3) سوف نتدرب على خادم الويب PHP المدمج. مهمتك هي عرض قائمة المقاتلين التي قمت بإنشائها في المهمة 1 وعرض الصفحة باستخدام خادم الويب المدمج.
للقيام بذلك، تحتاج إلى ملء ساحة القتال في ملف index.php
وتنفيذ الطريقة present
لفئة FightArenaHtmlPresenter
، بناءً على رمز الاختبار للمهمة.
إذا كنت تستخدم Homestead، فأنت بحاجة أولاً إلى إيقاف nginx
.
sudo pkill nginx
ثم ابدأ تشغيل خادم الويب المدمج:
php -S 0.0.0.0:80 -t ./src/Task3
قد يكون الأمر "sudo php -S 0.0.0.0:80 -t ./src/Task3" مطلوبًا.
ستكون الصفحة متاحة في المتصفح على:
http://192.168.10.10:80 - إذا كنت تستخدم المنزل
http://127.0.0.1:80 - إذا كنت تقوم بالتشغيل من جهاز محلي
بعض التعليمات البرمجية موجودة بالفعل في ملف index.php
.
يمكنك التحقق من نفسك عن طريق تشغيل:
./vendor/bin/phpunit --testsuite task3
ربما لاحظت بالفعل أننا نستخدم PHPUnit للتحقق من المهام. يعد ذلك ضروريًا للتحقق مما إذا كانت حلولك تلبي توقعاتنا (المواصفات المقترحة). إذا لم تكن على دراية بـ PHPUnit من قبل، فلا تقلق. وسوف ننظر في هذا بمزيد من التفصيل في المحاضرات القادمة.
في هذه المرحلة، يمكنك أن تفترض أن هذا مجرد فحص تلقائي (كما هو الحال على موقع codewars.com).
في البداية، تكون جميع الاختبارات "حمراء"، أي. مكسور. لكي تعمل (باللون الأخضر) ولا توجد أخطاء، تحتاج إلى تنفيذ الحلول اللازمة.
ما هو الربح من الاختبارات؟
ما لا يجب القيام به
إجراء جميع الاختبارات:
./vendor/bin/phpunit
إجراء اختبار لوظيفة معينة:
./vendor/bin/phpunit --testsuite task1
من الناحية المثالية، يجب عليك وضع الحل الخاص بك في مستودع منفصل على Github أو Bitbucket وإرسال رابط إليه.
اطرح أسئلة في التعليقات على المهمة إذا كان لديك أي مشاكل.
تفرع هذا المستودع محظور !