- What Laravel versions does the Core DAM Bundle support?
- The bundle requires Symfony 7.3+ and PHP 8.3+, which means it’s designed for Laravel 10+ or newer. If you’re using an older Laravel version, you’ll need to upgrade to avoid compatibility issues with dependencies like Doctrine ORM 3+ and Symfony Messenger.
- How do I install and set up the Core DAM Bundle in Laravel?
- Install via Composer with `composer require anzusystems/core-dam-bundle`, then publish the bundle’s assets and configurations using `php artisan anzusystems:dam:install`. Follow the README’s setup steps for Elasticsearch, Doctrine migrations, and Messenger queue configurations.
- Does this bundle support custom asset types beyond images and videos?
- Yes, the bundle is modular and supports custom asset types like podcasts. Use the facade-based architecture (e.g., `AssetFacade`) and extend the `Asset` entity or create new entities for specialized media types. Event-driven workflows (e.g., `AssetMetadataBulkEventDispatcher`) help manage custom logic.
- What happens if Elasticsearch goes down? Can I use a fallback?
- The bundle relies heavily on Elasticsearch for search and indexing, so downtime will impact search functionality. Mitigate this by implementing circuit breakers (e.g., Symfony’s `CircuitBreaker`) and caching search results locally. Monitor Elasticsearch health with tools like Prometheus or Symfony MonitorBundle.
- How does the bundle handle media optimization (e.g., AVIF, WebP)?
- The bundle uses Vips and FFmpeg for server-side optimization, supporting formats like AVIF, WebP, and animated GIFs. Optimization settings (e.g., quality at 90) are configurable. For high-volume processing, queue jobs (e.g., `JobImageCopy`) via Symfony Messenger to avoid blocking requests.
- Can I integrate this bundle with existing legacy DAM systems?
- The bundle supports Pub/Sub notifications (Google PubSub) and external integrations (e.g., JWPlayer, YouTube), making it easier to connect with legacy systems. Use the `Distribution` entity to manage media distribution endpoints and leverage event listeners to sync data between systems.
- What are the database requirements for the Core DAM Bundle?
- The bundle requires Doctrine ORM 3+ and introduces custom entities like `Asset`, `AssetFile`, and `Podcast`. It also supports MongoDB 2.0+ via `anzusystems/common-bundle` if you need a hybrid database setup. Run migrations (`php artisan migrate`) after installation to set up the schema.
- How do I handle bulk operations like metadata updates or asset imports?
- The bundle provides bulk operation support via events like `AssetMetadataBulkEventDispatcher`. For large-scale imports, use job queues (e.g., `JobAuthorCurrentOptimize`) to process tasks asynchronously. Test with sample data to ensure performance meets your needs.
- Are there alternatives to Elasticsearch for search functionality?
- The bundle is tightly coupled with Elasticsearch, so alternatives like Algolia or Meilisearch would require significant refactoring. If Elasticsearch isn’t an option, consider caching search results locally or using a hybrid approach with a secondary search layer.
- How do I deploy the Core DAM Bundle in production with Docker?
- The bundle supports Docker via `DOCKER_COMPOSE_SERVICE_NAME`. Use Docker Compose to orchestrate services like Elasticsearch, Redis (for queues), and the Laravel app. Configure environment variables for Elasticsearch endpoints, queue connections, and media processing paths.