Giter Club home page Giter Club logo

crawlerdetectbundle's Introduction

CrawlerDetectBundle

Build Status Coverage Status

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

crawlerdetectbundle's People

Contributors

nicolasmure avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.