- How do I install and use this package in my Laravel project?
- Install via Composer with `composer require apie/service-provider-generator`. Initialize the generator by requiring the `ServiceProviderGenerator` class, then pass your Symfony `services.yaml` file path to generate a Laravel-compatible provider. Save the output to a `.php` file or use `eval()` (not recommended).
- Does this package support Laravel 10+ features like improved dependency injection?
- Yes, the package is designed for Laravel 10+ and leverages its modern DI improvements. However, some Symfony-specific features (e.g., decorators) may require manual overrides due to Laravel’s differing container behavior. Test thoroughly in your environment.
- Can I use this to migrate an entire Symfony application to Laravel?
- This package focuses on service container migration, not full framework conversion. It automates service binding, but you’ll still need to manually handle routes, controllers, and other Symfony-specific components. Use it alongside Laravel’s native tools for a hybrid approach.
- What happens if my services.yaml contains Symfony-specific features like `autowire: true` or `arguments`?
- The generator translates `autowire: true` to Laravel’s autowiring, but complex Symfony features (e.g., `argument_on_instantiate`, factories) may not map perfectly. Review generated code for edge cases, especially if using custom container extensions.
- Will this work with Laravel’s `bindIf`, `when`, or context binding?
- No, the package doesn’t support Laravel-specific binding methods like `bindIf` or `when`. Generated providers use basic `bind()` or `singleton()`, so you’ll need to extend the output manually for advanced use cases.
- How does this handle circular dependencies in services.yaml?
- Symfony’s circular dependencies may not translate cleanly to Laravel’s container. The generator outputs standard `bind()` calls, but you might need to refactor into `AbstractLazyServiceProvider` or manually handle lazy loading for complex cases.
- Can I preview generated code before writing it to a file?
- The package outputs raw PHP source as a string. Use `echo $generator->generateClass(...)` to inspect the code before saving it to a file. There’s no built-in dry-run mode, but you can log the output for review.
- What if my Laravel project already defines services in `config/services.php` or `AppServiceProvider`?
- Generated providers will overwrite or duplicate bindings if service IDs clash. Merge configurations manually or use unique namespaces in your `services.yaml` to avoid conflicts. Test thoroughly after generation.
- Is this package actively maintained? Will it support Laravel 11?
- The last release was in 2025, but there’s no visible GitHub activity. Since it relies on Symfony’s DI component (stable), core functionality may persist, but Laravel 11+ features (e.g., container improvements) aren’t guaranteed without updates. Monitor the repo for changes.
- Are there alternatives for migrating Symfony services to Laravel?
- For Symfony-to-Laravel migrations, consider manually writing providers or using Laravel’s `bind()` in `AppServiceProvider`. Tools like `symfony/var-dumper` can help inspect service graphs, but no direct competitors exist for automated YAML-to-PHP conversion. Evaluate your project’s complexity before choosing this package.