Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Registry Laravel Package

joomla/registry

Joomla Registry provides an indexed key-value data store with getters, setters, dot-path access to nested values, array access, and import/export of data across formats like JSON, XML, INI, and PHP.

View on GitHub
Deep Wiki
Context7

Joomla Framework Registry Package

Frequently asked questions about Registry
Is joomla/registry compatible with Laravel?
Yes, in the sense that it is a framework-agnostic PHP package that installs cleanly via Composer into any Laravel application. It has no Laravel-specific integration: no service provider, facade, config file, migrations, or contract bindings. You can instantiate Joomla\Registry\Registry directly or bind it as a singleton in your own service provider if you want container injection. The decision is architectural rather than technical, because its features overlap heavily with Laravel's native config repository and Arr helpers.
How do I install joomla/registry in a Laravel application?
Run composer require joomla/registry and pin the 3.x line, for example ^3.0.3, if you need the PHP 8.5 compatibility fix. There is no package discovery step, no published configuration, and no database migrations to run. After installation you can use the Registry class immediately or wrap it behind your own adapter or interface.
Does joomla/registry include a Laravel service provider or facade?
No. The package is not Laravel-aware and ships no service provider, facade, configuration merge, or contract binding. If you want container-managed instances, you must register your own binding, typically a singleton or an interface mapped to a factory that returns a configured Registry. Keeping that glue in your application code also makes it easier to replace the package later.
When should I use joomla/registry instead of Laravel's config() or Arr::get()?
Use it when you need to share data structures with a Joomla-derived codebase, consume a Joomla-ecosystem package that expects the Registry API, or port logic already written against Registry methods such as get, set, merge, and extract. For new Laravel-only code, config(), Arr::get, Arr::set, and collections already cover nested path access and array manipulation. Adopting Registry purely for convenience adds a dependency without buying capability you do not already have.
How does dot-path access work in Joomla Registry?
Registry supports nested access using dot notation, so $registry->get('parent.child') reads a nested value and $registry->set('parent.child', $value) writes one. The same path style works with remove(), allowing you to delete nested keys without manually traversing arrays. Getters also accept a default value as the second argument when the key does not exist.
What formats can joomla/registry import and export?
Registry can import and export data across JSON, XML, INI, and PHP formats. You can load from a string with loadString(), from an array or object with loadArray() and loadObject(), or from a file with loadFile(). Export is handled through the corresponding string and file output methods, making it useful for reading and writing configuration-style data.
Does joomla/registry 3.0.3 support PHP 8.5?
Version 3.0.3 fixes a PHP 8.5 deprecation where ArrayIterator::__construct() no longer accepts an object as a backing array. That fix is a backport from the 4.x development line and introduces no API changes or breaking behaviour. If you deploy on PHP 8.5 anywhere, 3.0.3 is the minimum acceptable pin; on PHP 8.2 to 8.4 the patch is functionally a no-op but still recommended for supported-patch hygiene.
Is joomla/registry 3.x still actively maintained?
The 3.x line is receiving backports rather than primary development, which signals a maintenance posture and an eventual move to 4.x. Joomla Framework packages have a small maintainer pool and an irregular release cadence, and PHP 8.5 readiness arrived via backport rather than proactive development. Treat 3.x as a supported patch line for now, but track the 4.x changelog and set a trigger date or event for migration planning.
How should I test code that uses joomla/registry in a Laravel test suite?
Registry is a plain PHP class with no framework dependencies, so you can instantiate it directly in unit tests and assert against get, set, merge, and export results. If you inject it through the container, bind an interface or thin adapter and swap in a test double or preloaded Registry instance. Isolating usage behind an adapter also prevents the concrete class from leaking across your domain and limits the impact of a future major-version upgrade.
What are the alternatives to joomla/registry in Laravel?
Laravel's native config repository, Arr::get and Arr::set, and Illuminate\Support\Collection cover most nested key-value and array access needs without an extra dependency. For strongly typed configuration, DTOs or value objects are often clearer than a generic registry. Choose joomla/registry mainly when interoperability with Joomla-derived code or an existing Registry-based API makes rewriting more expensive than adopting the package.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console