2015-06-13 3 views
8

Sto seguendo le esercitazioni di Ratchet. Per la pagina di SessionProvider, il codice è simile a questo:PHP Ratchet: Memcache classe non trovata

<?php 
// Your shell script 
use Ratchet\Session\SessionProvider; 
use Symfony\Component\HttpFoundation\Session\Storage\Handler; 
use Ratchet\App; 

$memcache = new Memcache; // Class not found on line 7 
$memcache->connect('localhost', 11211); 

$session = new SessionProvider(
    new MyApp 
    , new Handler\MemcacheSessionHandler($memcache) 
); 

$server = new App('localhost'); 
$server->route('/sessDemo', $session); 
$server->run(); 

PHP genera un errore fatale quando si esegue lo script nel command-line:

Classe Memcache non si trovano in on line 7

Questo codice è inserito in bin \ chat-server.php

Wierd Stuff

La classe non è disponibile solo per lo script chat-server.php.

+1

E 'possibile che hai eseguito uno degli script sulla linea di comando e l'altra attraverso un browser web? – lxg

+0

Devi davvero aggiungere il modulo memcache a PHP CLI. Ma, mi dispiace, non so come farlo su Windows/XAMPP. – lxg

+0

Il problema di Memcache è ancora lì. È aperto a risposte. –

risposta

4

Ci sono due distinte estensioni PHP per il servizio memcached:

  • memcache
  • memcached < - nota il d

Sembra che si è installato il secondo uno, mentre hai bisogno del primo per la tua applicazione.

È possibile trovare l'estensione giusta per Windows here

+0

Estensione thread-safe per Apache, giusto? Bene, non posso assegnare la taglia ora. Proverò più tardi: D –

+2

Se stai usando Apache in modalità prefork, puoi usare la versione 'nts', che significa * non thread safe *, altrimenti usa l'estensione' ts' (* thread safe *). – hek2mgl