Strictus - це пакет, який забезпечує строгий набір тексту до вбудованих змінних для PHP. З огляду на наступний приклад, PHP не має способу застосовувати сильно типізовані вбудовані змінні:
// Rule: Active discount of 10% or 25% for orders from $50
$total = 82.50;
$discount = 0.10; // Float
if ($total >= 50) {
$discount = '25%'; // Replacing a float value with string value 🤦🏻♂️
}
$total = $total - ($total * $discount); //💥 Error: A float cannot be multiplied by a string
Використовуючи клас Strictus, наведений вище приклад коду тепер виглядає наступним чином:
use Strictus\Strictus;
$total = Strictus::float(82.50);
$discount = Strictus::float(0.10);
if ($total() >= 50) {
$discount(0.25); // Updates the $discount value
}
$total($total() - ($total() * $discount()));
echo $total(); // 61.875
Наведений вище строгий приклад кине StrictusTypeException
float()
якщо отримує що-небудь, крім типу float. Це може бути неприємно, якщо ви звикли до динамічних змінних, але я думаю, що вам слід подумати, як наявність більш суворих змінних може допомогти.
На момент написання статті цей пакунок підтримує окремі типи та нульові типи для String
, , , , Boolean
Array
Object
Ви
use Strictus\Strictus;
Strictus::string($value);
Strictus::string($value, true); // nullable
Strictus::nullableString($value); // nullable shortcut
Strictus::int($value);
Strictus::int($value, true); // nullable
Strictus::float($value);
Strictus::float($value, true); // nullable
// And so on...
Class
можете дізнатися більше про цей пакет, Float
Integer
отримати повні інструкції щодо встановлення та переглянути вихідний код на GitHub.