A Symfony bundle for the Rokka image service.
rokka is digital image processing done right. Store, render and deliver images. Easy and blazingly fast. This bundle allows to upload and manage your image files to rokka and deliver them in the right format, as light and as fast as possible. And you only pay what you use, no upfront and fixed costs.
Free account plans are available. Just install the plugin, register and use it.
The rokka Symfony bundle comes with a flex recipe.
Do the following.
composer config extra.symfony.allow-contrib true
composer require rokka/client-bundle
Then you can add your api key and organization to the .env
file
or edit config/packages/rokka.yaml
.
Enter your api key and organization strings.
rokka_client:
api_key: 'key-here'
organization: 'my-organization'
# Optional, not needed for most users
#base_url: https://api.rokka.io
base_url is to override the API location. We use this for testing mainly, so no need to change it ever.
The bundle will create two services for you, rokka.client.image
and rokka.client.user
. These give you access to the
basic functionality from the rokka/client library, pre-configured with
your credentials.
This bundle also provides console commands to interact with rokka.io. If you only want a CLI for rokka, you can also install the rokka PHP CLI tool as stand-alone phar.
See the official documentation for further information on how to use rokka.
The rokka twig extension is automatically included. It provides a couple of twig filters and functions to build rokka image URLs in twig templates. Some filters even allow to upload images on the fly:
{{ '/path/to/image' | rokka_stack_url('preview', seo='my-seo-image-url-fragment', seoLanguage = 'fr') }}
{{ rokka_generate_url(my_rokka_hash, 'preview', seo='my-image-url-fragement') }}
The README of the rokka twig package documents how to use the filters.
Image paths are by default assumed to be relative to the public
directory of the Symfony application. You can
configure a different image root path with:
rokka_client:
web_path_resolver:
root_dir: "%kernel.project_dir%/path/to/images"
See the README of the rokka twig package for further customization options. To use those options, you will need to overwrite services of this bundle.
If you use imagine and want to switch to rokka, create a rokka stack for each imagine filter you have.
And then replace imagine_filter
with rokka_stack_url
in your twig templates (maybe also state the format, if you don't want jpg).
If your images are not stored on the file system, then you need to do some further adjustments. The twig extension readme explains how to load images from other sources.