حزمة 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] الإصدار الأولي.