Weave Code
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

Config Laravel Package

symfony/config

Symfony Config component helps you find, load, merge, autofill, and validate configuration from sources like YAML, XML, INI, or databases. Provides structured handling of config values for reusable, consistent application setups.

View on GitHub
Deep Wiki
Context7

Helps you find, load, combine, autofill and validate configuration values of any kind

Frequently asked questions about Config
How can I use Symfony Config in Laravel to load YAML/XML configs alongside PHP arrays?
Symfony Config integrates with Laravel’s existing config system by using its `FileLocator` to load non-PHP configs (YAML/XML/INI) from `config/` or external paths. Merge them with Laravel’s `config()` helper or inject the loaded config into the service container via `ContainerBuilder`. For example, load a `services.yaml` file with `FileLocator` and merge it into Laravel’s config array.
Does Symfony Config support Laravel’s .env variables for dynamic placeholders?
Yes, Symfony Config supports placeholders like `%env(APP_DEBUG)%` for dynamic values, which can bridge Laravel’s `.env` system. Use `PlaceholderResolver` to replace placeholders with environment variables or other sources. This works alongside Laravel’s existing `env()` helper without conflicts.
Can I validate Laravel config files (e.g., `config/app.php`) using Symfony’s schema validation?
Absolutely. Define a schema using Symfony’s `DefinitionBuilder` or `ArrayNode` to enforce rules like required fields, types, or nested structures. Load and validate your Laravel config files during bootstrapping (e.g., in `AppServiceProvider`) by passing them through `ConfigCache` or `FileLocator`. This adds strict validation without replacing Laravel’s loose `config()` system.
What Laravel versions are compatible with symfony/config, and are there breaking changes?
Symfony Config works with Laravel 8.x–11.x (PHP 8.0+). While Symfony v8.x deprecated fluent PHP config, this doesn’t affect Laravel’s array-based config. The package remains stable for loading YAML/XML/INI files and validation. Always check the [Symfony docs](https://symfony.com/doc/current/components/config.html) for minor version updates.
How do I cache Symfony Config loads in Laravel for better performance?
Use Symfony’s `ConfigCache` class to cache compiled configs (e.g., YAML/XML) in `bootstrap/cache/`. Configure it in `config/services.php` to store cached files outside the web root. This avoids repeated parsing during requests, similar to Laravel’s `config_cache` command but for non-PHP configs.
Is there a way to validate config values dynamically (e.g., during runtime) in Laravel?
Yes, inject Symfony’s `Validator` or `DefinitionBuilder` into a service and validate config values on demand. For example, validate a user-provided config array in a controller or command using `DefinitionBuilder::create()->validate($configArray)`. This works alongside Laravel’s `Validator` facade for hybrid validation.
Can Symfony Config replace Laravel’s config caching system entirely?
No, but it can complement it. Symfony Config excels at loading/validating non-PHP configs (YAML/XML), while Laravel’s `config_cache` handles PHP arrays. Use both: cache Laravel’s PHP configs normally, and use Symfony’s `ConfigCache` for external configs. This avoids redundancy while gaining validation.
What’s the best approach to migrate existing Laravel config files to Symfony’s validation?
Start incrementally: Add validation to critical configs (e.g., `config/database.php`) using `DefinitionBuilder` during bootstrapping. Test thoroughly, then expand to other files. Use Laravel’s `config()` helper alongside Symfony’s validation to avoid breaking changes. Tools like `php artisan config:clear` can help reset cached configs during testing.
Are there alternatives to Symfony Config for Laravel that offer similar validation?
For strict validation, consider `spatie/laravel-config-array` (simpler) or `vlucas/phpdotenv` (for `.env` only). However, Symfony Config is the most feature-rich, supporting YAML/XML/INI, placeholders, and DI integration. If you only need validation, Laravel’s `Validator` facade or `laravel-shift/validation-rules` might suffice for basic cases.
How do I handle multi-environment configs (e.g., dev/staging/prod) with Symfony Config in Laravel?
Use Symfony’s `PlaceholderResolver` with environment-specific placeholders (e.g., `%env(APP_ENV)%`) or load separate config files per environment (e.g., `config/services.${env}.yaml`). Combine them with Laravel’s `config()` helper or merge them in a service provider. This mirrors Laravel’s `.env` approach but extends it to structured configs.
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.
codraw/framework-extra-bundle
codraw/messenger
codraw/security
codraw/mailer
codraw/contracts
codraw/profiling
codraw/dependency-injection
codraw/tester
codraw/core
nexmo/api-specification
capell-app/block-library
axium/identity
cetria/laravel-dummy-models
cetria/reflection-helper
agropredict/sso-auth-bundle
evolvestudio/spam-protection
datacore/hub-sdk
develia/commons
cuci/prototurk-sdk
cuci/prototurk-sdk-symfony