Download the PHP package locomotivemtl/charcoal-cache without Composer
On this page you can find all versions of the php package locomotivemtl/charcoal-cache. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download locomotivemtl/charcoal-cache
More information about locomotivemtl/charcoal-cache
Files in locomotivemtl/charcoal-cache
Package charcoal-cache
Short Description Charcoal service provider for the Stash Cache Library
License MIT
Homepage https://locomotivemtl.github.io/charcoal-config/
Informations about the package charcoal-cache
Charcoal Cache
A Charcoal service provider for the Stash Cache Library.
Table of Contents
- Installation
- Dependencies
- Dependents
- Service Provider
- Parameters
- Services
- Configuration
- Pool Configuration
Driver Configuration
- Usage
- Middleware
- Helpers
- CachePoolAwareTrait
- Development
- API Documentation
- Development Dependencies
- Coding Style
- Credits
- License
Installation
-
The preferred (and only supported) method is with Composer:
-
Add the service provider and configure the default caching service via the application configset:
or via the service container:
If you are using locomotivemtl/charcoal-app, the AppServiceProvider
.
Dependencies
Required
- PHP 5.6+: PHP 7 is recommended.
- tedivm/stash: PSR-6 compliant caching library.
- pimple/pimple: PSR-11 compliant service container and provider library.
- locomotivemtl/charcoal-config: For configuring the caching service.
PSR
- PSR-3: Common interface for logging libraries. Supported by Stash.
- PSR-6: Common interface for caching libraries. Fulfilled by Stash.
- PSR-7: Common interface for HTTP messages. Followed by
CacheMiddleware
. - PSR-11: Common interface for dependency containers. Fulfilled by Pimple.
Dependents
- locomotivemtl/charcoal-admin: Admin interface for Charcoal applications.
- locomotivemtl/charcoal-app: PSR-7 compliant framework for web applications.
For caching HTTP responses via theCacheMiddleware
. - locomotivemtl/charcoal-core: Collection, model, metadata, and database library.
For caching object data and model metadata.
Service Provider
Parameters
- cache/available-drivers: Collection of registered cache drivers that are supported by this system (via
Stash\DriverList
).
Services
- cache/config: Configuration object for the caching service.
See Pool Configuration for available options. - cache/drivers: Collection of cache driver instances (as a service container) which uses
cache/available-drivers
.
These drivers are pre-configured: - cache/builder: Instance of
CacheBuilder
that is used to build a cache pool. - cache/driver: Reference to the Stash cache driver used by
cache
. Defaults to "memory". - cache: Main instance of the Stash cache pool which uses
cache/driver
andcache/config.prefix
.
Configuration
Pool Configuration
Each pool comes with a set of default options which can be individually overridden.
Setting | Type | Default | Description |
---|---|---|---|
active | boolean |
TRUE |
Whether to enable or disable the cache service. |
prefix | string |
charcoal |
Name of the main Stash pool. |
types | string[] |
memory |
List of cache drivers to choose from for the main Stash pool. Defaults to "memory". |
default_ttl | integer |
1 week | Default time-to-live (in seconds) for a cached item. Currently, only used by the APC driver (cache/drivers.apc ). |
Driver Configuration
Each driver comes with a set of default options which can be individually overridden.
—N/A—
Usage
Just fetch the default cache pool service:
Or a custom-defined cache pool:
Then you can use the cache service directly:
See the Stash documentation for more information on using the cache service.
Middleware
The PSR-6 cache pool and returns that cached response if still valid.
If you are using locomotivemtl/charcoal-app, you can add the middleware via the application configset:
Otherwise, with Slim, for example:
The middleware comes with a set of default options which can be individually overridden.
Setting | Type | Default | Description |
---|---|---|---|
active | boolean |
FALSE |
Whether to enable or disable the middleware (locomotivemtl/charcoal-app only). |
cache | CacheItemPoolInterface |
cache |
Required; The main Stash pool. |
ttl | string[] |
1 week | Time-to-live (in seconds) for a cached response. |
methods | string[] |
GET |
Accepted HTTP method(s) to cache the response. |
status_codes | integer[] |
200 | Accepted HTTP status code(s) to cache the response. |
included_path | string[] |
* |
Accepted URI paths for caching the response. |
excluded_path | string[] |
^/admin\b |
Rejected URI paths for caching the response. |
included_query | string[] |
NULL |
Accepted query parameters for caching the response. |
excluded_query | string[] |
NULL |
Rejected query parameters for caching. |
ignored_query | string[] |
NULL |
Ignored query parameters for caching the response. |
By Default
All HTTP responses are cached unless:
- the request method is not GET
- the request URI path starts with
/admin…
- the request URI contains a query string
- the response is not OK (200)
Ignoring Query Strings
If query strings don't affect the server's response, you can permit caching of requests by ignoring all query parameters:
or some of them:
Helpers
CachePoolAwareTrait
The CachePoolAwareTrait
is offered as a convenience to avoid duplicate / boilerplate code. It simply sets and gets an instance of \Psr\Cache\CacheItemPoolInterface
.
Assign a cache pool with setCachePool()
and retrieve it with cachePool()
.
Both methods are protected; this trait has no public interface.
Development
To install the development environment:
To run the scripts (phplint, phpcs, and phpunit):
API Documentation
- The auto-generated
phpDocumentor
API documentation is available at:
https://locomotivemtl.github.io/charcoal-cache/docs/master/ - The auto-generated
apigen
API documentation is available at:
https://codedoc.pub/locomotivemtl/charcoal-cache/master/
Development Dependencies
Coding Style
The charcoal-cache module follows the Charcoal coding-style:
- PSR-1
- PSR-2
- PSR-4, autoloading is therefore provided by Composer.
- phpDocumentor comments.
- .editorconfig for coding standards.
Coding style validation / enforcement can be performed with
composer phpcs
. An auto-fixer is also available withcomposer phpcbf
.
Credits
License
- Charcoal is licensed under the MIT license. See LICENSE for details.
- Stash is licensed under the BSD License. See the LICENSE file for details.
All versions of charcoal-cache with dependencies
locomotivemtl/charcoal-config Version ~0.8
pimple/pimple Version ^3.0
psr/cache Version ^1.0
tedivm/stash Version ~0.14