- Is 2lenet/config-bundle a Laravel package or a Symfony bundle?
- It is a Symfony bundle, published under the Lle\ConfigBundle namespace, not a Laravel package. It depends on Symfony's DI container, Doctrine ORM, Symfony routing, Twig, and resolve_target_entities. Laravel has no Symfony kernel to register it into and no direct equivalent for that Doctrine mapping. Treat any Laravel integration as a reimplementation of the pattern rather than package adoption.
- How do I install 2lenet/config-bundle if it is not on Packagist?
- The README says the bundle is not yet on Packagist and instructs you to add a VCS repository entry to composer.json before running composer require 2lenet/config-bundle. Use the standard repositories array with type vcs and the GitHub URL; the README snippet is malformed because it omits the repositories wrapper. Also confirm the branch or tag you want, since there is no Packagist metadata to resolve a stable release. For production, consider vendoring the code into your own namespace instead of depending on a live VCS URL.
- Can I use 2lenet/config-bundle in a Laravel application?
- Not without pulling Symfony DI, Doctrine, and other Symfony components into your Laravel app, which is a large architectural commitment for a settings table. The bundle relies on a Symfony kernel, Doctrine resolve_target_entities, and Twig helpers that have no direct Laravel analogue. The realistic path is to port the pattern: a settings table, a cached accessor service, a warmup command, and a Blade helper. That reimplementation is roughly two to four engineer-days for a basic typed settings system.
- How do I create the Config entity and repository required by ConfigBundle?
- Create an App\Entity\Config class that implements Lle\ConfigBundle\Contracts\ConfigInterface and uses the provided ConfigTrait, with a Doctrine entity mapping and a repositoryClass pointing at your repository. Your repository should extend Lle\ConfigBundle\Repository\AbstractConfigRepository and accept Doctrine's ManagerRegistry plus the bundle's CacheManager in its constructor. You then map the interface to your entity through Doctrine's resolve_target_entities configuration. The bundle deliberately ships only the trait and abstract repository so you can customize the entity.
- Which typed getters does the bundle provide for reading configuration values?
- The README documents getBool, getString, getText, and getInt, and release notes imply float and password types as well. The documented getInt signature includes a string default while returning int, which is type-inconsistent and worth checking in the actual code. Because the documentation lags the release notes, inspect the trait and CacheManager for the full set of supported types before relying on them. Password-type values should not be treated as encrypted unless you verify that yourself.
- How does the lle:config:warmup command work and should it run in deployment?
- The bundle ships a lle:config:warmup command intended to initialize new configuration rows and seed settings before the app serves traffic. In a Symfony deployment you would wire it into your release or cache-warmup step after migrations. In Laravel you would mirror this with an artisan settings:warmup command that runs in the deploy pipeline. Confirm whether the command is idempotent and whether it writes through the same cache invalidation path as normal set operations.
- Does ConfigBundle support multi-tenancy without leaking cached settings between tenants?
- The README's Establishment example implies per-tenant configuration rows, but it does not establish that CacheManager keys include a tenant identifier. If cache keys are only group and label, tenant A's cached value can be served to tenant B, which is the highest-severity unknown in this package. Before adopting it, inspect CacheManager and every set method for tenant-aware keys and explicit invalidation. For Laravel, add a nullable tenant_id, a unique index on group, label, and tenant_id, and tenant-scoped cache tags.
- Does the bundle provide audit trails, RBAC, or encryption for password-type settings?
- No, the README does not support claims of audit trails or versioning, and there is no documented RBAC or encryption layer for password-type values. Prior positioning that mentioned audit trails and versioning is not backed by the package documentation. If you need change history, role-based editing, or encrypted secrets, build those around the settings table rather than assuming the bundle provides them. Treat password-type settings as plain stored values until you verify otherwise.
- Is 2lenet/config-bundle actively maintained and safe for production?
- The adoption signal is weak: one star, zero dependents, no Packagist release, and no external contributors beyond the originating team. The 2lenet organization name and Lle PHP namespace do not match, and the README has documentation drift and a malformed Composer snippet. The stated last release date is in the future, so treat the metadata as unreliable. For production, vendor the code into a local namespace or fork it, and pin a specific commit.
- What should Laravel teams use instead of this Symfony ConfigBundle?
- Use Laravel's own config, cache, Eloquent, and Blade stack: a settings table with group, label, type, value, nullable tenant_id, and timestamps; a SettingsService backed by Cache::rememberForever; an observer or model event that busts the cache tag on write; an artisan settings:warmup command; and a Blade helper. This preserves the DB-backed, admin-editable, typed, and warmup-seeded benefits without adding Symfony or Doctrine dependencies. If you want a package, evaluate Laravel-specific settings packages rather than a Symfony bundle.