nmure / crawler-detect-bundle
A Symfony bundle for the Crawler-Detect library (detects bots/crawlers/spiders via the user agent)
Installs: 267 170
Dependents: 0
Suggesters: 0
Security: 0
Stars: 25
Watchers: 4
Forks: 11
Open Issues: 2
Type:symfony-bundle
Requires
- php: >=7.1
- jaybizzle/crawler-detect: 1.*
- symfony/framework-bundle: ~4.0
Requires (Dev)
- phpunit/phpunit: ^6.5
- symfony/yaml: ^4.0
This package is not auto-updated.
Last update: 2025-04-17 19:31:24 UTC
README
A Symfony bundle for the Crawler-Detect library (detects bots/crawlers/spiders via the user agent).
Table of contents
Introduction
This Bundle integrates the Crawler-Detect library into Symfony. It is recommended to read the lib's documentation before continuing here.
The aim of this bundle is to expose the CrawlerDetect
class as a service (crawler_detect
) to make it easier to use with Symfony
(dependency injection, usable from a controller, etc...).
Installation
Download the bundle using composer :
$ composer require nmure/crawler-detect-bundle "^2.0.0"
For Symfony < 4.0, run :
$ composer require nmure/crawler-detect-bundle "^1.0.0"
then enable the bundle in your AppKernel :
// app/AppKernel.php class AppKernel extends Kernel { public function registerBundles() { $bundles = array( // ... new Nmure\CrawlerDetectBundle\CrawlerDetectBundle(), // ... ); } }
Usage
The crawler_detect
service is initialized with the data from
the Symfony's master request.
To use this service from a controller :
public function indexAction() { if ($this->get('crawler_detect')->isCrawler()) { // this request is from a crawler :) } // you can also specify an user agent if you don't want // to use the one of the master request or if the app // is accessed by the CLI : $ua = 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)'; if ($this->get('crawler_detect')->isCrawler($ua)) { // this user agent belongs to a crawler :) } }
You can also inject this service as a dependency
using the crawler_detect
service id.
Testing
$ docker run --rm -v `pwd`:/app phpunit/phpunit -c /app