Download the PHP package justustheis/registry without Composer
On this page you can find all versions of the php package justustheis/registry. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download justustheis/registry
More information about justustheis/registry
Files in justustheis/registry
Package registry
Short Description Flexible key–value store for Laravel with model scoping, encryption, caching, and runtime config overrides.
License MIT
Informations about the package registry
Laravel Registry
Laravel Registry is a powerful and flexible key–value store designed for managing application settings in Laravel. It offers a unified API with support for per-model scoping, optional encryption, caching, and a modern web interface. The package also supports overriding Laravel configuration values at runtime using registry entries — enabling dynamic, environment-specific configuration.

✨ Features
- 🔑 Flexible Key-Value Storage - Store any serializable data with dot-notation keys
- 🎯 Model Scoping - Scope registry entries to specific Eloquent models
- 🔐 Encryption Support - Encrypt sensitive values with Laravel's encryption
- ⚡ Intelligent Caching - Built-in Redis/Memcached caching with configurable TTL
- 🎨 Modern Web Interface - Vue 3 + Inertia.js frontend with Windows Registry Editor-like UI
- 🔧 Runtime Config Overrides - Override Laravel config values dynamically
- 📊 Type Casting - Automatic type detection and casting (string, int, float, bool, array, object)
- 🌳 Hierarchical Keys - Organize settings in tree structures with parent/child relationships
- 🔍 Fluent API - Chainable, expressive syntax for all operations
- 🧪 Comprehensive Testing - Full test coverage with PHPUnit
- 🚀 Performance Optimized - Efficient queries with proper indexing and caching
📋 Requirements
- PHP 8.1+
- Laravel 12+
- Inertia.js 2.0+ (for frontend interface)
📦 Installation
1. Install via Composer
2. Publish Configuration
3. Run Migrations
4. Configure Authorization (Required)
Add the authorization gate to your AppServiceProvider:
🔐 Frontend Access Control
Important: Before accessing the registry frontend, you must configure authorization using Laravel Gates. By default, the registry requires users to pass the access-registry gate to access the web interface.
Setting Up Authorization
Add this to your AppServiceProvider boot method:
You can customize the gate name in the configuration:
To disable authorization entirely (not recommended for production):
⚙️ Configuration
The configuration file config/registry.php provides extensive customization options:
Cache Configuration
User Model Configuration
Model Mappings for Route Binding
Type Casting Rules
Runtime Config Overrides
🚀 Basic Usage
Using the Facade
Using Helper Functions
Working with Different Data Types
🎯 Model Scoping
Use the HasRegistry trait to scope registry entries to specific models:
Adding the Trait
Scoped Operations
Relationship Access
🎨 Frontend Web Interface
The package includes a complete Vue 3 + Inertia.js frontend that provides a Windows Registry Editor-like interface.
Features
- 🌳 Two-pane layout - Tree view on left, details on right
- 🔍 Real-time search - Filter keys as you type
- ✏️ In-place editing - Create, update, delete entries via modals
- 🔐 Encryption toggle - Visual indication and control of encrypted entries
- 📱 Responsive design - Works on desktop and mobile
- 🎨 Tailwind CSS - Modern, clean interface
Setup
1. Install Frontend Dependencies
2. Publish Assets (Optional)
3. Configure Inertia.js
Ensure you have an Inertia.js app template. The package includes one you can copy:
4. Build Assets
Accessing the Interface
Visit /registry in your browser (after setting up the authorization gate).
🔐 Encryption
Encrypt sensitive data automatically:
🌳 Hierarchical Keys
Organize settings in tree structures:
⚡ Advanced Features
Caching
Registry entries are automatically cached for performance:
Runtime Configuration Overrides
Override Laravel config values dynamically:
Cascade Deletion
Automatically delete registry entries when parent models are deleted:
Type Validation and Casting
📚 API Reference
Core Methods
Registry::key(string $key): self
Set the registry key for the operation.
Registry::value(mixed $value): self
Set the value to be stored.
Registry::default(mixed $default): self
Set the default value if key doesn't exist.
Registry::for(Model $model): self
Scope the registry to a specific model.
Registry::encrypt(): self
Mark the value for encryption.
Registry::type(string $type): self
Explicitly set the value type.
CRUD Operations
get(?string $key = null, mixed $default = null): mixed
Retrieve a value from the registry.
set(?string $key = null, mixed $value = null): mixed
Store a value in the registry.
delete(?string $key = null): bool
Delete a key from the registry.
exists(?string $key = null): bool
Check if a key exists in the registry.
rename(string $newKey, bool $renameChildren = true): self
Rename a registry key and optionally its children.
Relationship Methods
parent(): ?self
Get the parent registry instance.
children(): Collection
Get all direct child registry instances.
💡 Usage Examples
User Preferences System
Application Configuration
Feature Flags
🧪 Testing
Run the test suite:
🔧 Artisan Commands
The package doesn't include specific Artisan commands, but you can interact with it using Tinker:
📄 License
This package is open-sourced software licensed under the MIT license.
🤝 Contributing
Please see CONTRIBUTING.md for details.
🐛 Issues
If you discover any security vulnerabilities or bugs, please report them via GitHub Issues.
📞 Support
For support, please create an issue on GitHub or contact the maintainer at [email protected].
All versions of registry with dependencies
illuminate/database Version ^12|^13
inertiajs/inertia-laravel Version ^2.0