За последние 24 часа нас посетили 22211 программистов и 1685 роботов. Сейчас ищут 1645 программистов ...

Memcached и PHP

Тема в разделе "PHP для профи", создана пользователем Danil005, 16 мар 2018.

  1. Danil005

    Danil005 Активный пользователь

    С нами с:
    2 янв 2015
    Сообщения:
    528
    Симпатии:
    30
    Как мне использовать Memcached в PHP с ООП.
    PHP:
    1. use \Memcached;
    2.  
    3.     class MineFrame {
    4.  
    5.  
    6.         public static $memCache;
    7.  
    8.         public function __construct() {
    9.             self::$AntiXss = new AntiXSS();
    10.             //self::$memCache = new Client('127.0.0.1', 11211);
    11.  
    12.         }
    13.  
    14.         public static $nameSpacesMap = [
    15.             Apps\MySQL::class => 'Apps\MySQL',
    16.         ];
    17.  
    18.         public static function setPatchMap ($name, $path) {
    19.             self::$nameSpacesMap[$name] = $path;
    20.         }
    21.  
    22.         public static function autoload ($class) {
    23.             if (isset (self::$nameSpacesMap[$class])) $class = self::$nameSpacesMap[$class];
    24.             include dirname(__FILE__) . DIRECTORY_SEPARATOR . strtr($class, '\\', DIRECTORY_SEPARATOR) . '.php';
    25.         }
    26.  
    27.  
    28.         public static function test() {
    29.             (new Memcached)->add('ADMIN', 1455151);
    30.             (new Memcached)->get('ADMIN');
    31.         }
    32. }
    И когда я делал MineFrame::test();
    И выдает ошибку:
    Код (Text):
    1.  
    2. Warning: include(D:\OSPanel\domains\n.ru\system\Memcached.php): failed to open stream: No such file or directory in D:\OSPanel\domains\n.ru\system\Base.php on line 50
    3.  
    4. Warning: include(): Failed opening 'D:\OSPanel\domains\n.ru\system\Memcached.php' for inclusion (include_path='.;d:/ospanel/modules/php/PHP-7.1-x64;d:/ospanel/modules/php/PHP-7.1-x64/PEAR/pear') in D:\OSPanel\domains\n.ru\system\Base.php on line 50
    5.  
    6. Fatal error: Uncaught Error: Class 'Memcached' not found in D:\OSPanel\domains\n.ru\system\Base.php:61 Stack trace: #0 D:\OSPanel\domains\n.ru\index.php(5): MineFrame\MineFrame::test() #1 {main} thrown in D:\OSPanel\domains\n.ru\system\Base.php on line 61
     
  2. Danil005

    Danil005 Активный пользователь

    С нами с:
    2 янв 2015
    Сообщения:
    528
    Симпатии:
    30
    Выкрутился таким образом:
    PHP:
    1. public static function cache($type, ...$params) {
    2.            return (new Client('127.0.0.1', 11211))->$type(...$params);
    3.         }
     
  3. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ты сделал какую-то хрень, просто
    потом выкрутился каким-то левым образом, не связанным с ошибкой
    ты можешь оставить это дерьмо и возможно всё будет работать всегда и хорошо, а возможно ты огребёшь проблем в будущем.
    а можешь переделать всё на здоровую логику