Zum Inhalt springen

Laravel Release Notes

604 Einträge aus 4 Quellen. Zuletzt aktualisiert:

Folge Laravel, um die Release Notes in deinen Feed zu holen.

Angaben zum Datum

Datum aus der Quelle.

Erstmals gesehen am .

Laravel

Laravel 12.x: Typisierte Getter für den Cache

Der Cache bietet typisierte Getter wie Cache::integer() und Cache::boolean(), die wiederholtes Casting überflüssig machen.

Pull request by @ahinkle

Typed cache getters reduce repetitive casting and make intent obvious when reading cached values, helping you avoid subtle bugs from unexpected types.

$count = Cache::integer('downloads.count', 0);
$enabled = Cache::boolean('features.new_checkout', false);

Originalquelle(öffnet in neuem Tab)Problem melden

Angaben zum Datum

Datum aus der Quelle.

Erstmals gesehen am .

Laravel

AI SDK: clamp() für InteractsWithData

Der Trait InteractsWithData erhält die Methode clamp(), mit der numerische Eingabewerte, etwa für Pagination oder Limits, auf einen Bereich begrenzt werden.

Pull request by @cosmastech

A clamp() method has been added to the InteractsWithData trait, giving you a tidy way to bound numeric input values, which is great for pagination, limits, sliders, and any user-controlled numbers.

// Instead of:
/** @var int<PHP_INT_MIN, PHP_INT_MAX> $perPage */
$perPage = request()->integer('per_page', 50);

// You can now do:
/** @var int<1, 100> $perPage */
$perPage = request()->clamp('per_page', 1, 100, 50);

Originalquelle(öffnet in neuem Tab)Problem melden

Angaben zum Datum

Datum aus der Quelle.

Erstmals gesehen am .

Laravel

AI SDK: Standardmodelle des Providers konfigurierbar

Die Standardmodelle für Text, Bilder, Audio, Transkription und Embeddings lassen sich jetzt in der Datei config/ai.php der Anwendung festlegen.

Pull request by @pfrug

The default models used for text, images, audio, transcription, and embeddings may are now configurable in your application's config/ai.php file. This gives you granular control over the exact models you'd like to use if you don't want to rely on the package defaults.

return [
    'models' => [
        'text' => [
            'default' => 'claude-sonnet-4-6',
            'cheapest' => 'claude-haiku-4-5-20251001',
            'smartest' => 'claude-opus-4-6',
        ],
    ],
],

Originalquelle(öffnet in neuem Tab)Problem melden

Angaben zum Datum

Datum aus der Quelle.

Erstmals gesehen am .

Laravel

AI SDK: Timeouts bei Transkription unterstützt

Transkriptionen unterstützen nun Timeouts, sodass lang laufende Anfragen Worker nicht blockieren.

Pull request by @NietThijmen

Transcription now supports timeouts, giving you better control in production workloads and preventing long-running requests from tying up workers.

$transcript = Transcription::fromPath('./podcast.mp3')->timeout(240)->generate(Lab::ElevenLabs);

Originalquelle(öffnet in neuem Tab)Problem melden

Angaben zum Datum

Datum aus der Quelle.

Erstmals gesehen am .

Laravel

Boost: Guidelines und Skills direkt aus Vendor-Paketen laden

Guidelines und Skills können jetzt direkt aus Vendor-Paketen geladen werden und passen dadurch immer zur verwendeten Paketversion.

Pull request by @pushpak1300

Guidelines and skills can now be loaded directly from vendor packages, ensuring that guidelines always match the package version you are using and will never go stale.

Originalquelle(öffnet in neuem Tab)Problem melden

Angaben zum Datum

Datum aus der Quelle.

Erstmals gesehen am .

Laravel

Boost: Unterstützung für Nightwatch MCP

Boost unterstützt nun Nightwatch MCP, wodurch sich Monitoring-Kontext besser mit den eigenen Tools verbinden lässt.

Pull request by @jessarcher

Nightwatch MCP support improves the integration story for observability-driven workflows, so you can connect monitoring context to your tools more seamlessly.

Originalquelle(öffnet in neuem Tab)Problem melden

Angaben zum Datum

Datum aus der Quelle.

Erstmals gesehen am .

Laravel

MCP: Database-Schema-Tool mit vollständigen Spaltenmetadaten

Das Database-Schema-Tool liefert jetzt umfassendere Spaltenmetadaten wie Typen, Standardwerte und Nullability.

Pull request by @alanost

The database schema tool now exposes richer column metadata, which improves the quality of schema-aware tooling and reduces incorrect assumptions (types, defaults, nullability).

This is particularly helpful when generating code, validating migrations, or building assistants that reason about your database structure.

Originalquelle(öffnet in neuem Tab)Problem melden

Angaben zum Datum

Datum aus der Quelle.

Erstmals gesehen am .

Laravel

Prompts: JSON-Antworten standardmäßig kompakt

JSON-Antworten werden jetzt standardmäßig kompakt formatiert, was die Payload-Größe verringert.

Pull request by @pushpak1300

JSON responses are now compact by default, trimming payload size and making tool-to-tool communication faster and less noisy in logs.

Originalquelle(öffnet in neuem Tab)Problem melden

Angaben zum Datum

Datum aus der Quelle.

Erstmals gesehen am .

Laravel

Neuer number-Prompt für numerische Eingaben

Der neue number-Prompt erfasst numerische Eingaben mit Validierung, automatischem Begrenzen auf Min/Max-Werte und Anpassung per Pfeiltasten.

Pull request by @joetannenbaum

A new number prompt makes it easy to collect numeric input with validation baked in, perfect for CLI setup flows and interactive tooling. Features automatic clamping of the min/max values and adjusting the value via the up and down arrows.

$retries = number('How many retries?', default: 3, min: 0, max: 10);

Originalquelle(öffnet in neuem Tab)Problem melden

Angaben zum Datum

Datum aus der Quelle.

Erstmals gesehen am .

Laravel

Svelte-Paket @laravel/stream-svelte und Svelte Starter Kit

Das neue Paket @laravel/stream-svelte erleichtert das Verarbeiten gestreamter Server-Ausgaben in Svelte, und ein neues Svelte Starter Kit bringt Inertia, Svelte und Laravel-Konventionen mit.

Pull request by @joetannenbaum

The new @laravel/stream-svelte package makes it trivial to consume streaming output from your server in your Svelte app. If you're shipping real-time UI, this helps you move from prototype to production faster.

Pull request by @joetannenbaum

The new Svelte starter kit gets you up and running with Inertia, Svelte, and Laravel conventions quickly, so you can spend time on product code instead of scaffolding.

Originalquelle(öffnet in neuem Tab)Problem melden

Angaben zum Datum

Datum aus der Quelle.

Erstmals gesehen am .

Laravel

VS Code Extension: Test-Runner-Integration

Die VS Code Extension ist nun in den integrierten Test-Runner von VS Code eingebunden, sodass Tests direkt in der IDE ausgeführt werden können.

Pull request by @TitasGailius

Integrating with VS Code's built-in test runner makes it easier to run and iterate on your suite from within your IDE, shortening the edit-test loop and helping you stay in flow.

Browsing tests in VS Code

Originalquelle(öffnet in neuem Tab)Problem melden

Angaben zum Datum

Datum aus der Quelle.

Erstmals gesehen am .

Laravel

VS Code Extension: Hover für Livewire-Props

Beim Hovern über Livewire-3- und -4-Props zeigt die VS Code Extension Typ- und Docblock-Informationen aus der PHP-Klasse an.

Pull request by @TitasGailius

New support for hovering over Livewire 3 and 4 props means that you can see the relevant type and docblock information directly from the PHP class, reducing context switching in your Livewire and Blade components.

Livewire prop hovering in VS Code

Originalquelle(öffnet in neuem Tab)Problem melden

Angaben zum Datum

Datum aus der Quelle.

Erstmals gesehen am .

Laravel

Laravel Framework 12.x: temporaryUploadUrl für das lokale Filesystem

Temporäre Upload-URLs lassen sich nun auch mit dem local-Treiber über temporaryUploadUrl erzeugen.

Pull request by @mnapoli

You can now generate temporary upload URLs even when you're using the local driver, making it much easier to build consistent upload flows across local, staging, and production environments.

use Illuminate\Support\Facades\Storage;

$url = Storage::disk('local')->temporaryUploadUrl(
    'uploads/incoming/video.mp4',
    now()->addMinutes(10),
    ['Content-Type' => 'video/mp4']
);

Originalquelle(öffnet in neuem Tab)Problem melden

Angaben zum Datum

Datum aus der Quelle.

Erstmals gesehen am .

Laravel

Laravel Framework 12.x: makeMany-Methode für Factories

Die neue Factory-Methode makeMany() erzeugt mehrere Modellinstanzen im Speicher, ohne sie zu speichern.

Pull request by @jackbayliss

makeMany() gives you a clean, expressive way to generate multiple in-memory model instances without persisting anything. It's ideal for tests, previews, and shaping data before a write.

$users = User::factory()->makeMany(3);

$payload = $users->map->only(['name', 'email']);

Originalquelle(öffnet in neuem Tab)Problem melden

Angaben zum Datum

Datum aus der Quelle.

Erstmals gesehen am .

Laravel

Laravel Framework 12.x: Closures für Werte in firstOrCreate und createOrFirst

firstOrCreate und createOrFirst akzeptieren nun Closures für Werte, die nur berechnet werden, wenn der Datensatz tatsächlich angelegt wird.

Pull request by @gcavanunez

You can now lazily compute attribute values only when a record is actually being created. That means fewer unnecessary queries and less wasted work when the model already exists.

$location = Location::firstOrCreate(
    ['address' => $address],
    fn () => ['coordinates' => Geocoder::resolve($address)],
);

Originalquelle(öffnet in neuem Tab)Problem melden

Angaben zum Datum

Datum aus der Quelle.

Erstmals gesehen am .

Laravel

Laravel 12.x: Methode afterSending für Notifications

Notifications unterstützen jetzt die Methode afterSending(), die nach dem Versand der Notification ausgeführt wird, etwa für Audit-Logging, Metriken oder Aufräumarbeiten.

Pull request by @gdebrauwer

afterSending() lets you hook into the lifecycle after a notification is dispatched, which is perfect for audit logging, metrics, or cleanup work without cluttering your notification channels.

class BookingNotification extends Notification
{
    public function __construct(
		public Booking $booking;
	) {
        //
	}

	public function via()
	{
		return ['mail'];
	}

	public function toMail()
	{
		// ...
	}

	public function afterSending($notifiable, $channel, $response)
	{
		$this->booking->update(['notified_at' => now()]);
	}
}

Originalquelle(öffnet in neuem Tab)Problem melden

Angaben zum Datum

Datum aus der Quelle.

Erstmals gesehen am .

Laravel

Laravel 12.x: whenFails und whenPasses im Validator

Der Validator bietet die neuen Methoden whenFails und whenPasses, nützlich für Validierungen außerhalb des Request-Zyklus.

Pull request by @gdebrauwer

These helpers are particularly useful when you use the validator to validate data outside the request cycle where the error would not get picked up automatically by the HTTP handler.

Validator::make(
    ['file' => $file],
    ['file' => 'required|image|dimensions:min_width=100,min_height=200']
)->whenFails(function () {
    throw new InvalidArgumentException('Provided file is invalid');
});

Originalquelle(öffnet in neuem Tab)Problem melden

Angaben zum Datum

Datum aus der Quelle.

Erstmals gesehen am .

Laravel

Laravel 12.x: withoutHeader-Methode für Response

Mit der neuen Methode withoutHeader() lassen sich Header, etwa geerbte Caching- oder Debug-Header, aus einer Response entfernen.

Pull request by @miladev95

Removing headers is now straightforward with withoutHeader(), which is handy when you need to strip inherited headers (like caching or debug headers) before returning a response.

return response($content)->withoutHeader('X-Debug');

Originalquelle(öffnet in neuem Tab)Problem melden

Angaben zum Datum

Datum aus der Quelle.

Erstmals gesehen am .

Laravel

Laravel 12.x: InteractsWithData::clamp() hinzugefügt

Der Trait InteractsWithData enthält die neue Methode clamp(), mit der numerische Eingabewerte auf einen Wertebereich mit Standardwert begrenzt werden können.

Pull request by @cosmastech

A clamp() method has been added to the InteractsWithData trait, giving you a tidy way to bound numeric input values, which is great for pagination, limits, sliders, and any user-controlled numbers.

// Instead of:
/** @var int<PHP_INT_MIN, PHP_INT_MAX> $perPage */
$perPage = request()->integer('per_page', 50);

// You can now do:
/** @var int<1, 100> $perPage */
$perPage = request()->clamp('per_page', 1, 100, 50);

Originalquelle(öffnet in neuem Tab)Problem melden