2015-06-13 16 views
8

Podążam za tutorialami Ratcheta. Na stronie SessionProvider, kod jest tak:PHP Ratchet: Class Memcache not found

<?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 generuje błąd krytyczny kiedy uruchomić skrypt w command-line:

Klasa Memcache nie znaleziono w na linii 7

Ten kod znajduje się w bin \ chat-server.php

Wierd Stuff

Ta klasa jest niedostępna tylko dla skryptu chat-server.php.

+1

to możliwe, że już wykonywane jednym z skryptów w wierszu poleceń i drugi poprzez przeglądarkę internetową? – lxg

+0

Musisz rzeczywiście dodać moduł memcache do PHP CLI. Ale, przepraszam, nie wiem jak to zrobić w Windows/XAMPP. – lxg

+0

Problem z memcache wciąż istnieje. Jest otwarty na odpowiedzi. –

Odpowiedz

4

Istnieją dwa odrębne rozszerzenia PHP dla służby memcached:

  • memcache
  • memcached < - należy zwrócić uwagę na d

Wygląda zainstalowaniu drugiego z nich, podczas gdy potrzebujesz pierwszej dla swojej aplikacji.

Można znaleźć odpowiedniego rozszerzenia dla Windows here

+0

Bezpieczne dla wątków rozszerzenie dla Apache, prawda? Cóż, nie mogę teraz przyznać nagrody. Spróbuję później: D –

+2

Jeśli używasz Apache w trybie prefork, możesz użyć wersji 'nts', oznaczającej * nie wątek bezpieczny *, w przeciwnym razie użyj rozszerzenia' ts' (* thread safe *). – hek2mgl

Powiązane problemy