daravel library
Daravel — a Laravel-inspired, AOT-native backend framework for Dart.
Tier 0 walking skeleton: container + zone scopes, application builder, HTTP kernel, radix router, SQLite database access, schema migrations.
Classes
- AcceptanceRule
-
accepted,declinedand, with other,accepted_ifanddeclined_if(laravel/frameworkValidatesAttributes, the same from 8 to 13): the value must pass_test, only while other is one of values for the conditional rules. Implicit, so a missing attribute fails. - AggregateClause
-
Aggregate request (
count,sum...). - AlgorithmRateLimitStore
- A RateLimitStore that also counts with other algorithms than the fixed window (Limit.slidingWindow, Limit.gcra).
- AlphaDashRule
-
alpha_dash: see Rules.alphaDash. - AlphaNumRule
-
alpha_num: see Rules.alphaNum. - AlphaRule
-
alpha: see Rules.alpha. - AnonymousNotifiable
-
Recipients without a model (
Notifications.route('mail', 'a@b.co')). - AnyOfSchema
- A value matching any of several schemas.
- App
- Container access.
- AppConfig
-
Core application settings (
config/app.phpparity). - Application
- The application: owns the container, configuration, router and kernel (BLUEPRINT_V2 §7.1.2, §5.3).
- ApplicationBuilder
-
Fluent builder mirroring Laravel's
Application::configure(). - AppMetrics
- Framework metrics: HTTP, queue and process (BLUEPRINT_V2 §7.10.4).
- ArrayFeatureStore
-
Values in memory (Pennant's
arraydriver): per isolate, lost on restart. The default in tests. - ArrayRule
-
array, a JSON array or object: see Rules.array. - ArraySchema
- A JSON array schema.
- ArrayTransport
-
Keeps messages in memory (
MAIL_MAILER=array; the default in tests). - AsciiRule
-
ascii: see Rules.ascii. - Assets
-
Versioned URLs of the files served by
ApplicationBuilder.withStatic(Laravel'sasset()andVite::asset()). - Auth
-
Authentication (
Auth::user(),Auth::guard('jwt')). - AuthConfig
-
AUTH_*/JWT_*configuration (config/auth.phpparity). - Authenticatable
-
Something that can be authenticated (Laravel
Authenticatable). - AuthenticateMiddleware
-
auth/auth:token,jwt— tries each guard in order and activates the first that authenticates; otherwise 401{"message":"Unauthenticated."}. - AuthManager
-
Multi-guard authentication manager (Laravel
AuthManager). - AuthorizationGate
-
Ability registry and checker (Laravel
Gate). One instance per application; forUser yields a view bound to a specific user. - AuthorizeMiddleware
-
Middleware
can:ability,param1,param2— route parameters are passed as their bound models (seeRouter.bind) or raw strings. - AuthResponse
- Result of an authorization check with an optional message and code.
- AuthScope
- Access to the active request scope for guards.
- AuthState
-
Per-scope authentication state: resolved users per guard, the active
guard chosen by
auth:a,bmiddleware and the current access token. - BailRule
- Marker: stop validating the attribute after the first failure.
- BasicWhere
-
column operator value(where('votes', '>', 100)). -
BelongsTo<
R extends Model> -
belongsTo: the parent carriesforeignKey= relatedownerKey. -
BelongsToMany<
R extends Model> -
belongsToManythrough a pivot table. - BetweenRule
-
between: see Rules.between. - BetweenWhere
-
column [NOT] BETWEEN from AND to(whereBetween). - BindingKey
-
Identifies a binding: a Type plus an optional name for contextual bindings
(for example two
Diskimplementations registered aslocalands3). - Blueprint
-
Collects column, index and foreign key definitions for
Schema.createand the change commands forSchema.table. - BodyLimitsMiddleware
- Request body limits (BLUEPRINT_V2 §2.3). Defaults: 1 MiB for JSON and form bodies, 50 MiB for multipart/other bodies, JSON nesting ≤ 64.
- BoolCast
-
Reads and writes
boolvalues. - BooleanRule
-
boolean: see Rules.boolean. - BooleanSchema
- A JSON boolean schema.
- Broadcast
- Broadcasting, at two levels:
- BroadcastAuthorization
-
Laravel's
/broadcasting/auth: Echo asks before joining a private or presence channel, and gets the signature the server checks. - BroadcastChannel
-
Publishes notifications to their channels on the Broadcaster, as
Laravel's
BroadcastNotificationCreatedevent:{"event": ..., "data": {...toBroadcast, "id": ..., "type": ...}}. - BroadcastConfig
-
Broadcasting, from the keys of Laravel 12's
config/broadcasting.phpandconfig/reverb.php, so one.envserves both frameworks. - Broadcaster
- Publishes messages to channels that listeners in every worker isolate receive, for example a chat room or an order's status page served over WebSockets or server-sent events.
- BroadcastManager
-
Sends broadcast events where
BROADCAST_CONNECTIONsays: this server (PusherServer), another Reverb or Pusher Channels (their HTTP API), the log, or nowhere. - BroadcastRelay
-
Carries the Pusher server's frames to the other servers and theirs to
this one (
REVERB_SCALING_ENABLED): DatabaseBroadcastRelay, or a driver registered withApplicationBuilder.withBroadcastScaling(package:daravel_redis's Pub/Sub). - BroadcastService
- Coordinator side of Broadcaster: which isolates listen to which channel, and the fan-out of each message to them.
- BroadcastSubscription
- A listener on one channel of a Broadcaster.
- BytesBody
- A body held in memory.
- BytesPayload
- An IsolatePayload of binary data.
- Cache
-
Cache access (
Cache::get,Cache::remember,Cache::lock). - CacheConfig
-
CACHE_*configuration (config/cache.phpparity). - CacheHeadersMiddleware
-
Laravel's
cache.headersmiddleware (SetCacheHeaders): - CacheHealthCheck
- Writes, reads and deletes a probe key.
- CacheJwtDenylist
-
Revoked JWT ids in a CacheStore, so a logout holds on every worker
isolate (the
processstore) or every machine (database). - CacheManager
-
Holds named stores (Laravel
CacheManager). - CachePrefixShaping
-
A store that shapes the key prefix its repository applies, as Laravel's
stores own their prefix:
RedisStore::setPrefixappended:to a non-empty prefix up to Laravel 10 and keeps it as given from 11. - CacheRateLimitStore
-
Rate limits counted in a CacheStore (
CACHE_LIMITER, Laravel'scache.limiter): with thedatabasestore, every machine sharing the database shares the limits (scopecluster). - CacheRepository
-
A store wrapped with a key prefix and the high-level API
(
remember,flexible,lock, …). - CacheStore
- Backing store contract (BLUEPRINT_V2 §7.7). Values must be JSON-serializable for the file/database stores.
- CallbackAction
- Runs a Dart callback.
- CallbackHealthCheck
-
Closure-based check (
HealthCheck.of('queue', () async => ...)). - CallQueuedListener
- Job wrapping a QueuedListener invocation.
- Cast
-
Attribute casting (Laravel
$casts). get converts a raw database value into the Dart value exposed by the model; set converts a Dart value into what is stored. - ChannelMembershipService
-
Who is subscribed to which channel, across every worker isolate: the
coordinator side of the Pusher server (
broadcasting/pusher_server.dart). - ChannelRegistry
-
Laravel's
routes/channels.php: who may listen to private and presence channels. - ChannelState
-
Where a PusherServer keeps who is on which channel, the members of
presence channels and the last event of cache channels: the
coordinator (one server, every isolate) or the database
(DatabaseChannelState, several servers). The operations and their
results are the coordinator's
ChannelMembershipService's. - Cidr
-
An IPv4/IPv6 network in CIDR notation (
10.0.0.0/8,::1/128) or a single address. - ClientRequest
- An outgoing request, as sent (and as recorded by HttpFake).
- ClientResponse
-
A response to an outgoing request (Laravel's
Http\Client\Response). - Clock
- The framework's source of "now" (BLUEPRINT_V2 §7.11).
-
ClosureGuard<
T extends Authenticatable> -
A guard driven by a closure (
Auth.viaRequest). - ClosureRule
- A rule from a closure: see Rules.custom.
- ColumnDefinition
- A column being defined (or changed) inside a Blueprint.
- ColumnInfo
-
Column metadata returned by
Schema.getColumns. - ColumnWhere
-
first operator secondbetween two columns (whereColumn). - CommandAction
-
Runs a
dartisancommand. - CompareRule
-
gt,gte,ltandlte: against another field of the same type, or a number when the value is numeric too. - Compilation
- Accumulates bindings while compiling and emits dialect placeholders.
- CompiledQuery
- SQL text plus its ordered bindings, ready for a driver.
- CompressResponseMiddleware
-
Compresses responses with gzip for clients that accept it
(
Accept-Encoding: gzip): bodies of at least minLength bytes with a compressible type (JSON, text, XML, SVG, JavaScript). Streams (server-sent events, downloads) are left alone. A strongETagbecomes weak, as the bytes change with the encoding. - Concurrency
-
Laravel's
Concurrencyfacade, on a pool of warm worker isolates. - ConcurrencyFake
- What Concurrency.sync and Concurrency.fake do to a zone.
- Config
-
Configuration access (
Config.get('app.name')). - ConfigIssue
- A problem found by ConfigValidator.
- ConfigRepository
- Holds typed configuration sections and their dot-notation projection.
- ConfigSection
-
A typed configuration section (ADR-007). Each section is registered once
and projected into the dot-notation map used by
Config.get('app.name'). - ConfigValidator
- Validates configuration at boot (BLUEPRINT_V2 §5.3 step 3, §9.2).
- ConfirmedRule
-
confirmed: see Rules.confirmed. - ConnectionConfig
-
A single named connection (
config/database.phpparity). - ConsoleHandler
-
Human-readable lines; warnings and above go to
err. - Container
- The IoC container (BLUEPRINT_V2 §7.1.1, ADR-001).
- Context
-
Laravel 11's
Context: data that belongs to the current request, job or command, added to every log record and carried into the jobs it dispatches: - ContextRepository
-
Data of one request, job or command (Laravel 11's
Context). - ConvertEmptyStringsToNullMiddleware
-
Converts empty string inputs to
null(Laravel'sConvertEmptyStringsToNull). - Coordinator
-
Hosts
process-scope services. Lives in the supervisor (main) isolate when serving with several workers; in-process otherwise. - CoordinatorChannel
- How application code reaches the coordinator.
- CoordinatorMessage
- Marks a typed coordinator message (ADR-032): an object sent to a TypedCoordinatorService through TypedCoordinatorChannel.callTyped, or returned by one.
- CoordinatorReply
- Reply to a CoordinatorRequest.
- CoordinatorRequest
- A request to a coordinator service.
- CoordinatorService
- A service hosted by the Coordinator (rate limiter, locks, cache...).
- CorsConfig
-
CORS configuration (
config/cors.phpparity). - CorsMiddleware
-
Cross-origin resource sharing. Secure by default: no origin is allowed
until configured, and
*is never combined with credentials (BLUEPRINT_V2 §9.2). - Counter
- Monotonic counter.
- CreateBroadcastingTables
-
The tables of
REVERB_SCALING_ENABLED: relayed frames, channel members, server heartbeats and cache channels. - CreateCacheTable
-
Creates Laravel's
cacheandcache_lockstables (same schema and migration name as Laravel 11's default). - CreateFeaturesTable
-
Pennant's
featurestable (2022_11_01_000001_create_features_table). - CreateJobsTable
-
Creates
jobs,job_batchesandfailed_jobswith Laravel 11's schema and migration name. - CreateNotificationsTable
-
Laravel's
notificationstable (make:notifications-table). Created only when missing, so a database already migrated by Laravel is fine. - CreatePersonalAccessTokensTable
-
Creates
personal_access_tokenswith the exact Sanctum schema. Named like Sanctum's migration so a sharedmigrationstable stays consistent. - CronExpression
-
A five-field cron expression (
minute hour day-of-month month day-of-week) with ranges, steps, lists, names and@aliases. - Crypt
-
Symmetric encryption keyed by
APP_KEY(Crypt::encryptString). - Csp
-
A Content-Security-Policy, built directive by directive and sent by
SecurityHeadersMiddleware(contentSecurityPolicy: ...)on HTML responses. - Cursor
-
Opaque cursor for CursorPaginator, encoded like Laravel's
Cursor: URL-safe unpadded base64 of the PHP JSON of the boundary row's ordered column values plus_pointsToNextItems, so cursors are interchangeable with a Laravel app over the same table. -
CursorPaginator<
T> -
cursorPaginate()result (keyset pagination). -
CustomCast<
T> - A cast with your own conversion: CustomCast.new takes a function reading the raw value and one writing the attribute.
- DailyFileHandler
-
daravel-YYYY-MM-DD.logfiles rotated daily, keeping days files. - DaravelUri
-
Illuminate\Support\Uri: an immutable URI to read and change one part at a time, whichdart:core'sUri.replacemakes awkward for queries. - DatabaseBroadcastRelay
-
Relays the Pusher server's frames between servers through the database
(
REVERB_SCALING_ENABLED), as Reverb does through Redis: send stores a frame, and every isolate of every other server reads it (start) and hands it to its own connections. - DatabaseChannel
-
Stores the notification in Laravel's
notificationstable. - DatabaseChannelState
-
Channel state shared by every server through the database
(
REVERB_SCALING_ENABLED): a presence channel's members are the same whichever server a client is connected to, andmember_addedgoes out once per user across all of them. - DatabaseConfig
- Database configuration section.
- DatabaseDateTime
-
A date read from a driver that returns DateTimes, with the text PDO
would have returned. An uncast column reaches Laravel's JSON as that
text (
2024-01-01 10:00:00), not as an ISO-8601 date. - DatabaseDriver
- A connection to a database server or file.
- DatabaseFailedJobProvider
-
Laravel-compatible
failed_jobstable. - DatabaseFeatureStore
-
Values in Pennant's
featurestable (name,scope, JSONvalue), so a Laravel application on the same database sees the same flags. - DatabaseHealthCheck
-
Runs
SELECT 1on connection. - DatabaseManager
-
Opens and keeps the database connections, runs transactions
(nested ones as savepoints) and after-commit callbacks, and hands out
query builders.
DBis its facade. - DatabaseNotification
-
A row of the
notificationstable. - DatabaseQueue
-
Laravel-compatible
jobstable (scopecluster). Reservation is an optimisticUPDATE … WHERE reserved_at IS NULL, so several workers never process the same row twice. - DatabaseStore
-
Laravel-compatible
cache/cache_lockstables (scopecluster). - DateCast
- Reads and writes dates without a time.
- DateCompareRule
-
after,after_or_equal,before,before_or_equalanddate_equals. - DateFormatRule
-
date_format:Y-m-d[,d/m/Y]: the value, a string or a number, reads back exactly in one of formats (Laravel'svalidateDateFormat). - DatePartWhere
-
whereDate/Month/Day/Year/Time. - DateRule
-
date: see Rules.date. - DateTimeCast
- Reads and writes DateTime values in UTC.
- DateTimeFormatCast
-
Cast.dateTimeFormat: a DateTime attribute that
Model.toJsonwrites with a PHPdate()format. - DB
- Database access.
- DbTransactionBeginning
- A transaction or savepoint is starting.
- DbTransactionCommitted
- A transaction or savepoint committed.
- DbTransactionRolledBack
- A transaction or savepoint rolled back.
- DecimalRule
-
decimal:2anddecimal:0,4. - DecimalStringCast
-
Laravel's
decimal:<places>: a string with exactly places digits after the point, so money keeps its precision. - DeferredServiceProvider
-
A provider whose bindings are registered lazily, the first time one of
the types in provides is resolved from the container (Laravel's
DeferrableProvider). Registration must be synchronous becauseContainer.makeis synchronous; boot is not invoked for deferred providers. - DependentRule
-
prohibited_if,prohibited_unlessandpresent_if. - DigitCountRule
-
min_digitsandmax_digits: the length of a number made of digits. - DigitsBetweenRule
-
digits_between: see Rules.digitsBetween. - DigitsRule
-
digits: see Rules.digits. - Disk
-
A filesystem abstraction (Laravel
Filesystem; BLUEPRINT_V2 §7.10.1). Paths are relative,/-separated and never escape the disk root. - DistinctRule
-
distinct: see Rules.distinct. - DomainPattern
-
A route's host:
admin.example.comor{tenant}.example.com, where{tenant:slug}also names the column of a model binding. A parameter is one label, so it cannot swallow a dot. - DoubleCast
-
Reads and writes
doublevalues. - DrainSignal
-
Completes when the application starts shutting down (SIGTERM or
ServerEngine.stop): long-lived responses (server-sent events) end cleanly so clients reconnect elsewhere, instead of holding the shutdown until its timeout. - Ed25519JwtKey
- Ed25519 key for EdDSA. Verification only needs publicKey; signing also needs the 32-byte seed.
- EmailRule
-
email: see Rules.email. - EmbeddedWorkers
-
Queue worker and scheduler isolates started by Application.serveWith
(
serve --embed-queue --embed-scheduler), so one process can serve HTTP, process jobs and run the schedule without supervisord or cron. - EmptyBody
- No body.
- Encrypter
-
Authenticated symmetric encryption keyed by
APP_KEY(§7.6.1). - EndsWithRule
-
ends_with: see Rules.endsWith. - EnsureFeaturesAreActive
-
feature:a,b(Pennant'sEnsureFeaturesAreActive):400 Bad Requestunless every feature is active for the authenticated user. -
EnumCast<
E extends Enum> -
A Dart enum stored by its
name:EnumCast(Status.values). An unknown stored name reads as null. -
EnumRule<
E extends Enum> -
Rule::enum(): the value of one of values, by name or by toValue. - Env
-
Typed access to environment variables loaded from
.envfiles, the OS environment and explicit overrides (BLUEPRINT_V2 §7.1.3). - Envelope
-
Who and what a Mailable is about (Laravel's
Envelope). - EnvironmentEncrypter
-
Laravel-compatible encrypted environment files (
.env.encrypted), as written byphp artisan env:encryptanddartisan env:encrypt. - Event
-
Events (
Event::dispatch,Event::listen,Event::fake). - EventDispatcher
- Synchronous + queued event dispatching (BLUEPRINT_V2 §7.8).
- EventFake
- Recorded dispatches while EventDispatcher.fake is active.
- EventSubscriber
-
Groups listeners (Laravel
EventSubscriber). - ExceptionHandler
- Central exception → response mapping (ADR-009).
- ExcludeRule
- The rules that drop an attribute: passes answers its name when the attribute leaves the validated data, and no error is added.
- ExecAction
- Runs a program.
- ExistsRule
-
exists:table,column— the value must be present in the table. - ExistsWhere
-
[NOT] EXISTS (subquery)(whereExists). - ExtensionsRule
-
extensions:csv,txt: the extension of the client's file name. - FailedJob
-
A row of
failed_jobs. - FailedJobProvider
-
Storage for failed jobs (Laravel
FailedJobProviderInterface). - Faker
-
Minimal, dependency-free fake data generator for seeders and factories.
Deterministic when constructed with a
seed(Faker(seed: 42)). - Feature
-
Laravel Pennant's
Featurefacade over the application's FeatureManager. - FeatureManager
- Feature flags (Laravel Pennant): resolvers, a FeatureStore and the default scope (the authenticated user).
- FeatureScope
-
A scope that knows its own stored form (Pennant's
FeatureScopeSerializeable). - FeatureStore
- Where resolved feature values are kept.
- FileRule
-
file: see Rules.file. - FileStore
-
JSON files under a directory (scope
clusteron a shared disk, otherwiseprocess). Writes go to a temp file thenrename(atomic on POSIX and NTFS). Locks use exclusive file creation. - FilledRule
-
filled: see Rules.filled. - ForeignIdDefinition
-
A
foreignId()column that can beconstrained(). - ForeignKeyDefinition
- A foreign key constraint.
- FormRequest
-
Reusable authorization + validation for a request (Laravel
FormRequest). - FunctionalMiddleware
- Middleware backed by a closure.
- Gate
-
Authorization (
Gate::allows,Gate::authorize). - Gauge
- Value that goes up and down.
-
Guard<
T extends Authenticatable> -
Resolves the user for a request (Laravel
Guard). - Hash
-
Password hashing (
Hash::make,Hash::check). - HashConfig
-
HASH_DRIVER/BCRYPT_ROUNDS/ARGON_*configuration (config/hashing.phpparity). - HashInfo
- Parsed metadata of a hash string.
- HashManager
- Creates and verifies password hashes off the event loop.
-
HasMany<
R extends Model> -
hasMany: related rows carryforeignKey= parentlocalKey. -
HasManyThrough<
R extends Model> -
hasManyThrough: parent → through (firstKey= parentlocalKey) → related (secondKey= throughsecondLocalKey). -
HasOne<
R extends Model> -
hasOne: like HasMany but a single row. -
HasOneThrough<
R extends Model> -
hasOneThrough: like HasManyThrough but a single model (or null). - HavingClause
-
HAVINGentry. - Headers
- Case-insensitive, multi-value HTTP header collection.
- HealthCheck
-
A readiness probe (
/up/ready). - HealthChecker
-
Runs every check with a timeout and builds the
/up/readypayload. - HealthResult
- Outcome of one HealthCheck.
- Histogram
- Cumulative histogram with fixed buckets.
- HmacJwtKey
-
Shared secret for HS256. An empty secret is refused: HMAC over an
empty key signs and verifies like any other, so a
JWT_SECRETthat was never set would accept tokens anyone could mint (AuthManageralso requires 32 bytes for the guard's secret; this is the floor for every other use of the codec). - Http
-
Outgoing HTTP requests, like Laravel's
Httpfacade: - HttpClientFactory
-
Sends outgoing requests (one pooled
dart:ioclient) or answers them from a fake. Registered as a singleton in the application container. - HttpFake
-
Stubs and the requests sent while faking (
Http.fake()). - HttpKernel
- Orchestrates the request lifecycle (BLUEPRINT_V2 §5.4): global middleware → routing → route middleware → handler → response conversion, with exception rendering at both the route and global layers, per-route timeouts and a terminate phase after the response is sent.
- ImageRule
-
image(jpg, jpeg, png, gif, bmp, webp;image:allow_svgadds svg). - IndexDefinition
- A table-level index.
- InRule
-
inandnot_in: see Rules.inList. - IntCast
-
Reads and writes
intvalues. - IntegerRule
-
integer: see Rules.integer. - IntegerSchema
- A JSON integer schema.
- InWhere
-
column [NOT] IN (...)(whereIn,whereNotIn). - IpRule
-
ip,ipv4andipv6: see Rules.ip. - IsolatePayload
- A value prepared to cross an isolate boundary cheaply (ADR-031).
- Job
- A unit of background work (BLUEPRINT_V2 §7.9.1). Jobs are plain Dart objects serialised to JSON through toJson and rebuilt by the factory registered in JobRegistry (no reflection, AOT-friendly).
- JobAction
- Pushes a job onto the queue.
- JobContext
- Runtime information and control for a running job.
- JobDefinition
- Registry entry: name → factory from JSON.
- JobExceptionOccurred
- A job threw; willRetry tells whether it was released for another try.
- JobFailed
-
A job exhausted its attempts and was recorded in
failed_jobs. - JobMiddleware
- Wraps job execution (Laravel job middleware).
- JobPayload
-
JSON envelope stored by every driver. Top-level keys mirror Laravel's
payload (
uuid,displayName,job,maxTries, …);dataholds the Dart job's own JSON, so payloads are not cross-runtime (§4.4). - JobProcessed
- A job finished without error.
- JobProcessing
- A job was reserved and is about to run.
- JobProcessor
- Runs one reserved job through its middleware with timeout, retry and failure bookkeeping (shared by the worker and the sync driver).
- JobRegistry
- Explicit job registry (ADR-002).
- JoinBuilder
-
Fluent
ONbuilder for closure joins. - JoinClause
- A join clause.
- JoinCondition
-
One
ONcondition of a join. -
JsonApiCollection<
T> -
Resources under one
data; paginators add Laravel'slinksandmeta. -
JsonApiRelationship<
R extends Model> -
A relation a JsonApiResource can expose. There is no
toResourcewithout reflection, so it names the resource for its models. - JsonApiRequest
-
?fields[type]=a,band?include=author,comments.user, as Laravel'sJsonApiRequestreads them. -
JsonApiResource<
T> -
Laravel 13's
JsonApiResource: a JsonResource in the JSON:API v1.1 shape. - JsonCast
- Reads JSON text into maps and lists, and writes them back as JSON.
- JsonHandler
- One JSON object per line (containers, log shippers).
-
JsonResource<
T> -
Transforms a value (usually a Model) into its API representation
(Laravel
JsonResource; BLUEPRINT_V2 §7.10.5). - JsonRule
-
json: see Rules.json. - JsonSchema
-
Laravel's
Illuminate\JsonSchema: a typed builder for JSON Schema documents. - JsonSerializable
- Objects that provide a JSON representation.
- JsonStructuralDiffer
- Compares the shape of two JSON documents: keys, types and list lengths, not values. Daravel and Laravel read one database, but a shadow request comes later, so a value may rightly have changed.
- JsonWhere
-
whereJsonContains/whereJsonLength(dialect specific). - JwtClaims
- Verified claims of a token.
- JwtCodec
- Signs and verifies JWTs (RFC 7519) with a key ring.
- JwtDenylist
-
Revoked token ids (
jti) until their expiry. -
JwtGuard<
T extends Authenticatable> -
Stateless bearer-JWT guard:
subis the user's identifier. - JwtKey
-
A signing/verification key with an optional
kidfor rotation. - KeyGenerator
- Generates client-side keys.
- Lang
-
Laravel's
Langfacade over the application's Translator. - LegacyKey
-
Keys for tables that have no sequence, where Laravel code writes
MAX(id) + 1. Two requests doing that at once read the same maximum. -
LengthAwarePaginator<
T> -
paginate()result. Serializes exactly like Laravel'sLengthAwarePaginator(key order,linkswithpage, URL window). - Limit
-
A rate limit (Laravel
Illuminate\Cache\RateLimiting\Limit). - ListeningQueryExecutor
- Wraps an executor to report every query to listeners. Only used while listeners are registered, so queries cost nothing extra otherwise.
- ListRule
-
list, a JSON array: see Rules.list. - LocalCoordinatorChannel
- Direct in-process calls (single isolate / tests): no message hop.
- LocalDisk
- Local filesystem disk rooted at root.
- Lock
-
An atomic lock (Laravel
Cache::lock). Semantics are fail-closed: a coordinator error surfaces as an exception instead of a false "got it". - LockMessage
- One lock call to ProcessCacheService, as ProcessStore sends it through TypedCoordinatorChannel.callTyped (ADR-031): deeply immutable, so it crosses to the coordinator isolate by reference where the map of toArgs is copied entry by entry. Other cache operations stay maps.
- Log
- Logging access.
- LogContext
- Per-scope (request/job/command) context added to every log line.
- Logger
- Structured logger with channels, scope context and redaction (BLUEPRINT_V2 §7.10.3).
- LoggingConfig
-
LOG_*configuration (config/logging.php). - LogHandler
- Destination of log records (console, JSON stdout, daily file, memory…).
- LogRecord
- One log entry as handed to LogHandlers.
- LogTransport
-
Writes each message to the log instead of sending it
(
MAIL_MAILER=log, Laravel's default). - LowercaseRule
-
lowercase: see Rules.lowercase. -
Laravel's
Mailfacade: - Mailable
-
An email (Laravel's
Mailable): - MailAddress
-
An email address with an optional display name:
Teo <teo@example.com>. - MailAttachment
- A file attached to a message.
- MailChannel
-
Sends
toMail(a NotificationMail or a Mailable) to the notifiable's address. - MailConfig
-
Mail configuration, from the keys of Laravel 12's
config/mail.php. - MailContent
-
The body of a Mailable (Laravel's
Content): HTML, plain text or both, or markdown in the mail theme. Give a text alternative when you can; mail clients and spam filters prefer messages that have one. - Mailer
-
Renders mailables and hands them to the configured MailTransport
(the
Mailfacade). - MailFake
-
What
Mail.fake()recorded, with Laravel's assertions. - MailMessage
- A message ready to send: what a Mailable renders to.
- MailTheme
-
The look of markdown mail and notification mail: Laravel 12's default
mail theme (
resources/views/vendor/mail/html/themes/default.css), with its styles inlined into every element, as Laravel does before sending, since many mail clients ignore<style>. - MailTransport
-
Delivers rendered messages (
MAIL_MAILER):smtp,log,array, or one registered withwithMailTransport. - MaintenanceMode
-
Maintenance mode state in
storage/framework/down, the file and JSON shape Laravel'sphp artisan downwrites (dartisan down/up). - MapRule
-
map, a JSON object: see Rules.map. - MaxRule
-
max: see Rules.max. - MemoryDisk
-
In-memory disk (
Storage.fake()), with assertions. - MemoryFailedJobProvider
- In-memory failed job list (sync/memory connections, tests).
- MemoryHandler
-
Keeps records in memory; returned by
Log.spy()for assertions. - MemoryJwtDenylist
-
In-memory denylist of one isolate, for tests and single-isolate tools:
with
APP_ISOLATES> 1 a token revoked on one isolate stays valid on the others. Applications get a shared one by default (auth.jwt). - MemoryQueue
-
In-memory queue (scope
isolate): tests and--embed-queuestyle single-process setups. - MemoryRateLimitStore
-
Fixed-window counters in this isolate's memory, like Laravel's
RateLimiter(hits + reset time per key): O(1) time and two integers per key, whatever the limit. - MemoryStore
-
Bounded LRU store in this isolate's memory (scope
isolate). - MergeValue
-
Attributes merged into the parent map (
mergeWhen). - MethodOverrideMiddleware
-
HTML forms and multipart uploads can only POST:
_methodor theX-HTTP-Method-Overrideheader names the real verb, as Symfony'sRequest::getMethod()reads them. - MetricsConfig
-
METRICS_*configuration. - MetricsMiddleware
-
Records request count, latency and in-flight gauge. The
routelabel is the route pattern (/users/{id}), never the raw path, to bound cardinality; unmatched requests useunmatched. - MetricsRegistry
- Counters, gauges and histograms rendered in Prometheus text format.
- MetricsService
-
Coordinator service collecting worker snapshots (
processscope). - Middleware
- Onion-style middleware (BLUEPRINT_V2 §7.2.4).
- MiddlewarePipeline
- Runs a list of middleware around a core handler.
- MiddlewareRegistry
-
Global middleware stack, aliases, groups and priority, configured via
ApplicationBuilder.withMiddleware. - Migration
-
A schema migration. name must be unique and stable (it is recorded in
the
migrationstable, Laravel-compatible:id,migration,batch). - MigrationStatus
-
Status row reported by
migrate:status. - Migrator
-
Runs migrations in batches (
migrate,migrate:rollback,migrate:status,migrate:reset). - MimesRule
-
mimes:jpg,png: the extension guessed from the content. - MimetypesRule
-
mimetypes:image/jpeg,video/*: the type detected from the content. - MinRule
-
min: see Rules.min. - MissingValue
-
Marker for attributes omitted by
when/whenLoaded(LaravelMissingValue). - Model
-
Base for Hybrid Active Record models (ADR-006): an attribute bag with
typed accessors written by the developer (or
dartisan make:model), dirty tracking, casts, timestamps, soft deletes, relations and events. -
ModelCollection<
T extends Model> -
A list of models with Laravel
Collectionconveniences. -
ModelDefinition<
T extends Model> - Static metadata of a model (ADR-006). Declared once per model class with an explicit type (so mutually referencing models do not create an inference cycle):
-
ModelFactory<
T extends Model> -
Model factory (named
ModelFactorybecauseModelFactoryis the container binding typedef; BLUEPRINT_V2 §7.5.6). -
ModelObserver<
T extends Model> -
Observes a model's lifecycle. Return
falsefrom a*inghook to cancel the operation (creating,updating,saving,deleting,restoring). -
ModelQuery<
T extends Model> -
Model-aware query (Laravel's Eloquent
Builder): wraps a QueryBuilder and hydrates models, applies global scopes and soft deletes, eager loads relations and offerswhereHas/withCount. -
ModelRef<
T extends Model> -
Reference to a model stored in a payload by key (
SerializesModels). The model is reloaded fresh when the job runs; a missing row throws ModelNotFoundException, failing the job without retry. - ModelRegistry
-
The application's models (
bootstrap/models.dart, registered withApplicationBuilder.withModels): the explicit list thatmodel:show,mcp:serveand generators read instead of discovering classes. -
ModelUserProvider<
T extends Authenticatable> - UserProvider backed by an ORM model definition.
-
MorphedByMany<
R extends Model> -
morphedByMany: the inverse of MorphToMany (the posts of a tag). The pivot's{morphName}_typeis the related model's morph class. -
MorphMany<
R extends Model> -
morphMany: related rows carry{morphName}_type= the parent's morph class (Relation.morphClassOf) and{morphName}_id= the parent's localKey, so posts and videos can share onecommentstable. -
MorphOne<
R extends Model> -
morphOne: like MorphMany but a single row. - MorphTo
-
morphTo: the inverse of MorphOne / MorphMany. Each row names its owner's type in morphType and key in foreignKey, so rows of one table may point at different models (a comment on a post or a video). -
MorphToMany<
R extends Model> -
morphToMany: a polymorphic many-to-many through a pivot table holding{morphName}_type,{morphName}_idand relatedPivotKey (taggables: the tags of posts and of videos). pivotTable defaults to{morphName}s; pass it when the plural is irregular. - MultipartLimits
-
Limits applied while parsing (PHP's
max_input_vars,max_file_uploads; the total size is the request's body limit). - MultipleOfRule
-
multiple_of: see Rules.multipleOf. - MySqlQueryGrammar
-
MySQL/MariaDB grammar: backtick quoting,
?placeholders, no RETURNING. - MySqlSchemaGrammar
- MySQL/MariaDB DDL grammar.
- NestedWhere
-
A parenthesized group of conditions (
where((q) => ...),whereNot). - NewAccessToken
- Result of TokenGuard.issue: the plain-text token is only available here, never again (only its hash is stored).
- Notification
-
A notification (Laravel's
Notification): via names the channels, and each channel reads its own method. - NotificationChannel
-
Delivers a notification on one channel;
idis this delivery's UUID. - NotificationFake
-
What
Notifications.fake()recorded, with Laravel's assertions. - NotificationMail
-
The mail of a notification (Laravel's notification
MailMessage): a greeting, lines, an optional button and a salutation, rendered as HTML and text. - NotificationManager
-
Sends notifications on their channels (the
Notificationsfacade). - Notifications
-
Laravel's
Notificationfacade (plural here:Notificationis the base class): - NotifyingDriver
-
A driver that delivers notifications between connections to the same
database (PostgreSQL's
LISTEN/NOTIFY), so other processes and machines can be woken instead of polling. - NullableRule
-
Marker:
nullvalues skip the remaining rules. - NullWhere
-
column IS [NOT] NULL(whereNull,whereNotNull). - Number
-
Laravel's
Illuminate\Support\Numberfor theenandidlocales, with ICU's output (separators, half-even rounding, currency symbols and spacing) checked against Laravel 12: - NumberSchema
- A JSON number schema.
- NumericRule
-
numeric: see Rules.numeric. - ObjectSchema
- A JSON object schema.
- OrderClause
-
ORDER BYentry. - Pagination
-
Resolves pagination input from the current request, like Laravel's
PaginationState(page from the query string, path from$request->url()). Outside a request it falls back to page 1 and/. - PasswordRule
-
Password: see Rules.password. - PendingDispatch
-
Fluent dispatch (
dispatch($job)->onQueue('x')->delay(...)). Awaiting it performs the push and yields the driver job id (nullwhen a unique job was skipped). - PendingMail
-
Mail.to(...).cc(...).bcc(...).send(mailable). - PendingRequest
-
A request being configured (Laravel's
PendingRequest). - PersonalAccessToken
-
A row of
personal_access_tokens(Sanctum-compatible schema). - PhpJsonEncoder
-
Values:
null,bool,num(finite),String,List,Mapwith string keys and PhpObject; anything else goes through toEncodable once, asdart:convertdoes, or throws JsonUnsupportedObjectError. A cycle throws JsonCyclicError. - PhpObject
-
A PHP object read by phpUnserialize (
O:8:"stdClass":1:{...}): its class name and properties, kept so the value can be written back unchanged by phpSerialize. Daravel code does not create these. -
Policy<
T extends Object> -
Groups authorization logic for one model type (Laravel
Policy). - PoolWaitProbe
- Filled by a pooled driver with the time a query waited for a connection. It sits in the zone of a query only while a listener wants the number.
- PostgresDriver
-
PostgreSQL driver backed by
package:postgres(pure Dart, pooled). - PostgresQueryGrammar
-
PostgreSQL grammar:
$nplaceholders,RETURNING,ON CONFLICT. - PostgresSchemaGrammar
- PostgreSQL DDL grammar.
- PreparedResponsable
-
A Responsable with async work to do first. The kernel awaits prepare
on what a route returns, then calls
toResponse: a JSON:API resource loads what?include=asks for there, becausetoResponseis synchronous. - PresentRule
-
present: see Rules.present. - PreventRequestsDuringMaintenance
-
Answers 503 while the application is in maintenance mode, like Laravel's
PreventRequestsDuringMaintenance. - ProcessCacheService
-
Coordinator service exposing a MemoryStore to every worker
(
process-scope cache and locks). Values arrive in the wire form of ProcessStore.encodeWire (mostly JSON strings) and are kept as they are: this isolate never decodes or copies them. - ProcessRateLimitStore
- Process-wide counters via the coordinator. Fails open on coordinator errors/timeouts (the request is allowed and onError is notified), the documented default for rate limiting (§5.2), unless failClosed. Either way the result is RateLimitResult.degraded, so a Limit.failClosed limit refuses it even in a store that fails open.
- ProcessStore
-
Process-wide cache and locks via the coordinator (scope
process). Lock calls are fail-closed: coordinator errors propagate. - ProcessSupervisor
-
Runs the server as several operating-system processes on consecutive
ports, for a reverse proxy to balance (ADR-027):
APP_PROCESSES=Norserve --processes=N. - ProhibitedRule
-
prohibited: see Rules.prohibited. - ProhibitsRule
-
prohibits: the others must be empty while this one is not. - PusherServer
-
A Pusher protocol server (version 7), as Laravel Reverb is: Laravel
Echo and pusher-js connect to
/app/{key}, and Laravel (or anything with a Pusher HTTP client) publishes through/apps/{id}/events. - PusherSignature
-
The Pusher protocol's signatures, as
pusher/pusher-php-serverand Laravel Reverb compute them. - QueryAst
-
Dialect-neutral description of a query, compiled by a
QueryGrammar. - QueryBuilder
- Fluent SQL builder (BLUEPRINT_V2 §7.5.3). Mutable like Laravel's; use clone to branch. Compiles through the grammar of the connection it runs on, so the same builder works on SQLite, PostgreSQL and MySQL.
- QueryErrors
-
A driver that recognises a unique index or primary key refusing a row
among its errors (Laravel's
isUniqueConstraintError), so it surfaces as UniqueConstraintViolationException. - QueryExceptionExecutor
-
Wraps an executor so a failing query throws QueryException, or
UniqueConstraintViolationException when errors recognises one, as
Laravel's
runQueryCallbackdoes. - QueryExecuted
-
A query that ran (Laravel's
QueryExecuted), passed toDatabaseManager.listen/DB.listenlisteners: SQL with its bindings, duration and connection. For debugging, slow-query logging, N+1 detection and inspection tools. - QueryExecutor
-
Executes parameterized SQL. Bindings use
?placeholders in Tier 0; the dialect-aware grammar (ADR-005) takes over placeholder emission in S5. - QueryGrammar
- Compiles a QueryAst into SQL for one dialect (ADR-005). Placeholders are emitted while compiling, never rewritten textually afterwards.
- Queue
-
Queue (
Queue::push,dispatch(),Queue::fake). - QueueableNotificationChannel
- A channel whose work can be prepared when the notification is sent and done later by a worker, for ShouldQueue notifications: prepare returns JSON, deliver gets it back in the job.
- QueueConfig
-
QUEUE_*configuration (config/queue.phpparity). - QueuedJob
- A job reserved from a queue, being processed.
-
QueuedListener<
E extends Object> -
A listener executed on the queue (
ShouldQueue). The event must be JSON-serializable through eventToJson/eventFromJson. - QueueDriver
- Queue backend (BLUEPRINT_V2 §7.9.1).
- QueueFake
- Recorded pushes while QueueManager.fake is active.
- QueueManager
-
Connections, dispatching, unique jobs and faking (Laravel
QueueManager - QueueWorker
-
Polls queues and processes jobs (
dartisan queue:work). -
RadixTree<
T extends Object> - Segment-based route tree with static > parameter > wildcard priority and backtracking (BLUEPRINT_V2 §7.3.1).
- RateCounterStore
-
A store that counts rate limits as a sliding window or with the generic
cell rate algorithm, in one atomic step on the server's clock
(daravel_redis).
resetInis how long until the key holds no hits;retryAfterhow long until a refused hit would be counted. - RateLimitedJob
- Limits how often jobs sharing a key run (uses the application's RateLimiter store, so the limit is process-wide under a supervisor).
- RateLimiter
-
Named limiters + counters (Laravel
RateLimiter; BLUEPRINT_V2 §7.7). - RateLimitGrant
- Grant of MemoryRateLimitStore.acquireSync: how many of the requested hits were recorded and the window they belong to. Deeply immutable, so the coordinator's answer to a lease crosses back without a copy.
- RateLimitMessage
- One call to RateLimitService, as ProcessRateLimitStore sends it through TypedCoordinatorChannel.callTyped (ADR-031): deeply immutable, so it crosses to the coordinator isolate by reference where the map of toArgs is copied entry by entry. op is an operation of RateLimitService.handle; the fields an operation does not read are 0.
- RateLimitResult
- Outcome of RateLimitStore.attempt.
- RateLimitService
- Coordinator service exposing a MemoryRateLimitStore to every worker. Workers send it RateLimitMessages; handle answers the same operations given as maps.
- RateLimitStore
- Backing store of attempt counters (ADR-003 scopes).
- RawExpression
- Raw SQL fragment with its own bindings; inserted verbatim by grammars.
- RawWhere
-
A raw condition with bindings (
whereRaw). - ReadThroughDisk
-
Laravel's
ReadThroughFilesystemAdapter, for moving files to a new disk without copying them all first: reads try primary, then fallback, and a file found there moves up to primary unless promote is off. Writes go to primary. Deletes reach both, or the file would come back. - RegexRule
-
regexandnot_regex: see Rules.regex. -
Relation<
R extends Model> - Base relation (BLUEPRINT_V2 §7.5.4). Related definitions are resolved lazily through a thunk so two models may reference each other.
- RemoteCoordinatorChannel
- Request/response over SendPort with correlation ids and timeouts.
- ReplicaLayout
- The layout of a replica on a disk, under its prefix:
- ReplicaRestore
- What a restore applied.
- ReplicationSync
- What one SqliteReplicator.sync did.
- Request
- Incoming HTTP request (BLUEPRINT_V2 §7.2.2).
-
RequestGuard<
T extends Authenticatable> - Base for guards that resolve the user from the current Request: caches per scope, so every call within one request hits the database at most once.
- RequestId
- Generates opaque, URL-safe request identifiers.
- RequestIdMiddleware
-
Echoes the request id as
x-request-idon every response. - RequiredIfAcceptedRule
-
required_if_accepted: see Rules.requiredIfAccepted. - RequiredIfRule
-
required_if: see Rules.requiredIf. - RequiredRule
-
required: see Rules.required. - RequiredUnlessRule
-
required_unless: see Rules.requiredUnless. - RequiredWithAllRule
-
required_with_all: see Rules.requiredWithAll. - RequiredWithoutAllRule
-
required_without_all: see Rules.requiredWithoutAll. - RequiredWithoutRule
-
required_without: see Rules.requiredWithout. - RequiredWithRule
-
required_with: see Rules.requiredWith. -
ResourceCollection<
T> -
A collection of resources; paginators add Laravel's
linksandmeta. - ResourceController
-
Controller contract for
Router.apiResource(index, store, show, update, destroy). Implement the actions you need; the router only registers the ones selected withonly/except. - ResourceWrapping
-
Shape of a resource payload: the wrapping key (
data) is global, like Laravel'sJsonResource::$wrap. - Responsable
- Objects that know how to turn themselves into a Response.
- Response
- Immutable HTTP response (BLUEPRINT_V2 §7.2.3).
- ResponseBody
- Body of a Response.
- ResponseSequence
- Responses handed out in order by one stub.
- RetryableErrors
-
A driver that recognises its own transient errors (deadlocks, lock
timeouts), so
DB.transaction(attempts: n)retries them. - RouteEntry
- A registered route with fluent configuration (BLUEPRINT_V2 §7.3.2).
-
RouteMatch<
T extends Object> - Result of a successful RadixTree.lookup.
- RoutePatterns
-
Well-known parameter patterns (Laravel
whereNumber,whereUuid, ...). - Router
- Fluent router (BLUEPRINT_V2 §7.3.2). Routes are registered during boot and compiled once into per-method RadixTrees.
- RouteResponse
- A documented route response (see RouteEntry.returns).
- RoutesNotifications
-
A notifiable that decides its own routes (Laravel's
routeNotificationFor<Channel>): returnnullfor the default. - Rule
-
A validation rule. passes returns
nullon success or a message reference on failure: either a translation key such asmin.string(resolved with parameters) or a literal message containing a space. - RuleBuilder
- Rules written as a chain, typed and checked by the compiler:
- RuleParser
-
Parses Laravel's string rule DSL (
'required|email|max:255') into Rule objects (ADR-020). Parsing happens once at definition time and unknown rules throw immediately, so typos surface at boot or in tests, never in a request. - Rules
-
Factory facade for built-in rules (
Rule.required(),Rule.email()...). Each factory returns aconst-friendly Rule subclass that can be introspected for messages and OpenAPI hints. - RunsBeforeBindings
-
Route middleware that runs before route bindings, as the entries above
SubstituteBindingsin Laravel's$middlewarePriority(the same from 8 to 13): cookies, the session, authentication and rate limits. So a guest gets 401 rather than a 404 that tells which records exist, and a binder can use the authenticated user. The bindings run right after the last of these on a route, or first when it has none. - SameRule
-
sameanddifferent: see Rules.same. - Schedule
-
Declares scheduled tasks (
routes/console.dart, Laravel 11 style). - ScheduledAction
- What a scheduled task does.
- ScheduledTask
-
A task with its cron expression, filters and hooks (Laravel
Event). - ScheduledTaskFinished
- A scheduled task finished (successfully or not).
- ScheduledTaskSkipped
- A scheduled task was skipped (filter, overlap lock, environment).
- ScheduledTaskStarting
- A scheduled task is about to run.
- Scheduler
-
Executes due tasks (
schedule:run) or loops every minute (schedule:work). - Schema
- Schema access.
- SchemaBuilder
-
Executes schema operations against a QueryExecutor (
Schema::create,Schema::table,Schema::dropIfExists,Schema::hasTable...). - SchemaGrammar
- Compiles blueprints into DDL for one dialect.
- SchemaType
-
One node of a schema. Named so because
Typeisdart:core's. - Scope
- Per-request/job/command/test storage created by Container.runScoped.
- ScopedFeatures
-
The features of one scope (
Feature.forScope(user)). - SecurityHeadersMiddleware
- Conservative security headers for API responses (BLUEPRINT_V2 §9.2). Headers already set by the handler are preserved.
- Seeder
-
Populates the database (
db:seed). Seeders run inside the application's command scope, so facades (DB, models, factories) are available. - SeederRegistry
-
Seeders registered with
ApplicationBuilder.withSeeders. The first entry is the root seeder run by a baredb:seed(Laravel'sDatabaseSeeder). - SendQueuedMail
-
The job that sends a queued message (
daravel:mail, registered by the framework). Its payload is the rendered message. - SendQueuedNotification
-
The job that delivers a queued notification on a queueable channel
(
daravel:notification, registered by the framework). - SentMessage
- A sent message: its id and the raw MIME that went out.
- ServeOptions
- Options for Application.serve.
- ServerEngine
-
Binds the
dart:ioserver, wraps every request in a request scope and performs graceful shutdown onSIGINT(andSIGTERMoutside Windows). - ServiceProvider
- Registers and boots services, mirroring Laravel's two-phase providers.
- SessionStore
-
The session as code outside the session package sees it: Laravel's
Illuminate\Contracts\Session\Session, reduced to what the testing toolkit reads and writes. - SetLocaleMiddleware
-
Picks the request's locale from
?lang=(or query) or theAccept-Languageheader, among supported, and makes it the locale of the request: trans,App.localeand validation messages follow it. Without a match the application locale stays. - ShadowAnswer
- The upstream's answer to a replay.
- ShadowDrift
- One difference. It holds a path and types, never a value: drifts go to logs and dashboards, and the bodies hold user data.
- ShadowParityDrift
- A route of Daravel answered differently from the upstream.
- ShadowParityRunner
-
Replays a sample of the
GETandHEADrequests Daravel answers to the upstream, and reports where the answers differ, after the client has its response: a route can move to Daravel and be watched against Laravel under real traffic. - ShouldBroadcast
-
An event that is broadcast when it is dispatched (Laravel's
ShouldBroadcast):Event.dispatch(OrderShipped(order))also sends it to broadcastOn's channels. - ShouldQueue
-
Laravel's
ShouldQueuefor mailables and notifications: sending one puts it on the queue instead. Override the getters to pick where. -
SimplePaginator<
T> -
simplePaginate()result: no total, only next/previous. - SizeRule
-
size: see Rules.size. - SmtpTransport
-
Sends mail over SMTP (
MAIL_MAILER=smtp), one connection per message: EHLO, STARTTLS when offered (or TLS from the start with smtps), AUTH PLAIN or LOGIN when credentials are set, then the message with its lines dot-stuffed. Every step is bounded by MailConfig.timeout. - SometimesRule
- Marker: validate only when the attribute is present.
- SqlBindings
-
Expands raw SQL bindings into a dialect's placeholders without touching
string literals, comments,
::castsor PostgreSQL JSON operators (ADR-005). - SqliteDriver
-
SQLite driver backed by
package:sqlite3(synchronous FFI). - SqliteQueryGrammar
-
SQLite grammar:
?placeholders,INSERT OR IGNORE,ON CONFLICT. - SqliteReplicator
- Ships an SQLite database in WAL mode to a Disk, as Litestream does (Blueprint #30): a page-exact snapshot, then the committed frames of the write-ahead log as they appear, so a restore loses at most what was committed since the last sync.
- SqliteSchemaGrammar
- SQLite DDL grammar.
- SqliteTableRebuilder
-
Rebuilds a SQLite table to apply changes
ALTER TABLEcannot express (the documented 12-step procedure, as Laravel/Doctrine do): create a temp table with the new definition, copy rows, drop the old table, rename, recreate indexes. Works inside the migration transaction because the old table is dropped only after the rebuilt table has taken its name. - SqliteVersion
-
Parsed
sqlite_version(). - SseEvent
-
One server-sent event (Laravel's
StreamedEvent): event defaults toupdateas in Laravel'sresponse()->eventStream(); data that is not a string or number is sent as JSON. - StartsWithRule
-
starts_with: see Rules.startsWith. -
StatefulGuard<
T extends Authenticatable> - A guard that also persists login state (session guard, T2).
- StaticAssets
-
Every directory registered with
withStatic, in order: url uses the first that has the file. Bound in the container, read byAssets. - StaticFile
- One file found by a StaticFiles scan.
- StaticFiles
-
A public directory served under a URL prefix (
ApplicationBuilder .withStatic('public', prefix: '/assets')), traversal-proof by construction: the directory is scanned at boot and a request is answered by looking its path up among the files found. No part of the URL reaches the file system, so..,%2e%2e, backslashes or a symbolic link planted later can only miss the lookup. - Storage
-
Filesystem access (
Storage::disk('public')->put(...)). - StorageConfig
-
FILESYSTEM_*configuration (config/filesystems.php, Laravel 11). - StorageManager
-
Named disks (Laravel
FilesystemManager). - Str
-
String helpers with Laravel's
Strsemantics (BLUEPRINT_V2 §7.12). - StreamBody
- A body streamed as it is produced.
- StringCast
-
Reads and writes
Stringvalues. - StringRule
-
string: see Rules.string. - StringSchema
- A JSON string schema.
- SubSelect
-
A subquery in the select list:
(SELECT ...) AS alias, orEXISTS(SELECT ...) AS aliaswhen exists. Compiled in the same pass as the outer query, so dialects with numbered placeholders stay in order. - Supervisor
-
Main-isolate supervisor (ADR-004): spawns N HTTP workers that bind the
same port with
shared: true, hosts the Coordinator forprocess-scope state, waits for readiness, respawns crashed workers with backoff and orchestrates a graceful drain on signals. - SyncQueue
- Runs jobs inline at push time (dev/test). processor is wired by the queue manager.
- TaggableCacheStore
-
A store whose entries can carry tags (Laravel's
TaggableStore):Cache.tags(['posts']).put(...), thenCache.tags(['posts']).flush()forgets them. Thememoryandprocessstores and daravel_redis's support it; thefileanddatabasestores do not, as in Laravel. - TaggedCacheStore
- A store seen through tags (TaggableCacheStore.tags): keys are namespaced by the tags, in their order, and flush forgets only what they tagged.
- TagSetCacheStore
-
Laravel's
TagSetandTaggedCacheover any store: each tag has a random id (tag:<name>:key), keys live under the SHA-1 of the ids, and a flush gives the tags new ids, so what they tagged is no longer reached (and expires, or leaves the memory store's LRU). - TaskRunResult
- Result of one task execution.
- TerminableMiddleware
-
Middleware with work to do after the response has been sent to the
client (Laravel's
terminate()), such as flushing logs or metrics. - TextPayload
- An IsolatePayload of text.
- ThrottleMiddleware
-
throttle:60,1(max attempts, decay minutes) orthrottle:api(named limiter). AddsX-RateLimit-Limit/X-RateLimit-Remainingto responses and answers 429 withRetry-Afterwhen exceeded. - TimezoneRule
-
PHP's
timezone_identifiers_listby the group of the name. The database here also knows old aliases such asAsia/Calcutta, which PHP's list leaves out. -
TokenGuard<
T extends Authenticatable> - Sanctum-style personal access token guard (BLUEPRINT_V2 §7.6.2).
- TouchableCacheStore
-
A store that can change how long a key lives without rewriting its value
(Laravel's
Cache::touch), so a concurrentincrementis never lost. - TransactionBeginning
-
A database transaction or savepoint began. depth is 1 for
BEGIN. - TransactionCommitted
- A database transaction committed, or a savepoint was released.
- TransactionEvent
-
The life of a transaction, for
DB.listenTransactions. depth is 1 forBEGINand above that for a savepoint, astransactionLevel(). - TransactionRolledBack
- A database transaction or savepoint rolled back.
- TranslationLines
-
The application's keyed translation lines, for the modules below
translation(validation messages, paginator labels). - Translator
-
Translations (Laravel's
Translator,__(),trans()andtrans_choice()). - TrimStringsMiddleware
-
Trims surrounding whitespace from every string input, except the keys
listed in except (Laravel's
TrimStrings, which skips passwords). - TrustProxiesMiddleware
-
Applies
X-Forwarded-*headers only when the TCP peer is a trusted proxy (BLUEPRINT_V2 §2.3, §9.1). Without this middleware, or when the peer is not trusted, forwarded headers are ignored andrequest.ipis the socket address, which makes IP-based rate limiting unspoofable. - TypedCoordinatorChannel
- A CoordinatorChannel that also sends typed messages to a TypedCoordinatorService. LocalCoordinatorChannel and RemoteCoordinatorChannel are both. A channel that is only a CoordinatorChannel (an application's own, a test double) keeps working: the framework's stores send it the same operation as a map through call.
-
TypedCoordinatorService<
M extends Object> -
A CoordinatorService that also answers typed messages of type
M(ADR-031): one small immutable object per call instead of a map whose entries the VM copies, used on the hottest paths (rate limits, locks). CoordinatorService.handle keeps answering the same operations as maps, for channels that are not a TypedCoordinatorChannel. - UlidRule
-
ulid: see Rules.ulid. - UnionClause
-
UNIONentry. - UnionSchema
- A value of any of several JSON types.
- UniqueRule
-
unique:table,column,ignore,idColumn— queries the active connection (joining any Zone transaction). - UploadedFile
-
A file sent in a
multipart/form-datarequest (Laravel'sIlluminate\Http\UploadedFile). - UploadedFileFactory
-
UploadedFile.fakehelpers. - UppercaseRule
-
uppercase: see Rules.uppercase. - UpstreamProxy
- Forwards requests Daravel has no route for to another server, usually the Laravel application being migrated (the strangler fig pattern, Blueprint #29): migrated routes answer from Daravel, the rest from Laravel, behind one address, on one database.
- UrlRule
-
url: see Rules.url. - UrlSigner
-
Signs and verifies URLs with HMAC-SHA256 (Laravel
URL::signedRoute). -
UserProvider<
T extends Authenticatable> -
Loads users for guards (Laravel
UserProvider). - UuidRule
-
uuid: see Rules.uuid. - ValidateSignatureMiddleware
-
Rejects requests whose URL signature is missing, invalid or expired
(
signedmiddleware alias; LaravelValidateSignature). - ValidationContext
- Everything a Rule needs to evaluate one attribute (BLUEPRINT_V2 §7.4.1).
- ValidationMessages
-
Default validation messages (Laravel
lang/en/validation.phpparity) with an Indonesian translation as the second bundled locale. - Validator
- Validates a map of input against rules (BLUEPRINT_V2 §7.4).
- VectorCast
-
A list of doubles stored as a vector (
pgvector, MariaDBVECTOR), or as JSON text on SQLite. - WakeableQueueDriver
-
A driver that wakes an idle worker as soon as a job is pushed, instead
of the worker sleeping
--sleepbetween empty polls. - WalFrame
- One frame: a page image and, for the last frame of a transaction, the size of the database after it commits.
- WalHeader
- The 32-byte header of an SQLite write-ahead log (https://www.sqlite.org/fileformat2.html#walformat).
- WalRead
- The committed frames read from a log, and where reading stopped.
- WebResourceController
-
Adds the HTML form actions used by
Router.resource(create, edit). - WhereClause
- Where clauses (sealed so grammars can be exhaustive).
- WindowCounterStore
-
A store that counts fixed-window hits in one atomic step, for rate limits
over the network (
CACHE_LIMITER=database): one round trip per attempt instead of a read-modify-write sequence. - WithoutOverlapping
- Prevents concurrent runs sharing key by holding a cache lock. When the lock is taken the job is released after releaseAfter (or deleted when dontRelease is true).
- WorkerAwareService
-
A CoordinatorService holding state on behalf of worker isolates
(presence members, broadcast ports): told when a worker is gone, so
what it registered does not outlive it. Workers name themselves with
Isolate.current.debugName(daravel-worker-Nunder a supervisor). - WorkerDrained
- Sent by a worker after draining.
- WorkerFailed
- Sent by a worker that failed to boot or bind.
- WorkerOptions
-
queue:workoptions. - WorkerReady
- Sent by a worker once its server is bound.
- WorkerReports
- A worker's side of WorkerReportService.
- WorkerReportService
- The latest report of every worker isolate, by topic: a worker publishes what it measured on its own (WorkerReports.publish) and any worker collects all of them, so a page served by one worker can show the whole process. Reports must be sendable (maps, lists, strings, numbers, booleans). The worker sends a report JSON can hold as JSON text, which the VM shares between isolates instead of deep-copying it (ADR-031); the coordinator keeps that text as is and the collecting worker decodes it.
Enums
- ColumnType
- Column types supported by the schema builder.
- ConfigIssueLevel
- Severity of a ConfigIssue.
- EmbeddedRole
- What an embedded isolate runs next to the HTTP server.
- EncryptionCipher
- Symmetric ciphers supported by Encrypter.
- ForwardedHeader
- Forwarded headers that a trusted proxy may supply.
- HashDriver
- Password hashing drivers (ADR-008). Every driver produces a self-describing string so that HashManager.check can detect the driver from its prefix.
- JobOutcome
- Outcome of one processing attempt.
- JoinType
- Join types.
- JwtAlgorithm
- Signing algorithms (BLUEPRINT_V2 §7.6.2): HMAC-SHA256 and Ed25519.
- KeyType
- Primary key strategies.
- Lifetime
- Lifetime of a binding registered through a factory.
- LockMode
- Row-lock modes.
- LogLevel
- RFC 5424 levels (ordered by severity).
- ModelEvent
- Lifecycle events a model fires (Laravel parity).
- PostgresSslMode
-
SSL modes exposed without leaking the
postgrespackage type. - RateLimitAlgorithm
- How a Limit counts attempts.
- ResponseShape
- How a route returns its item schema (see RouteEntry.returns).
- ShadowCompare
- What a shadow replay compares.
- SqlDialect
- SQL dialects known to the framework.
- StateScope
- Where a piece of state lives (ADR-003).
Mixins
- AuthenticatableModel
- Default Authenticatable implementation for models:
Extension Types
- ValidatedData
-
Validated input with typed accessors (ADR-011). Only attributes that had
rules are included (Laravel
$request->validated()parity).
Extensions
- DaravelDateTime on DateTime
-
Carbon-style helpers, relative to Clock.now (so
freezeTime()andtravel()apply). - DaravelDuration on Duration
-
15.minutes.fromNow,7.days.ago, on the testable Clock. - DaravelDurationInt on int
-
10.minutes,7.daysforCache.remember, token expiry,travel(). -
DaravelIterable
on Iterable<
T> -
Laravel-collection style helpers on any
Iterable(BLUEPRINT_V2 §7.12). They complementpackage:collectionrather than replace it, and work directly on lists, sets, query results and model collections: - DaravelNullableString on String?
-
Blank checks on possibly-null strings (
blank()/filled()). - DaravelNumber on num
-
5242880.toFileSize(),1500.abbreviate(). - DaravelOrdinal on int
-
22.ordinal()→22nd. - DaravelString on String
-
Stras methods on the string (Laravel'sStr::of()chain):rawTitle.after(':').squish().slug(). Members thatStringalready has (contains,startsWith,padLeft, …) keep their Dart meaning; useStrfor Laravel's versions of those. - DiskResponses on Disk
-
Laravel's
Storage::download()andStorage::response(). These live on thehttpside becausestoragedepends on nothing butfoundation. - NotifiableModel on Model
-
user.notify(...)(Laravel'sNotifiabletrait) for every model. - RequestAuth on Request
-
Auth helpers on the request (
$request->user(),bearerToken()). - RuleChain on Rule
-
Starts a RuleBuilder from any rule:
Rules.required().email(). - SchemaTypeFluent on S
- The setters every node shares. An extension, so each returns its own type.
Constants
- daravelFaviconDataUri → const String
- The Daravel favicon (32 px PNG) as a data URI.
- daravelLogoDataUri → const String
- The Daravel icon (128 px PNG) as a data URI, for welcome pages: embedded so an AOT binary serves it without static files. Unused constants are tree-shaken from builds.
- daravelVersion → const String
-
The Daravel release (kept equal to every workspace
pubspec.yamlversion bytest/foundation/version_test.dart). -
defaultBuckets
→ const List<
double> - Default histogram buckets in seconds (Prometheus client defaults).
-
laravelImplicitRules
→ const Set<
String> -
Laravel's
Validator::$implicitRules(laravel/framework 8 to 13, the same list), by rule name: a failure of one of these ends the validation of its attribute.prohibitedis not one of them. - missing → const MissingValue
- The single MissingValue instance.
-
reasonPhrases
→ const Map<
int, String> - Standard reason phrases used when aborting without a custom message.
-
strongDrivers
→ const Set<
HashDriver> -
Drivers whose hashes HashManager.check accepts across a driver switch
even with
verifyenabled (ADR-024).
Functions
-
abort(
int status, [String? message, Map< String, String> headers = const <String, String>{}]) → Never -
Throws an HttpException with
status(Laravel'sabort()helper). -
abortIf(
bool condition, int status, [String? message, Map< String, String> headers = const <String, String>{}]) → void -
Aborts with
statuswhenconditionis true (abort_if()). -
abortUnless(
bool condition, int status, [String? message, Map< String, String> headers = const <String, String>{}]) → void -
Aborts with
statusunlessconditionis true (abort_unless()). -
applyWalFrames(
String path, Iterable< WalFrame> frames, int pageSize) → void -
Writes
framesinto the database file atpath, in order: each page at its place, and the file cut to the commit's size after each commit frame. This is what a checkpoint does. Applying frames a snapshot already contains is harmless: the last image of each page and the last commit's size win. -
asset(
String path) → String -
Laravel's
asset(): the versioned URL of a file served bywithStatic(asset('neo.css')→/assets/neo.css?v=1a2b3c4d5e6f). -
bearerTokenOf(
Request request) → String? -
Extracts the
Authorization: Bearer <token>value, if any. -
blank(
Object? value) → bool -
Whether
valueis "blank":null, a whitespace-only string, or an empty collection or map (blank()). Numbers andfalseare not blank. -
buildInput(
Iterable< (String, Object)> pairs, {int maxDepth = 32}) → Map<String, Object?> -
Nests
name[key][]-stylepairsinto maps and lists, as PHP fills$_GET,$_POSTand$_FILES(used for query strings, form bodies and multipart fields and files). -
buildOpenApi(
Iterable< RouteEntry> routes, {String title = 'Daravel API', String version = '1.0.0', String? serverUrl}) → Map<String, Object?> -
Builds an OpenAPI 3.1 document from the compiled route table
(
dartisan openapi:generate, the live/docs/apipage). -
castName(
Cast cast) → String -
The cast's name in Laravel's vocabulary (
integer,datetime, ...). -
constantTimeBytesEquals(
List< int> x, List<int> y) → bool - Byte-wise constant-time comparison.
-
constantTimeEquals(
String a, String b) → bool - Compares two strings without leaking their common-prefix length through timing (BLUEPRINT_V2 §7.6.5).
-
contentDisposition(
String name, {bool inline = false}) → String -
Content-Dispositionby RFC 6266: an ASCIIfilenamefor old clients andfilename*(RFC 5987) when the name is not plain ASCII. A name with a path or a control character is a programming error, as in Symfony'sHeaderUtils::makeDisposition. -
crc32b(
List< int> bytes) → String -
PHP
hash('crc32b', $data): CRC-32 (IEEE 802.3, as zlib) as 8 lowercase hex digits. Sanctum appends it to token secrets so leaked tokens can be recognised by secret scanners. -
createStandardCoordinator(
{int processCacheMaxEntries = 10000}) → Coordinator - Builds the standard coordinator: rate limiting, process cache, merged metrics (with the coordinator's own counters), broadcast fan-out, channel membership and worker reports.
-
currentLaravelCompat(
) → int -
The
COMPAT_LARAVEL_VERSIONof the active application, or AppConfig.defaultLaravelCompat outside one (a unit test of a validator, a script). -
currentLocale(
) → String -
The locale of the current request, job or command: the one set with
setCurrentLocale in this scope, else the application's (
APP_LOCALE). Translations and validation messages follow it. -
dataGet(
Object? target, String path, [Object? fallback]) → Object? -
Reads
path(dot notation,*not supported) from nested maps, lists and models, or returnsfallback(data_get()). -
decodeSegment(
List< int> compressed) → (int, List<WalFrame> ) - The page size and frames of a segment written by encodeSegment.
-
defaultBroadcastServerId(
) → String - This server's name among the others when BroadcastConfig.serverId is not set: the host and the process, which every worker isolate shares.
-
describeModel(
ModelDefinition< Model> definition) → Map<String, Object?> -
definitionas JSON-friendly data, in the spirit ofartisan model:show --json(database columns are added by the caller that can query them). -
describeRelation(
Relation< Model> relation) → Map<String, Object?> - One relation: its name, type, related model and keys.
-
detectMimeType(
List< int> header) → String -
Detects a MIME type from the first bytes of a file, never from its name:
package:mimesignatures plus BMP, SVG, ZIP-based documents (Office Open XML, OpenDocument) and plain text. -
encodeHeaderWord(
String value) → String -
valueas RFC 2047 encoded words (=?utf-8?B?...?=), each at most 75 characters and split between characters, never inside one. -
encodeQuotedPrintable(
String text) → String -
RFC 2045 quoted-printable of
textas UTF-8, CRLF line endings, lines at most 76 characters (soft breaks end with=). -
encodeSegment(
List< WalFrame> frames, int pageSize) → Uint8List -
Encodes frames as a segment:
DRVWAL01, page size, frame count, then per frame its page number, commit size and page. -
env(
String key, [String? fallback]) → String? - Reads an environment variable from the active application.
-
equalizeLoginTiming(
Map< String, Object?> credentials) → Future<void> -
When no user matched
credentials, hashes their password against a dummy hash so failed logins for unknown and known accounts take the same time (user enumeration mitigation, BLUEPRINT_V2 §9.2 item 9). -
escapeHtml(
String value) → String -
valuewith& < > " 'escaped, for HTML text and attribute values: Laravel'se()(htmlspecialcharswithENT_QUOTES), so'becomes'. -
extensionForMimeType(
String mimeType) → String? -
The usual extension for
mimeType(Symfony'sguessExtension). -
filled(
Object? value) → bool -
!blank(value)(filled()). -
formatDate(
DateTime value) → String -
yyyy-MM-dd. -
formatDateTime(
DateTime value) → String -
yyyy-MM-dd HH:mm:ssin UTC (Laravel's default date format). -
formatMailDate(
DateTime date) → String -
RFC 5322 date:
Mon, 26 Oct 2026 08:00:00 +0000. -
formatPhpDate(
DateTime value, String format) → String -
Formats
value, converted to UTC, with a PHPdate()format:Y-m-d H:i:s,D, d M Y,c,U, ... Every PHP token is supported,\escapes the next character and any other character is copied. Zone tokens (e,T,O,P,p,Z,I) describe UTC. -
inject<
T extends Object> ({String? name}) → T -
Resolves
Tfrom the active container (Laravel'sresolve()), withTinferred from where the value goes, so a default stays mockable: -
isEmptyValue(
Object? value) → bool -
Whether
valuecounts as empty forrequired(Laravel semantics). -
isolateSizingAdvice(
{required bool production, required int isolates, int? processors}) → String? -
Why a production server with one HTTP isolate on a machine with several
cores may be undersized, or
nullwhen it is not the case: one isolate runs one CPU-bound request at a time, so heavy endpoints stop scaling with concurrency.servelogs it anddartisan doctorreports it. -
isWebSocketUpgrade(
Request request) → bool -
Whether
requestasks to switch to the WebSocket protocol. -
jsonArrayBytes(
Stream< Object?> items, {bool phpCompatible = false, String? wrap, int flushBytes = 64 * 1024}) → Stream<List< int> > -
The bytes of a JSON array of
items, written as the items arrive:[and]around them, a comma between, each item encoded with Response.encodeJson (or Response.encodePhpJson withphpCompatible) as soon as it is produced, so a response never holds every row at once. Withwrap, the array is the value of that key in an object:{"data":[...]}, as Laravel'sresponse()->streamJson()writes. -
jsonDate(
DateTime time) → String -
Serializes
timethe way Laravel serializes dates to JSON (Carbon::toJSON()): UTC ISO-8601 with microseconds,2026-01-02T03:04:05.000000Z; a DatabaseDateTime as its text. -
jsonTypeOf(
Object? value) → String -
The JSON type of a decoded value.
intanddoublestay apart, like{}and[]: a client can tell them, and PHP's empty array is the classic drift. -
laravelErrorResponse(
Map< String, Object?> body, {required int status, Map<String, String> headers = const <String, String>{}}) → Response -
Laravel's
Handler::prepareJsonResponsebody: the error as JSON withJSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES(four-space indent,/kept, non-ASCII as `` escapes), as Laravel 8 to 13 send every error but 401Unauthenticated.and 422 validation errors. -
listReplicaGenerations(
Disk disk, String prefix) → Future< List< String> > -
The generations of the replica under
prefix, oldest first. -
looksPhpSerialized(
String data) → bool -
Whether
datastarts like aserialize()payload, so a reader can tell it from JSON without parsing. -
mailAddressOf(
Model model) → MailAddress -
The address of
model: itsemailattribute, named byname. -
mailButton(
String label, String url, {String color = 'primary'}) → String -
Laravel's
<x-mail::button>, withlabelandurlescaped, for markdown mail:colorisprimary,successorerror. -
mailPanel(
String markdown) → String -
Laravel's
<x-mail::panel>aroundmarkdown. -
markdownToText(
String markdown) → String -
A plain-text version of themed markdown: links and buttons as
text: url, tags removed. -
maybeInject<
T extends Object> ({String? name}) → T? -
inject, or
nullwhen nothing is bound forT. -
mimeTypeOf(
String name) → String -
The
Content-Typeof a file calledname, by its extension. -
modelClassName(
ModelDefinition< Model> definition) → String -
The Dart class name of the models
definitioncreates. -
multipartBoundary(
String? contentType) → String? -
The boundary of a
multipart/form-datacontent type, ornull. -
normalizeDiskPath(
String path) → String - Normalises a disk-relative path, rejecting traversal and absolute paths.
-
now(
) → DateTime -
Global helpers with Laravel's semantics (BLUEPRINT_V2 §7.12).
abort,abortIfandabortUnlesslive with the HTTP exceptions;envwith the facades. Laravel'sapp()isApp.make<T>()(a top-levelappwould be shadowed by the idiomaticappvariable). The current time from Clock (frozen byfreezeTime()in tests). -
once<
T> (Object key, T callback()) → T -
Memoizes
callbackbykeyfor the current scope (request, job, command): the first call runs it, later calls in the same scope return the stored result (once()). Outside a scope it just runscallback. -
parseDate(
Object? value) → DateTime? -
Parses ISO-8601 dates/datetimes and
yyyy-MM-dd. -
parseDateTime(
Object? raw) → DateTime? -
Parses ISO-8601,
yyyy-MM-dd HH:mm:ssand epoch values as UTC. -
parseDbDateTime(
Object? value) → DateTime? -
Parses a timestamp column value (driver-specific:
DateTime, ISO string or epoch milliseconds). Text without a zone, such as MySQL'sY-m-d H:i:s, is UTC, the zone the framework writes in, whatever the zone of the process. -
parseQueryString(
String query, {int maxDepth = 32}) → Map< String, Object?> -
Parses a query string (or form body) the way PHP's
parse_strfills Laravel's input:a[]=1&a[]=2is a list,f[status]=xa map, keys nest up tomaxDepthlevels, and a repeated plain key keeps its last value. Maps whose keys are exactly0..n-1become lists, as in Laravel's JSON. -
phpDateMatchesFormat(
String value, String format) → bool -
Laravel's
date_formatcheck (ValidatesAttributes::validateDateFormat, laravel/framework v8.83.27 to v13.38.0):valuepasses when PHP'sDateTime::createFromFormat('!' . $format, $value, UTC)reads it and formatting the result withformatgivesvalueback exactly, so2026-02-30failsY-m-d(it overflows to March) and2026-1-5failsY-m-dbut passesY-n-j. -
phpJsonDouble(
double value) → String -
Writes the bytes of PHP's
json_encode()for a Dart value in one pass: the same output asjsonEncodefollowed by phpJsonFromDart, without the intermediate string and its rewrite (on a 1 MB response the rewrite cost more than the encoding itself). -
phpJsonEncode(
Object? value) → String -
PHP
json_encode()with default flags: like jsonEncode, but/is escaped as\/and non-ASCII characters as\uXXXX(UTF-16 units). -
phpJsonFromDart(
String json, {bool emptyMapsAsArrays = false, bool escapeSlashes = true}) → String -
Rewrites
json(the output ofdart:convert's encoder) into the bytes PHP'sjson_encode()writes with default flags:/becomes\/and every non-ASCII UTF-16 unit\uxxxx(lower-case hex, surrogate pairs as two escapes). Control characters and quotes are already escaped the same way by both. -
phpRawUrlEncode(
String value) → String -
PHP's
rawurlencode: every byte of the UTF-8 encoding exceptA-Z a-z 0-9 - _ . ~becomes%XX(upper case). -
phpSerialize(
Object? value) → String -
PHP
serialize()ofvalue:null,bool,int,double,String,List(an array with keys 0..n-1),Map(an array; a key that is a canonical decimal integer becomes an integer key, as PHP does) and PhpObject. Strings count UTF-8 bytes. Anything else throws ArgumentError. -
phpUnserialize(
String data) → Object? -
PHP
unserialize()ofdata: arrays whose keys are exactly 0..n-1 in order become aList, other arrays aMap<String, Object?>(integer keys as decimal strings), objects a PhpObject. References (r:,R:) andSerializablepayloads (C:) throw FormatException, as does any malformed input. -
readWalFrames(
Uint8List bytes, WalHeader header, {required int offset, required int checksum1, required int checksum2}) → WalRead -
Reads the frames of the log in
bytesthat belong toheader, fromoffsetwith the running checksum (checksum1,checksum2) of the frame before it (the header's for the first frame). Frames are trusted only while their salts match and their cumulative checksum holds, exactly as SQLite decides which frames a reader may use; only frames up to the last commit are returned. -
rescue<
T> (FutureOr< T> callback(), {T? fallback, bool report = true}) → Future<T?> -
Runs
callback, returningfallbackwhen it throws (rescue()). The error is logged unlessreportis false. -
restoreReplica(
Disk disk, String prefix, String target, {String? generation, DateTime? at, bool overwrite = false}) → Future< ReplicaRestore> -
Restores the replica under
prefixtotarget: the snapshot of the newest generation (orgeneration), then its segments in order, up toatwhen given (point in time; the generation is then the newest one whose snapshot is not after it). Refuses to overwrite a file unlessoverwrite. Checks the result withPRAGMA integrity_check. -
retry<
T> (int times, FutureOr< T> callback(int attempt), {Duration delay = Duration.zero, Duration backoff(int attempt)?, bool when(Object error)?}) → Future<T> -
Runs
callbackup totimestimes until it succeeds (retry()). -
rfc3986Query(
Map< String, String> parameters) → String -
PHP
http_build_query(..., PHP_QUERY_RFC3986)for flat parameters (LaravelArr::query):rawurlencodekeys and values joined by&. -
rulesToJsonSchema(
Map< String, Object> rules) → Map<String, Object?> -
Converts validation rules (the map given to
request.validateor aFormRequest) into a JSON Schema object (OpenAPI 3.1 dialect), so API documents and generated clients describe exactly what the server validates: -
secureRandomString(
int length) → String -
Cryptographically random token of
lengthURL-safe alphanumeric chars (LaravelStr::random). -
selfArguments(
[List< String> extra = const <String>[]]) → List<String> -
The arguments that start this same program again: for an AOT binary
none beyond
extra; underdart, the VM flags and the script. -
setApplicationLocale(
String locale) → void -
Sets the application locale (
APP_LOCALE, at boot). -
setCurrentLocale(
String locale) → void -
Sets the locale of the current scope (Laravel's
App::setLocale), so concurrent requests never see each other's; outside any scope, the application's. -
singularize(
String word) → String -
Minimal English singularization used for resource parameter names
(
posts→post,categories→category,people→people). -
sizeOf(
Object? value, {bool numeric = false}) → num? -
Size of a value Laravel-style: numbers by value, strings by rune count,
collections by length.
nullfor unsupported types. Uploaded files by size in kilobytes, as Laravel measures them. -
sseStream(
Stream< Object?> events, {Object? endStreamWith = '</stream>', Duration? heartbeat = const Duration(seconds: 15)}) → Stream<List< int> > -
The body of
Response.sse:events(each an SseEvent or a value sent as anupdateevent), a heartbeat comment everyheartbeatwhile idle, thenendStreamWith(Laravel's</stream>,nullfor none). Ends early when the application starts draining; cancelling (the client went away) cancelsevents. -
tap<
T> (T value, void callback(T value)) → T -
Calls
callbackwithvalueand returnsvalue(tap()). -
titleFromClass(
String className) → String -
InvoicePaid→Invoice Paid(Laravel's default notification subject). -
today(
) → DateTime - Today at midnight, local time (Clock aware).
-
trans(
String key, [Map< String, Object?> replace = const {}, String? locale]) → String -
Laravel's
__()andtrans()(a leading underscore makes a Dart name private, so there is no__): the line forkeyin the current locale withreplaceapplied, orkeyitself. -
transChoice(
String key, num count, [Map< String, Object?> replace = const {}, String? locale]) → String -
Laravel's
trans_choice(): the plural form ofkeyforcount. -
translationLine(
String key, {String? locale, bool fallback = true}) → String? -
TranslationLines.line of the active application;
nulloutside one. -
urlWindow(
int current, int last, [int onEachSide = 3]) → List< int?> -
Laravel's
UrlWindow: all pages when there are fewer thanonEachSide * 2 + 8, otherwise the first/last two pages and a slider aroundcurrent.nullstands for a...separator. -
value<
T> (T callback()) → T -
Runs
callbackand returns its result (value()), handy for expressions that need statements. -
walChecksum(
Uint8List bytes, int start, int end, bool bigEndian, int s1, int s2) → (int, int) -
SQLite's WAL checksum over
bytes[start..end)(a multiple of 8), continuing from (s1,s2): for each pair of 32-bit words x0, x1,s1 += x0 + s2; s2 += x1 + s1, modulo 2^32. -
watchSupervisorParent(
Map< String, String> environment, Future<void> onParentGone()) → void -
In a child of ProcessSupervisor (
DARAVEL_PROCESS_WATCH_PARENT=stdin), callsonParentGoneonce the parent's end of stdin closes: the parent stopped, crashed or was killed. Does nothing in any other process.
Typedefs
-
AccessorFn<
T extends Model> = Object? Function(T model) -
Computed attribute:
accessors: {'full_name': (u) => '${u.first} ${u.last}'}. -
AfterCommitHook
= Future<
void> Function(FutureOr<void> ()) -
Defers work until the active transaction commits
(
DatabaseManager.afterCommit). - ApplicationFactory = Application Function()
- Creates an unbooted Application. Must be a top-level function (or a closure capturing nothing) so it can be sent to worker isolates.
- BroadcastScaling = ({BroadcastRelay relay, ChannelState state})
- The channel state and relay of a scaling driver.
-
ChannelAuthorizer
= FutureOr<
Object?> Function(Authenticatable user, Map<String, String> parameters) -
Decides whether
usermay join a channel matched by a pattern;parametersare its{placeholders}. Returnfalse(ornull) to refuse,trueto admit to a private channel, or the user's public details (a map) to admit to a presence channel. -
ConfigCheck
= Iterable<
ConfigIssue> Function(Env env, ConfigRepository config) - A reusable configuration check.
- DatabaseDriverFactory = DatabaseDriver Function(String name, ConnectionConfig connection)
- Manages named connections, Zone-aware transactions with savepoints and raw SQL binding expansion (BLUEPRINT_V2 §5.6, ADR-005).
-
EnvDecrypter
= Future<
String> Function(String contents, String key) -
Decrypts the contents of an encrypted environment file with
key(EnvironmentEncrypter.decryptin the application). -
EventListener<
E extends Object> = FutureOr< void> Function(E event) -
Handles an event of type
E. -
ExceptionRenderer<
T extends Object> = FutureOr< Response?> Function(T exception, Request request) -
Renders an exception of type
Tinto a Response, or returnsnullto fall through to the next renderer. It may be asynchronous: write an audit row, read a translation, encrypt the body. -
ExceptionReporter<
T extends Object> = FutureOr< void> Function(T exception, StackTrace stackTrace, Request request) -
Reports (logs, forwards) an exception of type
T. -
Factory<
T extends Object> = T Function(Container container) -
Builds an instance of
Tusing the Container. -
FactoryDefinition
= Map<
String, Object?> Function(Faker faker) -
Produces default attributes for a model (
definition()in Laravel). -
FactoryState
= Map<
String, Object?> Function(Faker faker) -
A state transformation (
state()): receives the faker, returns overrides. -
FeatureResolver
= FutureOr<
Object?> Function(Object? scope) -
Resolves a feature's value for a scope (
nullfor "no scope").falsemeans inactive; any other value (true, a variant name) is active. -
GateAfterHook
= FutureOr<
Object?> Function(Authenticatable? user, String ability, AuthResponse result, List<Object?> args) -
afterhook: may override the result by returning non-null. -
GateBeforeHook
= FutureOr<
Object?> Function(Authenticatable? user, String ability, List<Object?> args) -
beforehook: a non-null result short-circuits the check. -
GateCallback
= FutureOr<
Object?> Function(Authenticatable? user, List<Object?> args) -
Ability callback: returns
bool, AuthResponse ornull(= no opinion inbefore/afterhooks, deny in abilities). -
GlobalScopeFn<
T extends Model> = void Function(ModelQuery< T> query) -
Global scope applied to every query unless
withoutGlobalScopes(). -
Handler
= FutureOr<
Object?> Function(Request request) -
A route handler. May return a
Response, aResponsable, a JSON-able value (Map,List,num,bool,JsonSerializable), aString(text) ornull(empty 200). - InputTransformer = Object? Function(String key, Object? value)
-
Rewrites an input value; used by
TrimStringsandConvertEmptyStringsToNullstyle middleware. -
JobNext
= Future<
void> Function() - Continues the job middleware chain.
-
LimitResolver
= FutureOr<
Object?> Function(Request request) -
Resolves the limit(s) for a request: a Limit, a
List<Limit>ornull(no limit). -
MatchPredicate<
T extends Object> = bool Function(T value, Map< String, String> params) -
Decides whether
valueaccepts the capturedparams(route constraints). -
MiddlewareFactory
= Middleware Function(List<
String> params) -
Builds a middleware from alias parameters (
'throttle:60,1'→[60, 1]). -
Models<
T extends Model> = ModelCollection< T> - Convenience alias used by generated code.
-
MorphConstraint
= void Function(ModelQuery<
Model> query, ModelDefinition<Model> type) -
Constraint for
whereHasMorph, called once per targettype. -
MutatorFn<
T extends Model> = Object? Function(T model, Object? value) -
Attribute mutator:
mutators: {'email': (u, v) => '$v'.toLowerCase()}. -
Next
= Future<
Response> Function(Request request) -
Continues the pipeline with
requestand yields the downstream response. - QueryConstraint = Object? Function(QueryBuilder query)
-
A condition added to the query of UniqueRule or ExistsRule:
Rules.unique('users').where((q) => q.where('active', true)). -
QueuePusher
= Future<
Object?> Function(Job job) -
Pushes a job onto the queue (
QueueManager.push). - Raw = RawExpression
- Raw helper re-exported for relation subqueries.
-
RelationConstraint
= void Function(ModelQuery<
Model> query) -
Constraint applied to a relation query (
with({'posts': (q) => ...})). -
RelationFactory
= Relation<
Model> Function() - Lazily builds a relation (lazy so definitions may reference each other).
-
RouteBinder
= FutureOr<
Object?> Function(String value, Request request) -
Resolves a route parameter value into a bound object (
null→ 404 when Router.bind was registered withorFail). -
ScheduleCommandRunner
= Future<
int> Function(String command, List<String> args) - Runs a console command by name (wired by the CLI runner).
-
ScopeFn<
T extends Model> = void Function(ModelQuery< T> query, List<Object?> args) -
Local scope:
scopes: {'published': (q, args) => q.where('published', true)}. -
ThrottleResponseBuilder
= Response Function(Request request, Map<
String, String> headers) -
Builds the 429 response for a limit (
Limit.response). -
WebSocketHandler
= FutureOr<
void> Function(WebSocket socket, Request request) -
Handles an upgraded connection (
router.ws).
Exceptions / Errors
- AuthenticationException
- 401 — no authenticated user for the attempted guards.
- AuthorizationException
-
403 — the user may not perform the ability (
Gate.authorize). - BadRequestHttpException
- A 400 Bad Request.
- BindingResolutionException
- Thrown when Container.make cannot find a binding for the requested type.
- CircularDependencyException
- Thrown when two factories depend on each other, directly or indirectly.
- ConfigException
- Raised for missing configuration keys/sections or type mismatches.
- ConnectionException
- The server could not be reached, or did not answer in time.
- CoordinatorException
- Raised when the coordinator rejects or cannot process a request.
- CoordinatorTimeoutException
- Raised when the coordinator does not answer within the timeout.
- CorruptPayloadException
-
A reserved job handed to the worker.
A claimed row whose payload is Daravel-shaped but does not decode. The
driver has removed the row; raw is what it held, for
failed_jobs. - CronFormatException
- Raised for malformed cron expressions.
- DaravelException
- Base class for every exception raised by the framework itself.
- DaravelQueryException
- Base for query-layer exceptions.
- DecryptException
- Raised when a payload is malformed, was tampered with or was encrypted with an unknown key.
- EncryptException
- Raised for invalid keys.
- EnvException
-
Raised for malformed
.envfiles or missing/invalid environment values. - ForbiddenHttpException
- A 403: the user may not do this.
- HashException
- Raised for driver mismatches and malformed hashes.
- HttpException
- An exception that maps directly to an HTTP response (ADR-009).
- JwtException
- Raised for malformed, expired, not-yet-valid or badly signed tokens.
- LockTimeoutException
- Raised by Lock.block when the lock cannot be obtained in time.
- MassAssignmentException
- Thrown when mass assigning a guarded attribute while Model.preventSilentlyDiscardingAttributes is enabled.
- MethodNotAllowedHttpException
- A 405: the route exists, but not for this method.
- ModelNotFoundException
-
Thrown by
findOrFail()and friends. - MultipleRecordsFoundException
-
Thrown by
sole()when more than one row matches. - NotFoundHttpException
- A 404 Not Found.
- PayloadTooLargeHttpException
- A 413: the body is larger than allowed.
- QueryException
-
A query the database refused (Laravel's
QueryException): the driver's error (previous) with the connection and the SQL. - RecordNotFound
- Base for "not found" model errors (kept separate from HTTP so it can be mapped by the exception handler).
- RecordNotFoundException
-
Thrown by
firstOrFail()/sole(). - ReplicationException
- Thrown when a database cannot be replicated or restored.
- RequestException
- A 4xx or 5xx response, thrown by ClientResponse.throwIfFailed.
- ScopeDisposeException
- Raised by Scope.dispose when one or more dispose callbacks failed.
- ScopeRequiredException
-
Thrown when a
scopedbinding is resolved outside of an active Scope. - A 503: the application cannot serve the request now.
- SmtpException
- An SMTP reply the transport did not expect.
- StorageException
- Raised for paths escaping the disk root or missing files.
- StrayRequestException
- A request that matched no stub while stray requests are prevented.
- ThrottleRequestsException
-
429 with
Retry-AfterandX-RateLimit-*headers. - TransactionTimeoutException
-
A transaction (or savepoint) still running when its
timeoutpassed (DatabaseManager.transaction): it was rolled back, and later queries of its body throw this too. - A 401: the request is not authenticated.
- UniqueConstraintViolationException
-
A row a unique index or primary key refused (Laravel's
UniqueConstraintViolationException): two requests registering the same email at once, say. As in Laravel it is a server error unless caught;createOrFirstandfirstOrCreatecatch it for you. - UnknownJobException
- Thrown when a payload names a job that is not registered.
- ValidationException
-
Thrown when validation fails; rendered as a Laravel-compatible
422:{"message": "...", "errors": {"field": ["..."]}}.