Symfony integration for eos/com-view-server
composer require eos/com-view-server-bundleCreate the file config/packages/eos_com_view_server.yaml with content like this:
eos_com_view_server:
allow_origin: '*' # cors control; * is the default value
schema: # the definition which will be available as /cv/schema.json
headers:
authorization:
description: 'Authorization header'
views:
exampleView:
description: 'Example view'
data:
success: 'exampleSchema'
commands:
exampleCommands:
description: 'Example command'
schemas:
exampleSchema:
description: 'Example schema'
properties:
example:
description: 'Example property'
type: 'string'Configure your config/routes.yaml with:
eos_com_view:
resource: '@EosComViewServerBundle/Resources/config/routes.xml'Commands (classes which implement Eos\ComView\Server\Command\CommandProcessorInterface) can be registered via the
service tag com_view.command_processor in your config/services.yaml:
services:
# with "command", if class name is not equal to command name
YourCommand\CommandProcessor:
tags:
- { name: 'com_view.command_processor', command: 'executeYourCommand' }
# without "command", if class name is equal to command name (in this example the command name must be "executeSecondCommand")
YourCommand\ExecuteSecondCommand:
tags:
- { name: 'com_view.command_processor' }Views (classes which implement Eos\ComView\Server\View\ViewInterface) can be registered via the
service tag com_view.view in your config/services.yaml:
services:
# with "view", if class name is not equal to view name
YourView\TestView:
tags:
- { name: 'com_view.view', view: 'showTest' }
# without "view", if class name is equal to view name (in this example the view name must be "showExample")
YourView\ShowExample:
tags:
- { name: 'com_view.view' }Health Providers (classes which implement Eos\ComView\Server\Health\ViewHealthProviderInterface or Eos\ComView\Server\Health\CommandHealthProviderInterface)
can be registered via the service tag com_view.health_provider in your config/services.yaml:
services:
YourHealthProvider\TestProvider:
tags:
- { name: 'com_view.health_provider' } Headers names will be lower cased by this bundle!