# CRUDlex\ControllerProvider

class `ControllerProvider`

  This is the ControllerProvider offering all CRUD pages.

  It offers this routes:

  “/resource/static” serving static resources

  “/{entity}/create” creation page of the entity

  “/{entity}” list page of the entity

  “/{entity}/{id}” details page of a single entity instance

  “/{entity}/{id}/edit” edit page of a single entity instance

  “/{entity}/{id}/delete” POST only deletion route for an entity instance

  “/{entity}/{id}/{field}/file” renders a file field of an entity instance

  “/{entity}/{id}/{field}/delete” POST only deletion of a file field of an entity instance

  `getNotFoundPage`(Application $app, $error)

    Generates the not found page.

    Parameters: | $app (Application) – the Silex application $error (string) – the cause of the not found error
    Returns: | Response the rendered not found page with the status code 404

  `modifyFilesAndSetFlashBag`(Application $app, AbstractData $crudData, Entity $instance, $entity, $mode)

    Postprocesses the entity after modification by handling the uploaded files and setting the flash.

    Parameters: | $app (Application) – the current application $crudData (AbstractData) – the data instance of the entity $instance (Entity) – the entity $entity (string) – the name of the entity $mode (string) – whether to ‘edit’ or to ‘create’ the entity
    Returns: | null|SymfonyComponentHttpFoundationRedirectResponse the HTTP response of this modification

  `setValidationFailedFlashes`(Application $app, $optimisticLocking, $mode)

    Sets the flashes of a failed entity modification.

    Parameters: | $app (Application) – the current application $optimisticLocking (boolean) – whether the optimistic locking failed $mode (string) – the modification mode, either ‘create’ or ‘edit’

  `modifyEntity`(Application $app, AbstractData $crudData, Entity $instance, $entity, $edit)

    Validates and saves the new or updated entity and returns the appropriate HTTP response.

    Parameters: | $app (Application) – the current application $crudData (AbstractData) – the data instance of the entity $instance (Entity) – the entity $entity (string) – the name of the entity $edit (boolean) – whether to edit (true) or to create (false) the entity
    Returns: | Response the HTTP response of this modification

  `getAfterDeleteRedirectParameters`(Request $request, $entity, $redirectPage)

    Gets the parameters for the redirection after deleting an entity.

    Parameters: | $request (Request) – the current request $entity (string) – the entity name $redirectPage (string) – reference, where the page to redirect to will be stored
    Returns: | array<string,string> the parameters of the redirection, entity and id

  `buildUpListFilter`(Request $request, EntityDefinition $definition, $filter, $filterActive, $filterToUse, $filterOperators)

    Builds up the parameters of the list page filters.

    Parameters: | $request (Request) – the current application $definition (EntityDefinition) – the current entity definition $filter – $filterActive (boolean) – reference, will be true if at least one filter is active $filterToUse (array) – reference, will hold a map of fields to integers (0 or 1) which boolean filters are active $filterOperators (array) – reference, will hold a map of fields to operators for AbstractData::listEntries()

  `setupTemplates`(Application $app)

    Setups the templates.

    Parameters: | $app (Application) – the Application instance of the Silex application

  `setupRoutes`(Application $app)

    Setups the routes.

    Parameters: | $app (Application) – the Application instance of the Silex application
    Returns: | mixed the created controller factory

  `setupI18n`(Application $app)

    Setups i18n.

    Parameters: | $app (Application) – the Application instance of the Silex application

  `connect`(Application $app)

    Implements ControllerProviderInterface::connect() connecting this controller.

    Parameters: | $app (Application) – the Application instance of the Silex application
    Returns: | SilexControllerCollection this method is expected to return the used ControllerCollection instance

  `create`(Application $app, $entity)

    The controller for the “create” action.

    Parameters: | $app (Application) – the Silex application $entity (string) – the current entity
    Returns: | Response the HTTP response of this action

  `showList`(Request $request, Application $app, $entity)

    The controller for the “show list” action.

    Parameters: | $request (Request) – the current request $app (Application) – the Silex application $entity (string) – the current entity
    Returns: | Response the HTTP response of this action or 404 on invalid input

  `show`(Application $app, $entity, $id)

    The controller for the “show” action.

    Parameters: | $app (Application) – the Silex application $entity (string) – the current entity $id (string) – the instance id to show
    Returns: | Response the HTTP response of this action or 404 on invalid input

  `edit`(Application $app, $entity, $id)

    The controller for the “edit” action.

    Parameters: | $app (Application) – the Silex application $entity (string) – the current entity $id (string) – the instance id to edit
    Returns: | Response the HTTP response of this action or 404 on invalid input

  `delete`(Application $app, $entity, $id)

    The controller for the “delete” action.

    Parameters: | $app (Application) – the Silex application $entity (string) – the current entity $id (string) – the instance id to delete
    Returns: | Response redirects to the entity list page or 404 on invalid input

  `renderFile`(Application $app, $entity, $id, $field)

    The controller for the “render file” action.

    Parameters: | $app (Application) – the Silex application $entity (string) – the current entity $id (string) – the instance id $field (string) – the field of the file to render of the instance
    Returns: | Response the rendered file

  `deleteFile`(Application $app, $entity, $id, $field)

    The controller for the “delete file” action.

    Parameters: | $app (Application) – the Silex application $entity (string) – the current entity $id (string) – the instance id $field (string) – the field of the file to delete of the instance
    Returns: | Response redirects to the instance details page or 404 on invalid input

  `staticFile`(Request $request, Application $app)

    The controller for serving static files.

    Parameters: | $request (Request) – the current request $app (Application) – the Silex application
    Returns: | Response redirects to the instance details page or 404 on invalid input

  `setLocale`(Request $request, Application $app, $locale)

    The controller for setting the locale.

    Parameters: | $request (Request) – the current request $app (Application) – the Silex application $locale (string) – the new locale
    Returns: | Response redirects to the instance details page or 404 on invalid input