ev/ev-powerpoint-bundle
EV PowerPoint Bundle integrates PowerPoint (PPTX) generation into Symfony applications, providing services and configuration to create, style, and export presentations programmatically using PHP. Streamline report and slide deck generation with a bundle-friendly setup.
Verdict up front: Do not adopt. ev/ev-powerpoint-bundle is a Symfony2 bundle wrapper around PHPPowerPoint — a library abandoned circa 2012 — and is not a Laravel package in any meaningful sense. Score 0, zero stars, zero dependents, and no ecosystem activity make this a non-starter for production use. The evaluation below documents why, and what to do instead.
Architecture fit
EVPowerPointBundle::class, ships a DependencyInjection/EVPowerPointExtension, and expects Symfony 2.x ContainerBuilder, Bundle base classes, and Resources/config/services.yml conventions. Laravel has no bundle system and no notion of a kernel-registered bundle. There is no Laravel service provider, no facade, no config publish tag, no composer.json extra.laravel block.Integration feasibility
each()/create_function usage, null-to-string coercions, removed setlocale behaviors), add a Laravel service provider and facade, and own the fork. That is a multi-week engineering commitment to resurrect a library with no upstream.Technical risk
| Risk | Severity | Notes |
|---|---|---|
| Abandoned dependency | High | No security patches, no PHP 8 guarantees, no upstream triage |
| Framework incompatibility | High | Symfony2 bundle semantics cannot be hosted in Laravel's container |
| PHP version drift | High | Will break on upgrade; blocks Laravel 10/11 (PHP 8.1+) |
| Rendering fidelity | Medium | Generated PPTX may open with repair prompts in PowerPoint |
| Memory/time on large decks | Medium | Legacy in-memory XML assembly; no streaming |
| Licensing/supply chain | Low | MIT-ish lineage, but no maintained release artifacts on Packagist |
Key questions for the requester
.pptx file, or slides rendered for viewing/export? These have very different solutions.Stack fit
symfony/symfony 2.x. It will conflict with Laravel's own Symfony component versions (HTTP Foundation, Console, Finder, VarDumper) and produce unresolvable Composer constraints. This is a hard blocker, not a nuisance.Recommended migration path (in preference order)
.pptx master, open it, replace placeholders, save. Wrap it in a single PresentationGenerator interface in the app so the vendor is swappable. Pin to a specific fork commit and vendor it.soffice --headless --convert-to pptx. Highest fidelity-per-effort for complex layouts; cost is a heavier container image and process management.Compatibility and sequencing
DeckGenerator contract in the domain layer — generate(TemplateId, array $data): string returning a file path. This is the abstraction that makes the vendor decision reversible, which is the most important architectural artifact here.ppt/slides/slideN.xml) rather than binary diffing.Maintenance
Support
Scaling
memory_limit and are CPU-bound during XML serialization — isolate on a dedicated queue, cap concurrency, and set job timeouts.Failure modes
.pptx and parses [Content_Types].xml plus each slide part.Ramp-up
ev/ev-powerpoint-bundle, invest the roughly one to two weeks in a swappable deck-generation adapter behind a first-party interface, and defer the vendor decision until the template-driven requirement is validated with a real deck.How can I help you explore Laravel packages today?