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-enhancements
Untuk 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-build
Ini akan memicu Docker Compose untuk membuat image. Anda kemudian dapat menaikkan kontainer melalui yang berikut:
composer docker-up
Ada 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-local
Dalam 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-shell
Setiap 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.