- créer un répertoire vendor/sphinx-client/api/Sphinx dans votre projet symfony
- copier le fichier api/sphinxapi.php de la distribution sphinx vers vendor/sphinx-client/api/Sphinx/SphinxClient.php
- dans le fichier SphinxClient.php, ajoutez namespace Sphinx; en début de fichier
- toujours dans SphinxClient.php, dans la méthode SetServer commentez la ligne assert ( is_int($port) );
dans le fichier app/config/config.yml
services: search: class: Sphinx/SphinxClient calls: - [SetArrayResult, [true]] - [SetLimits, [0, 20, 1000]]- [SetServer, [%sphinx_host%,%sphinx_port%]]
et pour terminer dans le fichier app/config/parameters.ini
sphinx_host = localhost sphinx_port = 9132
Il suffit maintenant, dans un de vos controleurs, de récupérer et utiliser le service comme suit:
$search = $this->get('search'); // récupérer le service $results = $search->Query(...); // l'utiliser
Et voilà !
Ce commentaire a été supprimé par l'auteur.
RépondreSupprimerHi,
RépondreSupprimerI try to use sphinx in symfony2, i found this tutorial so i folowed the steps but finally i got this error
Fatal error: Class 'sphinx\SphinxClient' not found in /var/www/mywebsite.com/app/cache/prod/appProdDebugProjectContainer.php on line 1623
this is the sphinx service in config.yml :
services:
twig.extension.text:
class: Twig_Extensions_Extension_Text
tags:
- { name: twig.extension }
search:
class: sphinx\SphinxClient
calls:
- [SetArrayResult, [true]]
- [SetLimits, [0, 20, 1000]]
- [SetServer, [%sphinx_host%,%sphinx_port%]]
and this is what i add in autoload:
'sphinx' => __DIR__.'/../vendor/sphinxclient/api/sphinx'
I add also the namespace in SphinxClient class like this: namespace sphinx;
can you help me to find the problem please.
thanks in advance.