Code Monkey home page Code Monkey logo

silex-solr-provider's Introduction

Build Status

As Silex is discontinued, so is this project. It will not receive udpates or fixes.

Overview

What is it?

This repository contains a Silex service provider which provides Apache Solr version 4 or 5 connectivity for Silex 1.2+, via the PHP Solr extension v2.

Installation

The preferred way to install this library is through Composer. For this, add "bluem/silex-solr-provider": "~1.0" (for Silex 1.2+) or "bluem/silex-solr-provider": "~2.0@dev" (for Silex2@dev) respectively to the requirements in your composer.json file. As this library uses semantic versioning, you will get fixes and feature additions when running composer update, but not changes which break the API.

Alternatively, you can clone the repository using git or download a tagged release. As with the Composer-based installation, you have to pay attention to the Silex version: when using Silex 1.2+, you will need a 1.* release of the service provider, and for Silex 2, you will need dev-master.

Usage

Registering the provider

To make Silex aware of the provider, add this to your app.php:

$app->register(new BlueM\Silex\Provider\SolrServiceProvider());

Configuration

You can define Solr settings such as the hostname in the usual Silex way in config/prod.php and config/dev.php.

Example:

$app['solr.hostname'] = '127.0.0.1';
$app['solr.path']     = 'solr/core0';

You can use all options which the SolrClient class constructor accepts. For a list, see http://php.net/manual/en/solrclient.construct.php. Please note that SolrClient does not accept an empty options array, wich means you have to provide at least 1 option, otherwise you will get an exception.

Another (IMHO less recommendable way) is to pass the options as 2nd argument to Silex\Application when registering the provider:

$app->register(
    new BlueM\Silex\Provider\SolrServiceProvider(),
    ['solr.hostname' => '127.0.0.1']
);

In either case, you can use a different string (instead of “solr”) as configuration key prefix by passing this string as argument to the provider’s constructor. This comes also in handy when multiple cores are needed:

// In app.php:
$app->register(new BlueM\Silex\Provider\SolrServiceProvider('solr-core0'));
$app->register(new BlueM\Silex\Provider\SolrServiceProvider('solr-core1'));

// In config/prod.php:
$app['solr-core0.hostname'] = '127.0.0.1';
$app['solr-core0.path']     = 'solr/core0';
$app['solr-core1.hostname'] = '127.0.0.1';
$app['solr-core1.path']     = 'solr/core1';

// In your project code:
$app['solr-core0']->doSomethingWithCore0();
$app['solr-core1']->doSomethingWithCore1();

Version History

  • 1.0.1: Improve Readme, fix a doc comment
  • 1.0: Works

Author & License

This code was written by Carsten Blüm (www.bluem.net) and licensed under the BSD 2-Clause license.

silex-solr-provider's People

Contributors

bluem avatar

Stargazers

 avatar

Watchers

 avatar  avatar  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.