Laravel Blueprint

Laravel Blueprint, Laravel framework’ünün bir bileşenidir ve veritabanı tablolarını programatik olarak oluşturmak ve değiştirmek için kullanılır. Blueprint sınıfı, veritabanı tabloları oluşturmak, değiştirmek veya düzenlemek için bir kullanım kolaylığı sağlayan bir dizi yöntem sunar. Bu yöntemler, kolayca sütunları, dizinleri, kısıtlamaları ve diğer veritabanı özelliklerini tanımlamak için kullanılabilir.

Blueprint’ler, veritabanı şemalarının kod içinde belirtilmesini sağlar, böylece yapılandırma dosyaları veya elle yapılan SQL sorguları yazmak yerine programatik olarak oluşturulabilir. Bu, veritabanı şemalarında yapılan değişikliklerin yönetimini ve sürdürülmesini kolaylaştırır ve geliştirme iş akışını hızlandırır.

Özetle, Laravel Blueprint, veritabanı tablolarını programatik olarak oluşturmak ve yönetmek için bir kolaylık sağlayan bir araçtır.

composer require --dev laravel-shift/blueprint
composer require --dev jasonmccreary/laravel-test-assertions

example :

draft.yaml

models:
User:
relationships:
hasMany: Invoice, Product

Invoice:
invoice_number: string:100
total: decimal:8,2 unsigned
status: enum:failed,successful,pending
user_id: id foreign
relationships:
belongsTo: User
belongsToMany: Product

Product:
title: string:100
slug: string:100
price: integer unsigned
user_id: id foreign
is_available: boolean default:true
relationships:
belongsTo: User
belongsToMany: Invoice

controllers:
Product:
index:
query: all
render: products.index with:products

show:
  render: products.show with:product

store:
  validate: title, price, is_available
  save: product
  send: ProductStoreNotification to:product.user with:product
  redirect: products.index

php artisan blueprint:build