Как я могу реализовать обработчик в Symfony 4? - PullRequest
0 голосов
/ 05 июля 2018

В соответствии с документацией к пакету Datatable Symfony мне нужно реализовать обработчик.

Вы должны создать обработчик для каждого экземпляра DataTable. Обработчик должен реализовывать интерфейс DataTableHandlerInterface. Единственная функция этого интерфейса - дескриптор:

  /**
   * Handles specified DataTable request.
   *
   * @param DataTableQuery $request
   *
   * @throws DataTableException
   * @return DataTableResults
   */
  public function handle(DataTableQuery $request): DataTableResults;

Что мне нужно знать, где именно я должен поместить этот код? В какой папке и на какой странице?

1 Ответ

0 голосов
/ 05 июля 2018

Вы можете поместить файл обработчика в 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, все ваши обработчики будут автоматически загружены.

...