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: []