- Can I use appventus/taiga-bundle directly in Laravel, or is it only for Symfony?
- This bundle is Symfony-centric, so it won’t work out-of-the-box in Laravel. You’ll need to create a custom Laravel ServiceProvider to register the Taiga SDK as a service and optionally build a Facade for cleaner syntax. The core SDK (Taiga PHP SDK) is PHP-compatible, but the bundle’s Symfony dependencies require abstraction.
- What Laravel versions support this bundle after adaptation?
- The underlying Taiga PHP SDK requires PHP 5.5.9+, but Laravel 5.8+ (PHP 7.2+) is fully compatible. No version conflicts exist, but you’ll need to manually bridge Symfony’s ContainerInterface with Laravel’s container via `bind()` or `extend()` in your ServiceProvider.
- How do I configure the API token in Laravel instead of Symfony’s YAML?
- Replace Symfony’s YAML config (`taiga.api_token`) with Laravel’s `.env` (e.g., `TAIGA_API_TOKEN=your_token`) or a `config/taiga.php` file. Publish the bundle’s config via `php artisan vendor:publish` if you’ve adapted it, then reference it in your ServiceProvider like `config('taiga.api_token')`.
- Is the Taiga PHP SDK still maintained? Will it break if Taiga’s API changes?
- The Taiga PHP SDK is **unmaintained** (last commit: 2016), so API drift is a risk. Validate the SDK against Taiga’s [current API docs](https://taigaio.github.io/taiga-doc/dist/api.html) or fork it to patch incompatibilities. Wrap SDK calls in try-catch blocks for graceful error handling.
- Does this bundle support OAuth2, or only token-based auth?
- The bundle relies on the Taiga PHP SDK, which primarily uses **token-based authentication** (not OAuth2). Check Taiga’s [auth docs](https://taigaio.github.io/taiga-doc/dist/api.html#auth-normal-login) to confirm if token auth meets your needs. If OAuth2 is required, consider a custom implementation or an alternative package.
- How do I cache frequent API calls (e.g., real-time project updates) in Laravel?
- Use Laravel’s `Cache` facade to store responses (e.g., `Cache::remember('taiga_projects', now()->addHours(1), fn() => Taiga::projects()->getList())`). For critical paths, implement a hybrid approach: cache responses but refresh on demand (e.g., via Laravel queues or events).
- Can I map Taiga entities (Projects, UserStories) to Eloquent models?
- No native support exists, but you can manually map Taiga responses to Eloquent models or DTOs. For example, loop through `$projects = Taiga::projects()->getList()` and hydrate `Project::create()` with the data. Use Laravel’s `collect()` for bulk transformations if needed.
- Are there better Laravel alternatives to this Symfony bundle?
- Yes—consider **spatie/laravel-taiga** (if available) or a custom wrapper using the [Taiga PHP SDK directly](https://github.com/Troopers/taiga-php-sdk) with Guzzle. These avoid Symfony dependencies entirely. Evaluate alternatives based on maintenance, Laravel-native features (e.g., Eloquent), and community support.
- How do I test this bundle in Laravel? What edge cases should I cover?
- Write integration tests for critical flows: authentication failures, rate limits, and empty responses. Mock the Taiga SDK’s HTTP client (e.g., with `Mockery` or Laravel’s `Http::fake()`) to test error scenarios. Focus on edge cases like invalid tokens, missing permissions, and API timeouts.
- Will this bundle work with Laravel’s queue system for async Taiga API calls?
- Yes, but you’ll need to dispatch jobs manually. For example, create a `SyncTaigaProjects` job that calls `Taiga::projects()->getList()` and process it via `dispatch(new SyncTaigaProjects())`. Use Laravel’s `queue:work` to handle async execution, with retries for failed jobs.