Bag — це пакет для PHP та Laravel, призначений для незмінних значень об'єктів. Він був створений з натхненням від пакету laravel-data від Spatie. Цей інструмент дозволяє створювати незмінні об'єкти, які безпечно обробляють дані, використовуючи типізацію, кастинг даних і вбудовану валідацію. Bag може слугувати заміною звичайним масивам у вашому коді, забезпечуючи типову безпеку.
use Bag\Bag;
readonly class MyValue extends Bag {
public function __construct(public string $name, public int $age) {}
}
$value = MyValue::from([
'name' => 'Davey Shafik',
'age' => 40,
]);
// Створюємо новий екземпляр з іншим значенням
$newValue = $value->with(age: 41);
Bag також інтегрується з Laravel, використовуючи стандартні Collection і Validation у значеннях об'єктів, а також Eloquent кастинг та можливість впроваджувати Bag об'єкти в контролери з валідацією:
use Bag\Attributes\Laravel\FromRouteParameter;
use Bag\Bag;
class MyValue extends Bag
{
#[FromRouteParameter()]
public string $id;
}
// MyValue $value буде мати заповнений параметр маршруту `id`
class MyController extends Controller {
public function store(MyValue $value) {
// $value є валідованим MyValue об'єктом
}
}
Цей пакет також включає команду Artisan для генерації Bag, використовуючи команду make:bag.
Для початку роботи з Bag ознайомтеся з документацією, а вихідний код доступний на GitHub за адресою dshafik/bag.
Ви знали, що в одному додатку Laravel можна реалізувати кілька API? У нашій статті ви дізнаєтеся, як за допомогою Scramble легко документувати різні версії API та налаштувати доступ до документації, щоб зробити її публічною або приватною. Читайте далі, щоб дізнатися більше
Хочете забезпечити повну прозорість у своїх Laravel-додатках? Пакет Laravel Audit Log допоможе вам детально відстежувати всі зміни моделей Eloquent та відповідати вимогам регуляторів. Читайте далі, щоб дізнатися, як цей потужний інструмент може підвищити надійність вашого проєкту
Вперше у світі Laravel з'являється можливість, яка значно спростить ваше повсякденне програмування завдяки новому пакету Laravel Boost. Читайте статтю, щоб дізнатися, як посилена інтеграція штучного інтелекту може підвищити ефективність вашої роботи та оптимізувати створення проектів у Laravel