حزمة Composer لـ PHP تضيف بعض سمات التعداد المفيدة إلى نوع PHP Enum الجديد الرائع.
توفر الحزمة حتى الآن؛
UnitEnum::valueArray(): array
تُرجع جميع القيم الموجودة داخل Enum كمصفوفة مكتوبة بشكل متساوٍ من قيم EnumUnitEnum::valueList(string $separator = ', '): string
ثابتة جديدة تُرجع جميع القيم داخل Enum كسلسلة قائمة مفصولة بفواصلالحزمة متاحة على Packagist كتحسينات othyn/php-enum-enhancements.
انتقل إلى مشروعك الذي ترغب في تثبيته فيه وقم بتشغيل أمر Composer التالي للحصول على أحدث إصدار:
composer require othyn/php-enum-enhancements
للحصول على أمثلة استخدام أكثر شمولاً، يمكنك عرض مجموعة الاختبار. ومع ذلك سأعرض بعض أمثلة الاستخدام الأساسية أدناه.
<?php
namespace App Enums ;
use Othyn PhpEnumEnhancements Traits EnumEnhancements ;
enum TestEnum
{
use EnumEnhancements;
case Alpha;
case Bravo;
case Charlie;
case Delta;
case Echo;
}
var_dump (TestEnum:: valueArray ());
// Results in the following being printed:
// array(5) {
// [0]=>
// string(5) "Alpha"
// [1]=>
// string(5) "Bravo"
// [2]=>
// string(7) "Charlie"
// [3]=>
// string(5) "Delta"
// [4]=>
// string(4) "Echo"
// }
<?php
namespace App Enums ;
use Othyn PhpEnumEnhancements Traits EnumEnhancements ;
enum TestEnum
{
use EnumEnhancements;
case Alpha;
case Bravo;
case Charlie;
case Delta;
case Echo;
}
var_dump (TestEnum:: valueList ());
// Results in the following being printed:
// string(34) "Alpha, Bravo, Charlie, Delta, Echo"
var_dump (TestEnum:: valueList (separator: ' : ' ));
// Results in the following being printed:
// string(30) "Alpha:Bravo:Charlie:Delta:Echo"
<?php
namespace App Enums ;
use Othyn PhpEnumEnhancements Traits EnumEnhancements ;
enum TestStringBackedEnum: string
{
use EnumEnhancements;
case Alpha = ' alpha ' ;
case Bravo = ' bravo ' ;
case Charlie = ' charlie ' ;
case Delta = ' delta ' ;
case Echo = ' echo ' ;
}
var_dump (TestStringBackedEnum:: valueArray ());
// Results in the following being printed:
// array(5) {
// [0]=>
// string(5) "alpha"
// [1]=>
// string(5) "bravo"
// [2]=>
// string(7) "charlie"
// [3]=>
// string(5) "delta"
// [4]=>
// string(4) "echo"
// }
<?php
namespace App Enums ;
use Othyn PhpEnumEnhancements Traits EnumEnhancements ;
enum TestStringBackedEnum: string
{
use EnumEnhancements;
case Alpha = ' alpha ' ;
case Bravo = ' bravo ' ;
case Charlie = ' charlie ' ;
case Delta = ' delta ' ;
case Echo = ' echo ' ;
}
var_dump (TestStringBackedEnum:: valueList ());
// Results in the following being printed:
// string(34) "alpha, bravo, charlie, delta, echo"
var_dump (TestStringBackedEnum:: valueList (separator: ' : ' ));
// Results in the following being printed:
// string(30) "alpha:bravo:charlie:delta:echo"
<?php
namespace App Enums ;
use Othyn PhpEnumEnhancements Traits EnumEnhancements ;
enum TestIntBackedEnum: int
{
use EnumEnhancements;
case One = 1 ;
case Two = 2 ;
case Three = 3 ;
case Four = 4 ;
case Five = 5 ;
}
var_dump (TestIntBackedEnum:: valueArray ());
// Results in the following being printed:
// array(5) {
// [0]=>
// int(1)
// [1]=>
// int(2)
// [2]=>
// int(3)
// [3]=>
// int(4)
// [4]=>
// int(5)
// }
<?php
namespace App Enums ;
use Othyn PhpEnumEnhancements Traits EnumEnhancements ;
enum TestIntBackedEnum: int
{
use EnumEnhancements;
case One = 1 ;
case Two = 2 ;
case Three = 3 ;
case Four = 4 ;
case Five = 5 ;
}
var_dump (TestIntBackedEnum:: valueList ());
// Results in the following being printed:
// string(13) "1, 2, 3, 4, 5"
var_dump (TestIntBackedEnum:: valueList (separator: ' : ' ));
// Results in the following being printed:
// string(9) "1:2:3:4:5"
يتم تغليف معظم عمليات التطوير في حاوية Docker سهلة الاستخدام.
يحتوي تكوين المشروعات .php-cs-fixer.dist.php
على القواعد التي يتوافق معها الريبو هذا وسيتم تشغيله مقابل دليل ./src
و ./tests
.
لفرض النمط عن بعد، يوجد إجراء GitHub تم تكوينه لتشغيل phpcsfixer
تلقائيًا.
لفرض النمط المحلي، يوجد composer style
للنص البرمجي للملحن تم تكوينه لتشغيل phpcsfixer
.
للاختبار عن بعد، يوجد إعداد GitHub Action لتشغيل مجموعة الاختبار تلقائيًا على الفرع main
أو فروع العلاقات العامة.
للاختبار المحلي، توجد حاوية Docker تم إنشاؤها مسبقًا وتحتوي على إصدار Alpine CLI من PHP + PHPUnit + xdebug. هذا الإعداد لاختبار المشروع ويمكن إعداده عبر ما يلي:
composer docker-build
يجب أن يؤدي هذا إلى تشغيل Docker Compose لإنشاء الصورة. يمكنك بعد ذلك رفع الحاوية عبر ما يلي:
composer docker-up
هناك اختبارات لجميع التعليمات البرمجية المكتوبة، والتي يمكن تشغيلها عبر:
# PHPUnit with code coverage report
composer test
# PHPUnit with code coverage report, using local phpunit and xdebug
composer test-local
في هذه الاختبارات، توجد اختبارات الميزات لتنفيذ الحزمة جاهزًا للإنتاج. لا توجد اختبارات الوحدة في الوقت الحاضر.
يمكنك أيضًا فتح الصدفة بسهولة في حاوية الاختبار باستخدام الأمر:
composer docker-shell
يجب توثيق أي وجميع تغييرات المشروع الخاصة بالإصدارات أدناه. الإصدار يتبع معيار SemVer.
[تغييرات Git] تغييرات README.
var_dump
بدلاً من ذلك لتوضيح الأنواع الناتجة داخل المصفوفة التي تم إرجاعها من UnitEnum::valueArray()
.UnitEnum
داخل المستندات في أمثلة التعليمات البرمجية التي لا يوجد فيها اختبار Enum. [تغييرات Git] الإصدار الأولي.