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

Twigtools Plugin Laravel Package

evoluted/twigtools-plugin

Evoluted's Twig Tools plugin extends Twig template handling in Laravel/PHP projects, adding helper functionality for rendering and working with Twig views. Install it via Composer to integrate the tools into an existing Twig-based setup; see the repository for configuration details.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit

  • This is not a Laravel package in the conventional sense: it is a PyroCMS 3.x addon (plugin). It will declare a composer.json with a Pyro addon type and register itself through Pyro's addon/ServiceProvider lifecycle rather than Laravel's package auto-discovery (extra.laravel.providers). Any integration plan must therefore assume PyroCMS is the host application; on a plain Laravel app the package provides nothing usable without manually wiring the Twig extension.
  • The functional surface is a Twig extension (dev tooling — typically dump/var_dump-style helpers or similar developer ergonomics) registered onto the Twig environment. That means it sits in the view rendering path, not the domain/business layer. Blast radius is wide (every template render) but depth is shallow.
  • Fit is conditional: acceptable only as a require-dev convenience for teams already running PyroCMS 3.x with Twig. There is no architectural justification for introducing PyroCMS into a Laravel codebase to consume it.

Integration feasibility

  • Feasible but narrow. Constraints to validate first: the addon's Composer constraints against pyrocms/pyrocms (3.x line, effectively Laravel 5.1–5.5 and Twig 1.x/2.x), PHP version ceiling (likely 5.6–7.1 era), and Twig API compatibility (Twig_Extension vs AbstractExtension, getFunctions() signature).
  • Installation is Pyro-specific (php artisan addon:install, addon manifest/composer.json in addons/ or vendor), which is a different operational motion than composer require. This is the single largest integration cost and is frequently underestimated.

Technical risk

  • Adoption risk: high. 0 stars, 0 dependents, score 0 is the empirical signature of an unmaintained or never-adopted addon. No community backstop, no downstream validation, no evident usage in anger.
  • Maintenance risk: high. Assume no security patching, no Twig major-version support, no PHP 8 readiness. Combined with PyroCMS 3.x and Laravel 5.x being long past EOL, this package is stranded on a dead platform branch.
  • Production-leak risk: moderate. Dev/debug Twig helpers must be strictly gated to non-production environments; accidental exposure of dump-class functions in production templates is an information-disclosure vector.
  • Supply-chain risk: low-to-moderate. Small surface, but effectively an unaudited transitive dependency; pin and review before use.

Key questions

  1. What exact Twig functions/filters does it expose, and are any available natively via Twig\Extension\DebugExtension or Symfony VarDumper (which would make the addon redundant)?
  2. Does the manifest constrain pyrocms/pyrocms and Twig versions, and does that match our pinned stack?
  3. Is there any CI, test suite, or tagged release history — or is this a single unversioned commit?
  4. Is the value worth a platform-coupled require-dev dependency versus a ~50-line in-house Twig extension we own outright?
  5. Who is our named owner if the upstream repo disappears?

Integration Approach

Stack fit

  • Target host: PyroCMS 3.x on Laravel 5.x, Twig templating, PHP 5.6–7.x. If the product runs Laravel 9+/10+ with Blade or a modern Twig bridge, fit is effectively zero — do not attempt adaptation.
  • Position as a developer-experience dependency only: require-dev, loaded conditionally by APP_ENV, never bundled into production artifacts or release tags.

Migration path

  1. Prove redundancy first. Spin up a throwaway Pyro 3.x sandbox, enumerate the addon's Twig extensions, and diff against Twig's built-in DebugExtension and Laravel/Symfony dump(). If coverage overlaps, close the ticket — adopt the native extension and skip the addon.
  2. If genuinely additive: vendor-fork the repo into our own namespace, pin to a commit SHA, add a smoke test that boots Twig and asserts extension registration, and install via Pyro's addon command in local/CI only.
  3. Fallback: reimplement the handful of Twig helpers as an in-house extension under our own package — typically a day of work, and it eliminates the platform coupling and the abandonment risk entirely.

Compatibility

  • Validate against our exact pyrocms/pyrocms, twig/twig, and PHP locks before any commitment; the Twig 1→2 Twig_Extension→AbstractExtension shift is the most likely break point.
  • Watch for autoload/namespace collisions with other Pyro addons and for getFunctions() deprecations surfacing as E_USER_DEPRECATED noise in logs.

Sequencing

  1. Inventory capabilities and confirm non-redundancy (½ day).
  2. Sandbox install against the real stack, verify Twig renders unaffected (½–1 day).
  3. Decide: adopt-fork vs. rebuild in-house vs. reject (go/no-go gate).
  4. If adopted: wire into CI as a dev-only step, add the production-leak guard, document the fork owner.
  5. If rebuilt: ship the in-house extension, close out the addon evaluation permanently.

Operational Impact

Maintenance

  • Effectively self-maintained from day one. With 0 dependents and 0 stars there is no upstream momentum to ride; every Twig/PHP bump becomes our patch. Budget a small recurring maintenance line, or eliminate it via the in-house rebuild.
  • Since it is dev-only, the cost of drift is developer friction (broken local boots, noisy CI) rather than customer-facing incidents — a materially cheaper failure class.

Support

  • No vendor, no community, no issue-tracker SLA. Internal ownership must be explicit and named; "the team" is not an owner.
  • Document the fork, the pinned SHA, and the escape hatch (native DebugExtension or in-house rewrite) in the dependency register so a future maintainer is not stranded.

Scaling

  • Negligible. Extension registration is a boot-time one-off; per-render overhead is a function-lookup map and is immaterial. This is not a capacity concern at any traffic level.
  • The real "scaling" issue is team scaling: undocumented, unowned dev tooling becomes folklore. Weight documentation accordingly.

Failure modes

Mode Impact Mitigation
Twig API drift on upgrade Local/CI render exceptions Pin versions; smoke test on boot
Pyro addon registration failure Dev environment won't boot cleanly Isolate in dev container; document manual registration
Debug helpers leaking to production Information disclosure Hard APP_ENV gate; assert absence in release build
Upstream repo deletion Irrecoverable dependency Vendor-fork + mirror; prefer in-house rewrite
Namespace/autoload collision with other addons Intermittent, hard-to-diagnose errors Test in a representative multi-addon sandbox

Ramp-up

  • Low individual effort, moderate organizational effort. A Laravel developer unfamiliar with PyroCMS needs ~1 day to absorb the addon lifecycle (manifests, addon:install, ServiceProvider hooks) — that Pyro-specific knowledge is the actual cost, not the Twig extension itself.
  • Recommendation: treat this as a low-priority, dev-only, evaluate-or-replace item. Given zero adoption signals, the default disposition should be reject and rebuild the ~50 lines in-house unless the capability inventory reveals something non-trivial to replicate.
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.
encore2/laravel-admin2
cboxdk/laravel-console-kit
shapecode/doctrine-dbal-datetimeutc
gilads-otiannoh254/inertia-protocol
dakiquang/laravel-oauth-refresh-lock
woda/laravel-worktrees
dalefranks/ramasite
faghy/laracashbook
roundly-consulting/google-places-for-laravel
roundly-consulting/kubernetes-api-for-laravel
roundly-consulting/plausible-for-laravel
gvp/gvp-laravel-template
metasyncsite/laravel-metasync-client
roundly-consulting/onboarding-for-laravel
adachsoft/cli-process-tester
adachsoft/changelog-linter
adachsoft/collection
adachsoft/php-code-style
adachsoft/api-version-bundle
cgv/localized-resource