- Is YAETL a Laravel package or a standalone PHP library?
- YAETL is a framework-agnostic PHP ETL library, not a Laravel package. It ships no service provider, config publish, facades, or framework events, so you integrate it by wrapping extractors, transformers, and loaders in your own Artisan commands and queued jobs. That keeps pipeline logic portable but means you own the Laravel glue.
- How do I install YAETL in a Laravel application?
- Install it with composer require fab2s/yaetl. Then implement small extractor, transformer, and loader classes and compose them into a fluent Extract, Transform, Load pipeline invoked from a command or job. There is no config file to publish and no service provider to register.
- Which Laravel and PHP versions does YAETL support?
- YAETL has no Laravel version constraints and is PSR-4 Composer-native, so it should work with Laravel 9, 10, 11 and any modern PHP runtime in principle. Verify it against the oldest PHP version in your support matrix and check its dependency constraints, such as fab2s/ens, for collisions with your upgrade path. Specific supported PHP versions are not guaranteed by the provided context.
- Can I use YAETL to import CSV or API data into a Laravel database?
- Yes, that is a core use case. You write an extractor that streams rows from CSV, a database, or an API, transformers that clean or map them, and a loader that writes through your Laravel database connection. Keep pipelines linear and row-oriented, and handle idempotent upserts yourself because the loader contract's upsert behavior must be verified.
- How does YAETL handle batching and memory usage for large datasets?
- YAETL is built around generator-based streaming and batching, with a design goal of constant memory for linear pipelines. Joins, in-memory enrichment, global sorting, or aggregation can silently break that promise, so measure memory at your real input sizes. The recommended approach is a one-week spike against production-shaped data before committing.
- Does YAETL support checkpointing, retries, or resuming a failed pipeline?
- YAETL provides no built-in checkpointing, resume, retries, or dead-letter handling. Generator-based streaming means an exception mid-stream aborts the run, so you must design idempotency keys, batch checkpoints, and recovery around it. Plan to build this glue explicitly rather than assuming the library provides it.
- How do I run a YAETL pipeline inside an Artisan command or queued job?
- There is no Laravel integration shipped, so you create a thin Artisan command or queued job that builds and runs the pipeline. Inject Laravel's DB connection or PDO into your loader, and add logging and metrics adapters yourself. Keep pipeline classes in a dedicated module such as app/DataPipelines to preserve portability.
- Does YAETL support parallel or concurrent processing?
- Any concurrency in YAETL is process-based PHP parallelism, not true in-process threads. Validate how it behaves under PHP-FPM and queue workers rather than assuming parallel execution works. For per-row external API calls at volume, the library is a weak fit.
- Is YAETL actively maintained and safe for production use?
- Adoption signal is weak, around 65 stars, with a small community and single-maintainer-style support risk. Check release history, issue responsiveness, and whether the latest release reflects sustained maintenance or a one-off. There is no commercial support or SLA, so budget for reading the source and owning edge cases.
- What are alternatives to YAETL for ETL in Laravel?
- The provided context does not name specific alternatives. Options include writing custom chunked Laravel jobs or adopting a dedicated ETL tool, but evaluate them against YAETL's streaming, batching, and fluent API. Run a spike and compare memory, throughput, and maintenance risk before switching.