https://github.com/nicolasmure/crawlerdetectbundle
A Symfony bundle for the Crawler-Detect library (detects bots/crawlers/spiders via the user agent)
https://github.com/nicolasmure/crawlerdetectbundle
bot bundle crawler php symfony
Last synced: 8 months ago
JSON representation
A Symfony bundle for the Crawler-Detect library (detects bots/crawlers/spiders via the user agent)
- Host: GitHub
- URL: https://github.com/nicolasmure/crawlerdetectbundle
- Owner: nicolasmure
- License: mit
- Created: 2016-11-23T20:42:53.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2021-01-21T07:59:39.000Z (about 5 years ago)
- Last Synced: 2025-07-20T18:43:10.657Z (8 months ago)
- Topics: bot, bundle, crawler, php, symfony
- Language: PHP
- Homepage:
- Size: 12.7 KB
- Stars: 25
- Watchers: 4
- Forks: 11
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# CrawlerDetectBundle
[](https://travis-ci.org/nicolasmure/CrawlerDetectBundle)
[](https://coveralls.io/github/nicolasmure/CrawlerDetectBundle?branch=master)
A Symfony bundle for the [Crawler-Detect](https://github.com/JayBizzle/Crawler-Detect "JayBizzle/Crawler-Detect")
library (detects bots/crawlers/spiders via the user agent).
## Table of contents
- [Introduction](#introduction)
- [Installation](#installation)
- [Usage](#usage)
- [Testing](#testing)
## Introduction
This Bundle integrates the [Crawler-Detect](https://github.com/JayBizzle/Crawler-Detect "JayBizzle/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`](https://github.com/JayBizzle/Crawler-Detect/blob/master/src/CrawlerDetect.php "Jaybizzle\CrawlerDetect\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 :
```bash
$ composer require nmure/crawler-detect-bundle "^2.0.0"
```
For Symfony < 4.0, run :
```bash
$ composer require nmure/crawler-detect-bundle "^1.0.0"
```
then enable the bundle in your AppKernel :
```php
// 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 :
```php
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
```bash
$ docker run --rm -v `pwd`:/app phpunit/phpunit -c /app
```