nowo-tech/controller-kit-bundle
Composer 安装命令:
composer require nowo-tech/controller-kit-bundle
包简介
Controller utilities for Symfony: redirectToReferer (configurable default route) and SafeForwardTrait for safe request forwarding.
README 文档
README
⭐ Found this useful? Install from Packagist · Give it a star on GitHub so more developers can find it.
Controller Kit Bundle — Utilities for Symfony controllers: redirectToReferer (configurable default route) and SafeForwardTrait for safe request forwarding. Tested on Symfony 7.4, 8.0, and 8.1 (also compatible with Symfony 6.x and 7.0–7.3) · PHP 8.1+ (Symfony 8.x requires PHP 8.4+).
Features
- RedirectToRefererTrait — Redirect to the HTTP Referer when valid (same app, route exists), or to a configurable default route. 100% configurable via
nowo_controller_kit.default_route. - SafeForwardTrait — Forward to another controller method with a check that the method exists (avoids runtime errors).
Installation
composer require nowo-tech/controller-kit-bundle
With Symfony Flex, the recipe registers the bundle and adds config. Without Flex, see docs/INSTALLATION.md.
Manual registration in config/bundles.php:
return [ // ... Nowo\ControllerKitBundle\NowoControllerKitBundle::class => ['all' => true], ];
Configuration
In config/packages/nowo_controller_kit.yaml:
nowo_controller_kit: default_route: homepage # Route used when redirectToReferer has no valid Referer
Use your own route name (e.g. app_home, dashboard).
Usage
redirectToReferer
Use the trait in a controller that extends AbstractController:
use Nowo\ControllerKitBundle\Controller\RedirectToRefererTrait; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; class MyController extends AbstractController { use RedirectToRefererTrait; public function submit(Request $request): Response { // ... handle form ... return $this->redirectToReferer($request); // Optional: merge params and set status // return $this->redirectToReferer($request, ['success' => 1], 303); } }
When the request has a valid Referer header (same host as the current request, path matches a route in your app), the user is redirected there (with path and query params preserved). Otherwise they are redirected to the configured default_route.
safeForward
Use the trait in any controller that has forward() (e.g. AbstractController):
use Nowo\ControllerKitBundle\Controller\SafeForwardTrait; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; class ApiController extends AbstractController { use SafeForwardTrait; public function delegate(): Response { return $this->safeForward( OtherController::class, 'actionName', ['id' => 123], ['page' => 1] ); } }
If OtherController::actionName does not exist, a BadMethodCallException is thrown instead of a generic error.
Documentation
- Installation
- Configuration
- Usage
- Contributing
- Changelog
- Upgrading
- Release
- Security
- Engram
- Spec-driven development
- GitHub Spec Kit
Additional documentation
Requirements
- PHP
>=8.1(<8.6); Symfony 8.0 and 8.1 require PHP 8.4+ - Symfony 7.4, 8.0, or 8.1 (minimum supported minors; also works on Symfony 6.x and 7.0–7.3 via
composer.jsonconstraints) - For traits:
symfony/framework-bundlein your application (AbstractController)
Development
make up
make install
make test
make cs-check
make phpstan
make release-check
Demo
demo/symfony7— Symfony 7.4, host port 8010 by default (PORTin.env)demo/symfony8— Symfony 8.1 (PHP 8.4+), host port 8011 by default
Each demo runs FrankenPHP + Caddy in Docker. docker-compose sets APP_ENV=dev and mounts Caddyfile.dev, so PHP runs without long-lived workers (changes visible on refresh). Worker mode is the production Caddyfile path — see docs/DEMO-FRANKENPHP.md.
Global demo commands: make -C demo help (e.g. make -C demo up-symfony8).
Tests and coverage
- Tests: PHPUnit (PHP)
- PHP: 100%
License and author
MIT · Nowo.tech · Héctor Franco Aceituno
nowo-tech/controller-kit-bundle 适用场景与选型建议
nowo-tech/controller-kit-bundle 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 4 次下载、GitHub Stars 达 0, 最近一次更新时间为 2026 年 03 月 23 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「symfony」 「bundle」 「controller」 「redirect」 「utilities」 「traits」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 nowo-tech/controller-kit-bundle 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 nowo-tech/controller-kit-bundle 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 nowo-tech/controller-kit-bundle 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Give your JS App some Backbone with Models, Views, Collections, and Events.
2lenet/EasyAdminPlusBundle
The bundle for easy using json-rpc api on your project
Provide a way to secure accesses to all routes of an symfony application.
DMS Meetup API Bundle, enables Meetup API clients in services
Bundle Symfony DaplosBundle
统计信息
- 总下载量: 4
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 36
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-03-23