Provides a httpcache warmup command for Symfony2. The command simply executes a GET request on a list of urls.
One or more url providers must be registered. This bundle requires an implementation of
php-http/httplug and
php-http/message-factory.
-
Add to your
composer.json:$ composer require zenstruck/cache-bundle -
Register this bundle with Symfony2:
// app/AppKernel.php public function registerBundles() { $bundles = array( // ... new Zenstruck\CacheBundle\ZenstruckCacheBundle(), ); // ... }
An http_client (class or service implementing Http\Client\HttpClient) and message_factory
(class or service implementing Http\Message\MessageFactory) must be configured.
zenstruck_cache:
http_client: Acme\MyHttpClient # or a service (acme.my_http_client)
message_factory: Acme\MyMessageFactory # or a service (acme.my_message_factory)Usage:
app/console zenstruck:http-cache:warmup
This bundle comes with a URL provider that looks at a list of sitemaps to retrieve a list of urls. If a url is
given without the sitemap or sitemap index, the provider first looks for a {url}/sitemap_index.xml to find a
set of sitemap files. If no index is found, it defaults to using {url}/sitemap.xml.
- See http://www.sitemaps.org/ for information on how to create a sitemap.
- See DpnXmlSitemapBundle for creating a sitemap with Symfony2.
To enable the sitemap provider, configure it in your config.yml:
zenstruck_cache:
sitemap_provider:
sitemaps:
- http://example.com/sitemap.xml # detects if sitemap or sitemap index and act accordingly
- http://example.com/en/sitemap.xml # same as above
- http://www.example.com # trys http://example.com/sitemap_index.xml and http://example.com/sitemap.xml
-
Create a class that implements
Zenstruck\CacheBundle\Url\UrlProvider:use Zenstruck\CacheBundle\Url\UrlProvider; namespace Acme; class MyUrlProvider implements UrlProvider { public function getUrls() { $urls = array(); // fetch from a datasource return $urls; } public function count() { return count($this->getUrls()); } }
-
Register the class as a service tagged with
zenstruck_cache.url_provider:my_url_provider: class: Acme\MyUrlProvider tags: - { name: zenstruck_cache.url_provider }
zenstruck_cache:
# Either a class or a service that implements Http\Client\HttpClient.
http_client: ~ # Required
# Either a class or a service that implements Http\Message\MessageFactory.
message_factory: ~ # Required
sitemap_provider:
enabled: false
sitemaps: []