Jump to content

All Activity

This stream auto-updates     

  1. Yesterday
  2. @kphp в оригинале на гитхабе по понятнее. В этом коде OOP стиль нарушает srp, сразу не поймешь, что это файловый кеш. Использовать PSR-16 круто, переключаться с файлового кеша на мемкеш, редис просто.
  3. Автор OTTO https://github.com/OTTO11/memcache README.md Эмулятор Memcache для обычного хостинга Описание - все закешированные данные хранятся в файлах в json формате. Установка Методы Memcache::connect — Открывает соединение с memcached сервером Memcache::pconnect — Открывает постоянное соединение с memcached сервером Memcache::addServer — Добавить memcached сервер в пул соединений Memcache::add — Добавить значение Memcache::set — Установить значение Memcache::replace — Заменить значение Memcache::get — Получить значение Memcache::increment — Инкрементирует значение Memcache::decrement — Декрементирует значение Memcache::delete — Удалить значение Memcache::flush — Сбросить все существующие значения на сервере Memcache::close — Закрывает соединение с memcached сервером Установка Для установки на сайт достаточно создать папку cache в любом месте проекта и в файле memcache.php указать путь до папки. Так же там можно изменить название папки и расширение файлов. Для полноценной работы достаточно заинклюдить файл memcache.php в основном файле. После этого вы получите, поддержку стандартных функций memcache. Если же на сервере был ранее установлен memcache вы получите ошибку: Fatal error: Cannot redeclare "Название функции" in /path/to/memcache.php on line NUM Работа с memcache Memcache поддерживает два типа работы. - Процедурный стиль - Объектно Ориентированный Процедурный стиль ``` $connect = memcache_connect('localhost',11211); memcache_set($connect, 'key_set', array('value1','value2')); print_r(memcache_get($connect, 'key_set')); ``` Объектно Ориентированный ``` $cache = new Memcache; // так же можно указать Memcached $cache->connect('localhost',11211); $cache->set('key_set', array('value1','value2')); print_r($cache->get('key_set')); ``` При желании можно структурировать кеш. Разложив его по папкам. Делается это при помощи **^ (caret)** Например: $cache->set('dir^file', array('value1','value2')); Результат: cache/ dir/ file.tmp file.tmp.tmpTime Тем самым, можно легко понять структуру кеша и при переходе на обычный memcache, не придется ничего менять. Методы На самом деле все эти методы можно подразделить на 3 группы: - Работа со значениями - Работа с серверами и соединениями - Получение информации Работа со значениями Методы этой группы позволяют делать следующее: - Устанавливать значения - Удалять эти значения - Заменять эти значения - Обращаться к этим значения по ключу - Управлять сроком жизни значений + пара специфичных методов для инкремента и декремента целочисленных значений. Memcache::connect() Фейковая функция существует только для совместимости. bool Memcache::connect ( string $host [, int $port [, int $timeout ]] ) - **string $host** - Хост Memcached. - **int $port** - порт, на котором Memcached слушает соединения. - **int $timeout** - Лимит в секундах, для подключения к демону. Подумайте дважды, прежде чем изменять значение по умолчанию 1 секунда - вы можете потерять все преимущества кэширования, если ваше соединение будет происходить слишком долго. <?php $cache = new Memcache(); $cache->connect('localhost', 11211, 30); ?> Memcache::pconnect() Фейковая функция существует только для совместимости. mixed Memcache::pconnect ( string $host [, int $port [, int $timeout ]] ) - **string $host** - Хост Memcached. Этот параметр может также указать другие транспорты, как unix:///path/to/memcached.sock т.е. использовать UNIX сокеты, в этом случае порт должен быть установлен в 0. - **int $port** - порт, на котором Memcached слушает соединения. Установите этот параметр в 0, если предполагается использование сокетов. - **int $timeout** - Лимит в секундах, для подключения к демону. Подумайте дважды, прежде чем изменять значение по умолчанию 1 секунда - вы можете потерять все преимущества кэширования, если ваше соединение будет происходить слишком долго. <?php $cache = new Memcache(); $cache->pconnect('localhost', 11211, 30); ?> Memcache::addServer() Фейковая функция существует только для совместимости. bool Memcache::addServer ( string $host [, int $port = 11211 [, bool $persistent [, int $weight [, int $timeout [, int $retry_interval [, bool $status [, callable $failure_callback [, int $timeoutms ]]]]]]]] ) - **string $host** - Хост Memcached. Этот параметр может также указать другие транспорты, как unix:///path/to/memcached.sock т.е. использовать UNIX сокеты, в этом случае порт должен быть установлен в 0. - **int $port** - порт, на котором Memcached слушает соединения. Установите этот параметр в 0, если предполагается использование сокетов. - **bool $persistent** - Устанавливает использование постоянного соединения. По умолчанию в значение TRUE. - **int $weight** - Чем больше, тем вероятнее, что данный сервер будет выбран для хранения значений. Т.е. это своеобразный "вес" сервера в общем пуле, косвенно это ещё и предполагаемая нагрузка на сервер. - **int $timeout** - Лимит в секундах, для подключения к демону. Подумайте дважды, прежде чем изменять значение по умолчанию 1 секунда - вы можете потерять все преимущества кэширования, если ваше соединение будет происходить слишком долго. - **int $retry_interval** - Устанавливает, как часто отказавший сервер будет опрашиваться, значение по умолчанию составляет 15 секунд. Установка этого параметра в -1 отключает автоматический повтор запросов. - **bool $status** - Помечает сервер как ONLINE. Установка этого параметра в FALSE и retry_interval -1 позволяет отказавшему серверу хранится в пуле активных серверов, чтобы не влиять на ключевые алгоритмы распределения. Обращения к этому серверу будут распределятся между оставшимися доступными серверами. По умолчанию значение TRUE, то есть сервер должен рассматриваться как ONLINE. - **callable $failure_callback** - Позволяет пользователю указать функцию обратного вызова для запуска при обнаружении ошибки. Функция должна принимать два параметра, имя хоста и порт вышедшего из строя сервера. - **string $timeoutms** - не описана. Memcache::set() Memcache::add() Позволяют установить значение, задать сжатие и время жизни для этого значения. Единственное различие в поведении этих методов это то, что метод Memcache::add - вернёт FALSE, если значение с таким ключём уже установлена. bool Memcache::add ( string $key, mixed $var [, int $flag [, int $expire ]] ) bool Memcache::set ( string $key, mixed $var [, int $flag [, int $expire ]] ) - **string $key** - ключ значения, используя его мы оперируем значением. - **mixed $var** - значение. - **int $flag** - Флаг, указвающий, использовать ли сжатие в данном случае настоящего сжатия не производиться, так же можно использовать константы - **int $expire** - Время жизни значения(кэша). Если равно нулю, то бессрочно. Вы также можете использовать метку времени или количество секунд, начиная с текущего времени, но тогда число секунд, не может превышать 2592000 (30 дней). <?php $cache = new Memcache(); $cache->connect('localhost', 11211, 30); $cache->add( 'myfirst', 1000, MEMCACHE_COMPRESSED, 15 ); $cache->set( 'mysecond', 2000, MEMCACHE_COMPRESSED, 15 ); ?> Memcache::replace() Перезаписать существующее значение. Memcache::replace() должна использоваться, чтобы заменить существующее значение. В случае, если значение с таким ключом не существует, Memcache::replace() возвращает FALSE. В остальном Memcache::replace() ведет себя так же, как и Memcache::set(). Также можно использовать функцию memcache_replace() string Memcache::replace ( string $key , mixed $var [, int $flag [, int $expire ]] ) - **string $key** - ключ, значение которого нужно заменить. - **mixed $var** - новое значение. - **int $flag** - Флаг, указвающий, использовать ли сжатие (Здесь то и нужна Zlib) для сохраняемого значения, можно использовать константы - **int $expire** - Время жизни значения(кэша). Если равно нулю, то бессрочно. Вы также можете использовать метку времени или количество секунд, начиная с текущего времени, но тогда число секунд, не может превышать 2592000 (30 дней). <?php $cache = new Memcache(); $cache->connect('localhost', 11211, 30); $cache->add( 'one', 111, 0, 15 ); $cache->add( 'two', 222, 0, 15 ); $cache->add( 'three', 333, 0, 15 ); $cache->replace( 'three', 777 ); print_r( $cache->get( array('one','two','three')) ); ?> Результат: Array ( [one] => 111 [two] => 222 [three] => 777 ) Memcache::get() Вернёт запрошенное значение или FALSE в случае неудачи, или, если значение с таким ключём ещё не установлено. Можно передать массив ключей значений, тогда Memcache::get тоже вернёт массив, он будет содержать найденные пары ключ-значение. string Memcache::get ( string $key [, int &$flags ] ) array Memcache::get ( array $keys [, array &$flags ] ) - **string $key** - ключ значения, или массив ключей, значения которых нужно получить. - **int $flag** - назначение этого параметра осталось для меня тайной. Я пробовал использовать некоторые целочисленные значения, но это не дало ни какого эффекта. Да и примеры в основном даны без его использования, из чего мною сделан вывод: можно прекрасно работать и без него :) <?php $cache = new Memcache(); $cache->connect('localhost', 11211, 30); $cache->add( 'myfirst', 1000, MEMCACHE_COMPRESSED, 15 ); $cache->set( 'mysecond', 2000, MEMCACHE_COMPRESSED, 15 ); print_r( $cache->get( array('myfirst','mysecond')) ); ?> Результат: Array ( [myfirst] => 1000 [mysecond] => 2000 ) Memcache::increment() Увеличивает значение указанного ключа на указанное значение. Если значение указанного ключа не числовое и не может быть конвертировано в число, то оно изменит свое значение на значение, указанное как второй параметр. Memcache::increment() не создает элемент, если он еще не существует. int Memcache::increment ( string $key [, int $value = 1 ] ) - **string $key** - ключ, значение которого нужно инкрементировать. - **int $value** - значение инкремента. <?php $cache = new Memcache(); $cache->connect('localhost', 11211, 30); $cache->set( 'someOne', 10, 0, 5 ); $cache->increment( 'someOne', 10, 0, 5 ); $cache->increment( 'someOne', 10, 0, 5 ); echo $cache->get('someOne');// выведет 30 ?> Memcache::decrement() Уменьшает значение указанного ключа на указанное значение. Аналогично Memcache::increment(), текущее значение элемента преобразуется в числовое и после этого уменьшается int Memcache::decrement ( string $key [, int $value = 1 ] ) - **string $key** - ключ, значение которого нужно декрементировать. - **int $value** - значение декремента. Memcache::delete() Удалить значение из кэша. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. string Memcache::delete ( string $key [, int $timeout = 0 ] ) - **string $key** - ключ значение, которого нужно удалить. - **int $timeout** - Этот параметр так же устарел и не поддерживается, по умолчанию равен 0 секунд. Не используйте этот параметр. Memcache::flush() Memcache::flush() удаляет полностью все каталоги и файлы из папки cache bool Memcache::flush ( void ) Пример ниже не выведет ничего. ``` connect('localhost', 11211, 30); $cache->set( 'someOne', 111, 0, 5 ); $cache->set( 'someTwo', 222, 0, 5 ); $cache->set( 'someTree', 333, 0, 5 ); $cache->flush(); //Очистит кэш print_r( $cache->get( array('someOne','someTwo','someTree')) ); ?> <h3><a name="close">Memcache::close()</a></h3> <p>Фейковая функция существует только для совместимости. Также можно использовать функцию memcache_close().</p> <pre> bool <strong>Memcache::close</strong> ( void ) </pre> memcache.rar
  4. PHPSocial

    Много сборок Vii Engine

    Только не эти сборки
  5. Last week
  6. timbios

    Сборка "В Разработке" v0.1

    Так в чём дело? Вырезай)
  7. ki92053_

    Сборка "В Разработке" v0.1

    Из неё бы страницу регистрации/входа вырезать
  8. ki92053_

    Много сборок Vii Engine

    Почему же?Можно что-то за основу взять
  9. покажи код как вставил, или в телеграм @syfer_dev скинь мне файл своего профиля
  10. да, там тоже есть эти 2 строчки
  11. а не смущает то что данный код только для страниц которые удалены!!! далее идет заблокированы, а уж дальше уже весь профиль который выводит инфо активной страницы, туда и нужно вставить
  12. У меня тут уже всё прописано.
  13. ну как бы можно прочитать инструкцию, там есть инфо о том как ставится данный тег В profile.php находим строчки $tpl->set('{name}', $user_name_lastname_exp[0]); $tpl->set('{lastname}', $user_name_lastname_exp[1]); и после них вставляем $tpl->set('{icon}', getIcon($row['user_icon']));
  14. А как сделать чтобы он тег видел?Или можете скинуть сборку с уже установленным модулем
  15. Нету вывода с profile.php, он тег не видит, поэтому и отображает тегом, а не картинкой как должно
  16. Помогите не работает уже целый час этот модуль ставлю...
  17. Семен

    Sngine & Dolphin !!! ???

    Vii с тех пор давно официальных обновлений нет. Эту CMS делали для продажи. В vii не полный ооп, в js коде чпу нет, модули написаны в разном стиле, когда кодили новости и стену сидели под чем-то.
  18. Sanchez

    Sngine & Dolphin !!! ???

    А с VII народ несколько лет не теряет время,учитывая что ни одной полноценной и развитой сети нет на просторах интернета,на базе VII,Ты хоть подумал что сказал та ?
  19. Семен

    Sngine & Dolphin !!! ???

    И все это говнокод. В будущем знания этих cms не пригодятся, только потеряешь время.
  20. Sanchez

    Sngine & Dolphin !!! ???

    присутствуют те же аспекты что и в VII, Такие как tpl,js,css,html, только немного расположены по другому
  21. Earlier
  22. Sanchez

    Sngine & Dolphin !!! ???

    Мастера и любители данной CMS Любые вопросы,предложения,И общий интерес к данной CMS
  23. Это на просторах интернета давно существует,насколько я понял CMS Дельфин,я их сравнивал как то,В итоге получилось вот что,( Sngine и Dolphin ) Это две одинаковые CMS,Незнаю кто у кого украл идею из этих двух разработчиков или это один и тотже,но точто внешний вид такойже это факт,там плюс минус дитали, но на мой взгляд Sngine более продвинута в плане администрации,без трудоемкой работы базового пользователя,а в Dolphin нужно пыжится пилить самому много,Так что както так с этими сборками,а здесь на фото плеер как в ОК,рабочий к стати и смотрится неплохо !!! Реферальная ссылка социальной сети на базе Dolphin Серавно немного видно отличия хот внешне одно и тоже https://vseti.co/register?ref=958ffd1e8
  24. KirKMS

    сборка vii engine.

    @ki92053_ На форуме есть поиск.Прежде чем постить, думаю нужно по искать https://cmstools.ru/files/file/3-vii-engine-license-nulled/
  25. ki92053_

    сборка vii engine.

    Есть у кого сборка vii engine с минимум багов?
  1. Load more activity
  • Newsletter

    block_newsletter_signup

    Sign Up
×