Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Cms Faq Bundle Laravel Package

presta/cms-faq-bundle

PrestaCMS FAQ Bundle adds FAQ management to Symfony/PrestaCMS sites: create categorized questions and answers with ordering, admin CRUD screens, and ready-to-render frontend templates for help and support pages.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit — poor, effectively none for a Laravel codebase. Despite being catalogued alongside PHP packages, presta/cms-faq-bundle is a Symfony 2 bundle, not a Laravel package. It has no service provider, no facade, no config publishing, and no awareness of the Laravel container. Its architecture is PrestaCMS-specific: FAQ content is modelled as Doctrine entities (categories containing questions/answers) and managed through SonataAdminBundle CRUD screens, then surfaced through PrestaCMS page blocks. Adopting it in Laravel would mean adopting Symfony 2's bundle/kernel conventions, Sonata's admin stack, and PrestaCMS's block rendering model — three frameworks to serve one small content type.

Integration feasibility — not feasible in the target stack. The realistic failure point is Composer resolution: Sonata Admin and its Symfony 2-era dependencies pin symfony/form, symfony/http-foundation, symfony/event-dispatcher and doctrine/* versions that directly conflict with illuminate/*. Even with --ignore-platform-reqs gymnastics, you would be loading two competing HTTP kernels, two form components, and two event dispatchers into one process. There is no supported coexistence story.

Technical risk — high and compounding.

  • Archived with a 2014-02-26 last release. Roughly a decade without maintenance; no security patches, no PHP 7/8 compatibility, no Doctrine DBAL/ORM modernisation.
  • Zero stars, zero dependents. No community to triage issues, no forks with fixes, no signals from production use. The 0.015 score is consistent with an abandoned artifact rather than an underrated one.
  • Security surface you inherit. Any CVE in the frozen Symfony 2 / Sonata / Doctrine transitive tree becomes yours to patch, in code you did not write, for a feature whose business value is a list of questions and answers.
  • Admin UX debt. Sonata Admin's 2014-era UI and auth model would need to be reconciled with whatever your Laravel app uses for admin access, or run as a second authenticated surface.
  • Domain over-engineering. The value proposition — categories, Q&A pairs, ordering, admin CRUD — is a single migration, a model, and two controllers.

Key questions

  1. Is there an existing PrestaCMS marketing site in the estate whose FAQ data must be preserved, or is this a greenfield requirement?
  2. What is the actual content model — categories, questions, answers, ordering, publication state, multi-language? (If it is three fields, this package is irrelevant.)
  3. Who are the editors, and must they author FAQ inside the Laravel admin, or is a separate CMS acceptable?
  4. Is there any regulatory or audit driver for using a specific CMS, or is the framework choice open?
  5. What is the appetite for running an unsupported dependency through a security review?

Verdict: reject as a dependency. The only defensible use is as a reference implementation for schema shape and admin field layout.

Integration Approach

Stack fit — none. PrestaCMS + SonataAdmin is a Symfony 2 world. A Laravel application has no seam to attach to: no bundle registration, no Twig block pipeline, no Sonata admin pool, no Doctrine entity manager shared with Eloquent. Treat this as cross-framework, not cross-package.

Migration path — content out, not code in. If FAQ content exists in a live PrestaCMS instance, the viable path is data extraction, not integration:

  1. Inventory the FAQ tables (faq, faq_category, translation tables) and block configuration referencing them.
  2. Export to a neutral format — JSON or CSV, one file per locale, preserving category order and question order.
  3. Import into a native Laravel schema: faq_categories and faqs with a foreign key, position column for ordering, published_at for state, and a locale column or translations table if multilingual.
  4. Rebuild admin with your existing Laravel admin tooling (Filament, Nova, Backpack, or plain resource controllers) — a straightforward afternoon's work.
  5. Redirect any public FAQ URLs from the old CMS to the new routes to preserve SEO equity.
  6. Decommission the PrestaCMS FAQ module; leave the rest of that site alone until its own migration is scoped.

Compatibility — the decisive constraint. PHP 5.3/5.4-era code will fatal on PHP 8.x (removed each(), reserved words, dynamic properties, old Doctrine proxy signatures). Symfony 2 is end-of-life. There is no supported matrix in which this runs alongside a current Laravel release. Any attempt at compatibility is a fork-and-rewrite, at which point you have written the feature yourself with extra steps.

Sequencing (recommended):

Phase Work Effort
1 Confirm content model and locale requirements with stakeholders 1–2 days
2 Decide build vs. adopt a maintained Laravel-native FAQ package 1 day
3 Implement schema, models, admin CRUD, public read endpoints 2–4 days
4 Migrate legacy content (if any) and redirect URLs 1–3 days
5 Decommission the bundle; close out the dependency request 0.5 day

Note that steps 3–4 are cheaper than the evaluation and security review required to justify the bundle.

Operational Impact

Maintenance — worst case. Archived, unmaintained, and pinned to a dead framework generation. Every future PHP runtime upgrade, every Laravel major, and every transitive security advisory becomes a manual triage item against code with no upstream. This is a permanent maintenance tax on a feature that should be near-zero-cost.

Support — none. No maintainer, no issue triage, no security disclosure channel, no dependents to consult. Internal engineers would be reverse-engineering 2014 Symfony idioms from source. Expect the "how do we fix this" question to land on whoever approved the dependency.

Scaling — limited but largely irrelevant. A FAQ is a read-heavy, low-write, cacheable dataset; the package's ORM-and-render-per-request model is not a scaling concern at any realistic volume. The real scaling risk is organisational: a second framework runtime, a second admin auth surface, a second deployment unit, and a second upgrade cadence — all for one content type.

Failure modes to expect

  • Composer resolution failure at install — conflicting Symfony/Illuminate constraints. Blocks the project on day one.
  • PHP fatal errors on any modern runtime — incompatible syntax and removed functions.
  • Doctrine schema drift against a modern DBAL, or migrations that no longer run.
  • Admin UI inaccessible due to Sonata's abandoned asset pipeline and authentication assumptions.
  • Silent security exposure — unpatched CVEs in the frozen dependency tree, invisible to standard SCA tooling once the package is marked abandoned.
  • Knowledge concentration — one engineer becomes the only person who understands the integration, then leaves.

Ramp-up — steep and unrewarding. Realistic onboarding for a mid-level Laravel engineer: 2–3 weeks to become productive in Symfony 2 bundle conventions, Sonata Admin, PrestaCMS blocks, and Doctrine 2 — none of which transfers to the rest of the stack. Contrast with under a day for a Laravel engineer to read and extend a native FAQ module they or a colleague wrote. The ramp-up cost alone exceeds the entire build cost of the replacement.

Recommendation. Decline the dependency. Build the FAQ natively in Laravel (2–4 engineer-days) or adopt an actively maintained Laravel package. If legacy PrestaCMS content exists, fund a one-off export/import rather than an integration. Record the decision so the same archived package is not re-evaluated on the next request — the star count, dependent count, last-release date, and archive status are sufficient signal on their own.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings
coleus/apps
seampact/laravel
emmyconceptng/laravel-ng-postcode
jjsquady/round-robin