Bonjour,

J'aimerais prendre en charge le client PHP Predis à travers CakePHP
Je l'ai installer via Composer, mais ne parvient pas à l'utiliser.
Il se trouve dans app\Vendor\predis\predis

Getting Started with Redis in PHP

Ce que je fais

<?php
App::uses('CakeEvent', 'Event');
App::import('Vendor', array('file' => 'autoload'));
App::import('Vendor', 'Predis', array('file' => 'predis' . DS . 'predis' . DS . 'autoload'));
use ElephantIO\Client, ElephantIO\Engine\SocketIO\Version1X;

class SocketEventListener implements CakeEventListener {
    public function implementedEvents() {
        return array(
            'Controller.User.signin' => 'userConnected',
        );
    }
    public function userConnected($event) {
        PredisAutoloader::register();
        $redis = new PredisClient();
        $redis->set('message', 'Hello world');
    }
}
?>

Ce que j'obtiens

Et ce que j'obtient c'est Error: Class 'PredisAutoloader' not found

Merci à vous,

1 réponse


Majid Cameleon
Auteur
Réponse acceptée

Finalement cela vient de $client = new PredisClient();

<?php

App::uses('CakeEvent', 'Event');
App::import('Vendor', array('file' => 'autoload'));
class SocketEventListener implements CakeEventListener {

    public function implementedEvents() {
        return array(
            'Controller.User.signin' => 'userConnected',
        );
    }

    public function userConnected($event) {
        $client = new Predis\Client();
        $client->rpush('foo2', 'bar');
        $client->rpush('foo2', 'bar2');
    }
}
?>