Source & cache
Glide makes it possible to access images stored in a variety of file systems. It does this using the Flysystem file system abstraction library. For example, you may choose to store your source images on Amazon S3, but keep your rendered images (the cache) on the local disk.
Setup using Flysystem
To set your source and cache locations, simply pass an instance of
League\Flysystem\Filesystem for each. See the Flysystem website for a complete list of available adapters.
<?php use League\Flysystem\Local\LocalFilesystemAdapter; use League\Flysystem\Filesystem; use League\Glide\ServerFactory; // Setup Glide server $server = ServerFactory::create([ 'source' => new Filesystem(new LocalFilesystemAdapter('path/to/source/folder')), 'cache' => new Filesystem(new LocalFilesystemAdapter('path/to/cache/folder')), ]);
Setup using local disk
Alternatively, if you are only using the local disk, you can simply provide the paths as a string.
<?php $server = League\Glide\ServerFactory::create([ 'source' => 'path/to/source/folder', 'cache' => 'path/to/cache/folder', ]);
Set default path prefix
While it’s normally possible to set the full source and cache path using Flysystem, there are situations where it may be desirable to set a default path prefix. For example, when only one instance of the
Filesystem is available.
<?php // Set using factory $server = League\Glide\ServerFactory::create([ 'source' => $filesystem, 'cache' => $filesystem, 'source_path_prefix' => 'source', 'cache_path_prefix' => 'cache', ]); // Set using setter methods $server->setSourcePathPrefix('source'); $server->setCachePathPrefix('cache');
Set a base URL
It’s common to route all images under the path
/img/. However, since Glide maps the image request path directly to the image source path, you would need to have an
/img/ folder in your source location as well. For example:
'http://example.com/img/kayaks.jpg' => '/path/to/source/img/kayaks.jpg'
base_url allows you to define which part of the URL should be omitted from the source path.
<?php // Set using factory $server = League\Glide\ServerFactory::create([ 'base_url' => '/img/', ]); // Set using setter method $server->setBaseUrl('/img/');
With the base URL configured, the new image source paths will no longer include
'http://example.com/img/kayaks.jpg' => '/path/to/source/kayaks.jpg'
Disabling the cache
In some situations it may be desirable to disable the cache. For example, you may choose to use a tool like Varnish for caching instead. The best way to do this with Glide is to use an in-memory adapter for Flysystem. This will prevent any cached images from being saved to your local disk.
Grouping cache in folders
By default Glide groups cached images into folders. For example, all variations of
kayaks.jpg will be found in a
/path/to/cache/folder/kayaks.jpg folder. If you’d prefer to have all cached images in the same folder, this can be done in two ways:
<?php // Set using factory $server = League\Glide\ServerFactory::create([ 'group_cache_in_folders' => false ]); // Set using setter method $server->setGroupCacheInFolders(false);
Deleting cached images
Glide does not automatically purge cached images. However, this can be done by your application using the
deleteCache() method. Note, grouping cache in folders MUST be enabled in order to delete cached images, which is the default setting.