Paket Komposer untuk PHP yang menambahkan beberapa sifat enum yang bermanfaat ke tipe PHP Enum baru yang hebat.
Paket tersebut sejauh ini menyediakan;
UnitEnum::valueArray(): array statis baru yang mengembalikan semua nilai dalam Enum sebagai array nilai Enum yang diketik samaUnitEnum::valueList(string $separator = ', '): string statis baru yang mengembalikan semua nilai dalam Enum sebagai string daftar yang dipisahkan komaPaket ini tersedia di Packagist sebagai othyn/php-enum-enhancements.
Masuk ke proyek tempat Anda ingin menginstalnya dan jalankan perintah Komposer berikut untuk mendapatkan versi terbaru:
composer require othyn/php-enum-enhancementsUntuk contoh penggunaan yang lebih komprehensif, Anda dapat melihat rangkaian pengujian. Namun saya akan menunjukkan beberapa contoh penggunaan dasar di bawah ini.
<?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" Sebagian besar proses pengembangan dikemas dalam container Docker yang mudah digunakan.
Konfigurasi proyek .php-cs-fixer.dist.php berisi aturan yang dipatuhi oleh repo ini dan akan dijalankan pada direktori ./src dan ./tests .
Untuk penerapan gaya jarak jauh, ada Tindakan GitHub yang dikonfigurasi untuk menjalankan phpcsfixer secara otomatis.
Untuk penerapan gaya lokal, terdapat skrip komposer composer style komposer yang dikonfigurasi untuk menjalankan phpcsfixer .
Untuk pengujian jarak jauh, terdapat pengaturan Tindakan GitHub untuk menjalankan rangkaian pengujian secara otomatis di cabang main atau dan cabang PR.
Untuk pengujian lokal, terdapat kontainer Docker yang sudah dibuat sebelumnya yang berisi rilis Alpine CLI dari PHP + PHPUnit + xdebug. Ini disiapkan untuk menguji proyek dan dapat diatur melalui yang berikut:
composer docker-buildIni akan memicu Docker Compose untuk membuat image. Anda kemudian dapat menaikkan kontainer melalui yang berikut:
composer docker-upAda tes untuk semua kode yang ditulis, yang dapat dijalankan melalui:
# PHPUnit with code coverage report
composer test
# PHPUnit with code coverage report, using local phpunit and xdebug
composer test-localDalam pengujian tersebut, terdapat pengujian Fitur untuk implementasi paket yang siap produksi. Tidak ada tes Unit saat ini.
Anda juga dapat dengan mudah membuka shell di wadah pengujian dengan menggunakan perintah:
composer docker-shellSetiap dan semua perubahan proyek untuk rilis harus didokumentasikan di bawah ini. Pembuatan versi mengikuti standar SemVer.
[Perubahan Git] README berubah.
var_dump guna mendemonstrasikan tipe yang dihasilkan dalam array yang dikembalikan dari UnitEnum::valueArray() .UnitEnum dalam dokumen dalam contoh kode di mana tes Enum tidak ada. [Perubahan Git] Rilis awal.