nvl / core
Native Laravel support contracts, configuration, model identity, and ownership ports
Requires
- php: ^8.4
- composer-runtime-api: ^2.2
- ext-ctype: *
- ext-mbstring: *
- laravel/framework: ^13.30
- symfony/http-foundation: ^7.4.23 || ^8.1.11
Requires (Dev)
- ext-pdo: *
- larastan/larastan: ^3.10
- laravel/pint: ^1.27
- mockery/mockery: ^1.6
- nvl/activity: ^7.0
- nvl/auth: ^7.0
- nvl/billing: ^7.0
- nvl/comments: ^7.0
- nvl/content: ^7.0
- nvl/csv: ^7.0
- nvl/filterable: ^7.0
- nvl/forms: ^7.0
- nvl/mail-notifications: ^7.0
- nvl/media: ^7.0
- nvl/metafields: ^7.0
- nvl/ownership: ^7.0
- nvl/pages: ^7.0
- nvl/payments: ^7.0
- nvl/primitives: ^7.0
- nvl/seo: ^7.0
- nvl/settings: ^7.0
- nvl/tasks: ^7.0
- nvl/taxonomy: ^7.0
- nvl/templates: ^7.0
- nvl/translatable: ^7.0
- nvl/translations: ^7.0
- orchestra/testbench: ^11.0
- pestphp/pest: ^4.0
- pestphp/pest-plugin-laravel: ^4.0
- phpstan/phpstan: ^2.2.5
- phpunit/php-code-coverage: ^12.0
- phpunit/phpunit: ^12.0
- psr/log: ^3.0
- symfony/console: ^7.4 || ^8.0
- symfony/filesystem: ^7.4.23 || ^8.1.11
- symfony/process: ^7.0 || ^8.0
Suggests
None
Provides
None
Conflicts
- guzzlehttp/guzzle: <7.15.2 || >=8.0.0 <8.0.1
- guzzlehttp/psr7: <2.12.3
- league/commonmark: <2.10.2
- league/flysystem: <3.35.3
- nvl/support: *
- paragonie/random_compat: <2.0
- symfony/http-kernel: <7.4.23 || >=8.0.0 <8.1.11
- symfony/mailer: <7.4.12 || >=8.0.0 <8.0.12
- symfony/mime: <7.4.22 || >=8.0.0 <8.1.10
- symfony/polyfill-intl-idn: <1.38.1
- symfony/routing: <7.4.23 || >=8.0.0 <8.1.11
- symfony/translation: <6.4.8 || >=7.0.0 <7.0.8
Replaces
None
README
Native Laravel support contracts, configuration, model identity, locale services and optional Ownership ports. Requires PHP 8.4 and Laravel 13 (minimum 13.30).
Core auto-discovers SupportServiceProvider and the deferred LocaleServiceProvider. It supplies safe unowned defaults without activating domain packages, routes, Data, TypeScript, consumer-policy analysis or the retired Tenancy bridge. Consumers own inputs, Actions, transport adapters, resources and frontend types.
Register application owner models in nvl-core.owners. Identity registration does not authorize access. Supply explicit principals, SystemActor::Background or PublicActor::Anonymous to the owning package's native service; background and public execution remain distinct and subject to host policy.
SystemActor implements Laravel's Authorizable ability contract for compatible global Gate hooks, including optional permission integrations. Its can method evaluates the Gate for that explicit enum; it supplies no login identity or default grant and does not implement Authenticatable. Host hooks used by native background operations must accept the actual actor type rather than assume an application User model.
Native Ownership declarations, model guards, queue envelopes and committed-event dispatch remain available. Owned or previously adopted storage fails closed when its enforcing runtime is absent. Install nvl/ownership for enabled isolation and recovery. Historical legacy source and tests are excluded fixtures under support/tests/Historical, never production aliases or data conversion.
Core preserves host bindings and Laravel bus/batch behavior. DomainEventDispatcher publishes on the actual source connection's outer commit; rollback discards publication. Local callbacks are not a durable outbox. See event delivery.
Configuration defaults require no publication. The supported tags are nvl-core-config, nvl-core-translations and nvl-core-skills. Domain diagnostics and migrations remain with their owning packages.
Canonical configuration uses nvl-core and each capability's nvl-<package> root. Legacy roots, environment fallbacks, option aliases and global-name compatibility switches are unavailable. Host registrations remain authoritative.
For optional console setup and combined diagnostics, explicitly register Nvl\Support\Providers\DoctorServiceProvider in bootstrap/providers.php. It supplies nvl:install (including --dry-run) and nvl:doctor; Core's auto-discovered providers remain passive. See the installation guide and service and model extension contracts.