otobul/epaybg-bundle
An integration bundle for the ePay.bg payment gateway, aimed at PHP applications that need to accept ePay.bg payments. It provides package wiring for merchant configuration and payment processing. Small, low-adoption package; review fit and maintenance before use.
Package context and assumption: the release notes describe a v2.0.0 that (a) moves configuration files to YAML and (b) changes the default currency to EUR. The package itself is not identified in the supplied data, so the assessment below is scoped to what these two changes imply for a Laravel/PHP package and should be re-validated once the package's domain (payments, pricing, accounting, cart, FX, invoicing) is confirmed.
Architecture fit
config/, resolved via the config() repository, populated by mergeConfigFrom(), published via vendor:publish, and precompiled by php artisan config:cache. A YAML-based config layer must be loaded by the package's own service provider and either (i) mapped into the Laravel config repository at boot, or (ii) read through a bespoke config object. Option (i) is the only version that preserves config('package.key') ergonomics; option (ii) fragments the config surface and will surprise integrators.symfony/yaml). That is a new transitive dependency and a new failure surface on every boot. It also means config values are no longer statically analyzable, no longer type-safe, and no longer discoverable by IDE tooling or static analysis the way PHP config arrays are.Integration feasibility
.yaml, parse in the provider, config()->set('package', $parsed) before dependents resolve. This is a well-trodden pattern and low technical risk if the package documents it and ships a config:cache-compatible path.config:cache captures the result, fine. If the package bypasses the config repository and reads YAML files at runtime, then config:cache no longer reflects the effective configuration, and production behaviour diverges from local behaviour — a classic and expensive class of incident.Technical risk: High
config/payments.php now generate YAML.Key questions
php artisan config:cache in CI?Stack fit
Migration path
config:cache enabled. This is the acceptance gate. Compare effective config before and after caching.Compatibility
mergeConfigFrom behaviour, provider registration, package discovery), and a bespoke YAML loader is exactly the kind of code that breaks quietly across upgrades.config('package.*') will break if the YAML is not mapped into the repository. Identify those consumers before migrating.Sequencing
Maintenance
php artisan package:validate-config command), and parser version tracking.yes/no being coerced to booleans, on/off, numeric-looking currency codes like 1 — none likely here, but the general class of YAML coercion bugs is real).Support
Scaling
config:cache it disappears; without it, it is a small constant added to every request across every pod. Not a capacity concern, but a reason to insist on caching.Failure modes
config:cache reflects stale or empty values → wrong behaviour in production only. Highest-severity mode; must be explicitly tested.Ramp-up
How can I help you explore Laravel packages today?