我如何在 Symfony 4 中实现处理程序?
How can I implement a handler in Symfony 4?
根据 Datatable Symfony bundle 文档,我需要实现一个处理程序。
您必须为每个 DataTable 实例创建一个处理程序。处理程序必须实现 DataTableHandlerInterface 接口。该接口包含的唯一函数是 handle :
/**
* Handles specified DataTable request.
*
* @param DataTableQuery $request
*
* @throws DataTableException
* @return DataTableResults
*/
public function handle(DataTableQuery $request): DataTableResults;
我需要知道的是,我必须将这段代码放在哪里?在哪个文件夹和哪个页面上?
你可以把handler文件放在
src/DataTables/UsersDataTable.php
对于 Symfony 4 项目。
在此文件中,您将实现请求处理程序 (https://github.com/webinarium/DataTablesBundle/wiki#step-1-implement-request-handler),不要忘记将其注册为服务:
https://github.com/webinarium/DataTablesBundle/wiki#step-2-register-the-handler
UsersDataTable.php
// src/DataTables/UsersDataTable.php
class UsersDataTable implements DataTableHandlerInterface
{
///
}
您在services.yaml
注册服务
#config/services.yaml
services:
datatable.users:
class: App\DataTables\UsersDataTable
tags: [{ name: datatable, id: users }]
arguments: [ '@doctrine' ]
在此之后,您可以从控制器操作中调用处理程序
https://github.com/webinarium/DataTablesBundle/wiki#step-3-invoke-the-handler
SomeController.php
// App\Controller\SomeController.php
public function usersAction(Request $request, DataTablesInterface $datatables): JsonResponse
{
//
}
如果您按照以下说明操作:https://github.com/webinarium/DataTablesBundle/wiki#handlers-service-autoloading 您的所有处理程序都将自动加载。
根据 Datatable Symfony bundle 文档,我需要实现一个处理程序。
您必须为每个 DataTable 实例创建一个处理程序。处理程序必须实现 DataTableHandlerInterface 接口。该接口包含的唯一函数是 handle :
/**
* Handles specified DataTable request.
*
* @param DataTableQuery $request
*
* @throws DataTableException
* @return DataTableResults
*/
public function handle(DataTableQuery $request): DataTableResults;
我需要知道的是,我必须将这段代码放在哪里?在哪个文件夹和哪个页面上?
你可以把handler文件放在
src/DataTables/UsersDataTable.php
对于 Symfony 4 项目。
在此文件中,您将实现请求处理程序 (https://github.com/webinarium/DataTablesBundle/wiki#step-1-implement-request-handler),不要忘记将其注册为服务: https://github.com/webinarium/DataTablesBundle/wiki#step-2-register-the-handler
UsersDataTable.php
// src/DataTables/UsersDataTable.php
class UsersDataTable implements DataTableHandlerInterface
{
///
}
您在services.yaml
注册服务#config/services.yaml
services:
datatable.users:
class: App\DataTables\UsersDataTable
tags: [{ name: datatable, id: users }]
arguments: [ '@doctrine' ]
在此之后,您可以从控制器操作中调用处理程序 https://github.com/webinarium/DataTablesBundle/wiki#step-3-invoke-the-handler
SomeController.php
// App\Controller\SomeController.php
public function usersAction(Request $request, DataTablesInterface $datatables): JsonResponse
{
//
}
如果您按照以下说明操作:https://github.com/webinarium/DataTablesBundle/wiki#handlers-service-autoloading 您的所有处理程序都将自动加载。