pulpmedia/nghttpbundle
pulpmedia/nghttpbundle is a Symfony bundle for NG HTTP integration, providing configuration and service wiring that simplifies HTTP-related tasks in your application. It follows Symfony conventions, installs via Composer, and helps keep HTTP concerns organized and reusable across projects.
Architecture fit. The package is a Symfony bundle, not a Laravel package — a first-order mismatch with the stated target stack. Its structure (PulpmediaNgHttpBundle + DependencyInjection/PulpmediaNgHttpExtension + Resources/public JS) is designed to be auto-registered into a Symfony kernel via the bundle system; Laravel has no equivalent container or bundle-discovery mechanism, so it cannot be installed or booted in a Laravel application without rewriting it as a service provider plus a Blade partial. Secondly, the frontend target is AngularJS 1.x ($http, $httpProvider interceptors), which reached end-of-life in December 2021 and shares no API surface with modern Angular (HttpClient). The package therefore fails on both axes: wrong PHP framework and wrong frontend generation.
Integration feasibility. Zero. composer require pulpmedia/nghttpbundle into a Laravel app would at best install inert files; at worst it would fatal on Symfony-era class references. The functionality it appears to provide — making AngularJS calls carry Symfony's CSRF token / session context on same-origin $http requests — is roughly 30 lines of glue: a meta tag or bootstrap JSON payload rendered server-side, plus a default-header interceptor on the client. Laravel already ships this pattern out of the box in resources/js/bootstrap.js via Axios and the X-CSRF-TOKEN / X-Requested-With headers, so the value proposition is already covered natively.
Technical risk. Low blast radius, high dead-weight risk. Stars (0), dependents (0), and the Symfony 2-era conventions point to an abandoned 2015-era artifact with a bus factor of one and no visible CI, tests, or release history. The security surface is small (a JS asset and a DI config), so CVE exposure is unlikely — but "unmaintained" here means "you are the maintainer from the moment you fork it." The MIT license is permissive, so forking is legally clean, which is the package's only real asset. The dominant risk is organizational: adopting an EOL bundle to serve an EOL frontend framework entrenches two dead technologies in one decision.
Key questions.
%kernel.root_dir%, @service notation, bundle inheritance) appear?Stack fit. Treat this as a pattern reference, not a dependency. The correct Laravel-native equivalent is: render <meta name="csrf-token" content="{{ csrf_token() }}"> in the layout, set window.axios.defaults.headers.common['X-CSRF-TOKEN'] in bootstrap.js, and — for a modern Angular frontend — configure an HttpInterceptor to read the same meta tag. That reproduces the bundle's intent with zero third-party surface and first-class framework support.
Migration path. Do not install the package. Two scenarios:
Resources/public or asset pipeline, replace the bundle's DI wiring with an explicit controller or Twig extension that emits the bootstrap config, then remove the bundle from composer.json. This is a lift-and-shift of behavior, not a fork of the codebase.Compatibility. Frontend: AngularJS 1.x only; incompatible with Angular 2+ by construction. Backend: Symfony 2.x-era service definitions and bundle conventions break on Symfony 4+ (bundle inheritance removed, service syntax changed) and on Symfony 5+/6+ (legacy autoloading, Resources/public asset handling replaced by AssetMapper/Webpack Encore). PHP version floor is likely 5.x, which is itself out of security support. There is no Laravel compatibility tier at all.
Sequencing.
HttpInterceptor if applicable). One to two days.Maintenance. Effectively infinite-tailed. Upstream is dormant, so every future PHP or browser change lands on us. A fork is cheap to create (MIT, small codebase — likely a few hundred lines of JS plus YAML/XML config) but permanently owned; the honest accounting is 1–2 engineer-days to port plus an unquantifiable trickle of "why did this break" time at each framework upgrade.
Support. None. No maintainer responsiveness, no issue triage, no security advisories, no release cadence to pin against. Incidents degrade to source-code archaeology by whoever is on call.
Scaling. Runtime footprint is negligible — a static JS asset and a container config; it will not affect throughput, latency, or infrastructure cost. The scaling concern is human: the pool of engineers fluent in Symfony 2 bundle conventions and AngularJS 1.x is small and shrinking, so the package raises the cost of every future hire and every onboarding.
Failure modes.
assets:install, Encore, AssetMapper), yielding a 404 on the interceptor script and therefore unprotected mutating requests — a security-relevant silent failure.composer.json invites repeated audit questions.Ramp-up. Low for the code itself (a small JS interceptor plus configuration is an afternoon's read for anyone who has done CSRF plumbing), but high for the surrounding idioms. Engineers with modern Laravel and Angular experience will not recognize the bundle-era Symfony patterns, so expect pairing time and documentation overhead disproportionate to the code volume. Recommendation: decline adoption; reimplement the CSRF bridge natively, and if a legacy Symfony deployment must be preserved, treat this package as a pattern to copy rather than a dependency to add.
How can I help you explore Laravel packages today?