tangoman/callback-bundle
Composer 安装命令:
composer require tangoman/callback-bundle
包简介
Callback Symfony Twig Extension Bundle
README 文档
README
TangoMan Callback Twig Extension Bundle
TangoMan Callback Twig Extension Bundle provides simple callback function for twig which avoids unnecessary callbacks to stack up indefinitely in users query string.
🧩 Purpose of the Callback Class
This class defines a Twig extension that introduces a custom function called callback. Its main job is to generate clean URLs by removing callback parameters from query strings, which can help avoid issues where multiple callbacks get appended indefinitely and make sure users query parameters are not lost in the process.
🔧 callbackFunction()
public function callbackFunction($route = null, $parameters = [])
- Behavior:
- If no route is provided -> use the current request URI.
- If a route is specified -> generate a full URL using Symfony's router.
- Core logic:
- Parses the URL.
- Removes the
callbackparameter from the query string. - Reconstructs and returns the cleaned URL.
✨ Real-Life Use Case
Imagine you're building a redirect system where callbacks are passed through URLs. If multiple redirects occur (e.g., login flow, third-party auth, or form submissions), you might get URLs like this:
https://example.com/page?callback=https://another.com?callback=...
This class avoids that endless loop by stripping the callback query parameter from the final URL so it stays nice and tidy.
📦 Installation
Step 1: Download the Bundle
Open a command console, enter your project directory and execute the following command to download the latest stable version of this bundle:
composer require tangoman/callback-bundle
This command requires you to have Composer installed globally, as explained in the installation chapter of the Composer documentation.
Step 2: Enable the Bundle
Then, enable the bundle by adding it to the list of registered bundles
in the app/AppKernel.php file of your project:
<?php // app/AppKernel.php // ... class AppKernel extends Kernel { // ... public function registerBundles() { $bundles = array( // ... new TangoMan\CallbackBundle\TangoManCallbackBundle(), ); // ... } }
You don't have to add TangoMan Callback Twig Extension Bundle to the service.yml of your project.
twig.extension.callback service will load automatically.
🛠️ Usage
callback(route = null, parameters = [])
Returns current URI removing callback from query string.
Optionally, returns the absolute URL (with scheme and host) for the given route with given parameters, callback will be ignored as well.
| route (optional) | parameters (optional) | |
|---|---|---|
| type | string | array |
| default | current uri | [] |
Inside your views:
By default callback will be defined on user's current page.
<a href="{{ path('app_foo_bar', { 'callback': callback() }) }}"> Your Foo Bar link here </a>
But you can optionally redirect user to any route.
<a href="{{ path('app_delete_foo', { 'callback': callback('app_trash_bin', { 'slug': 'foo' } ) }) }}"> Your Foo Bar link here </a>
Callback function accepts route name and parameters for desired route.
Inside your action method:
public function foobarAction(Request $request) { ... // User is redirected to referrer page return $this->redirect($request->get('callback')); ... }
✅ Tests
TangoMan Callback Twig Extension Bundle provides Makefile script to perform unit tests, in order to fit in your continuous integration workflow.
Enter following command to install required dependencies and execute unit tests:
$ make tests
On windows machine you will need to install cygwin or GnuWin make first to execute make script.
If you have XDebug installed, you can generate code coverage report with:
$ make coverage
📝 Note
If you find any bug please report here : Issues
🤝 Contributing
Thank you for your interest in contributing to TangoMan Callback Twig Extension Bundle.
Please review the code of conduct and contribution guidelines before starting to work on any features.
If you want to open an issue, please check first if it was not reported already before creating a new one.
📜 License
Copyrights (c) 2025 "Matthias Morin" <mat@tangoman.io>
Distributed under the MIT license.
If you like TangoMan Callback Twig Extension Bundle please star, follow or tweet:
... And check my other cool projects.
👋 Let's Build Your Next Project Together !
Looking for an experienced Full-Stack Partner ?
Clean code. Clear communication.
From first sketch to final launch, I've got your back.
tangoman/callback-bundle 适用场景与选型建议
tangoman/callback-bundle 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 167 次下载、GitHub Stars 达 1, 最近一次更新时间为 2017 年 08 月 09 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「symfony」 「twig」 「bundle」 「extension」 「service」 「callback」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 tangoman/callback-bundle 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 tangoman/callback-bundle 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 tangoman/callback-bundle 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Shoot aims to make providing data to your templates more manageable
This Symfony bundle integrates PhpSpreadsheet into Symfony using Twig.
A Twig extension to insert css as inline styles with a tag
Caching and compression for Twig assets (JavaScript and CSS).
2lenet/EasyAdminPlusBundle
The bundle for easy using json-rpc api on your project
统计信息
- 总下载量: 167
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 0
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2017-08-09