1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/a07061625-swooleyaf

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

ip: текущий внутренний или внешний IP-адрес сервера port: порт, на котором сервер ожидает клиентские подключения, по умолчанию 2379

nohup etcd --listen-client-urls http://ip:port --advertise-client-urls http://ip:port >/dev/null &

Mongodb документ

https://docs.mongodb.com/php-library/

XDebug анализ кода

— По умолчанию отключены автоматическое отслеживание стека и автоматический анализ производительности. — Включите отслеживание стека. Если это запрос GET, необходимо добавить параметр XDEBUG_TRACE в URL. Если это POST-запрос, необходимо добавить XDEBUG_TRACE в тело запроса. — Включите анализ производительности. Если это GET-запрос, добавьте параметр XDEBUG_PROFILE в URL. Если это POST-запрос, добавьте XDEBUG_PROFILE в тело запроса.

Ссылка

http://blog.csdn.net/why_2012_gogo/article/details/51170609

Визуализирующие инструменты

— KCacheGrind (Linux) — QCacheGrind (Windows)

Анализ производительности XHPROF

Пример использования

См. файл demo_xhprof.php

Развязка кода

Используйте паттерн «Наблюдатель» для развязки бизнес-кода. Подробнее см. модуль отправки электронной почты.

Подпись интерфейса

Добавьте параметр _sign в адрес запроса. Это строка из 48 символов, состоящая из цифр и букв. Подпись проверяется только в модуле API.

Периодические задачи

Подробности см. в ветке task.

Пул соединений с базой данных

https://github.com/swoole/php-cp — расширение пула соединений. — https://github.com/swoole/swoole-src/blob/master/examples/mysql_proxy_server.php — версия swoole.

Обработка изображений

https://github.com/kosinix/grafika — пример использования.

Поддержка аспектов

Примечание: — Класс аспекта должен наследоваться от SyAspect\BaseAspect. — Аспектные аннотации можно добавлять только к методам контроллера. — Поддерживаемые аспектные аннотации: SyAspect (аспект обёртки), SyAspectBefore (предыдущий аспект), SyAspectAfter (последующий аспект).

Аспект обёртки

/**
 * Вход
 * @SyAspect-\SyAspect\Demo
 */
public function loginAction()

Предыдущий аспект

/**
 * Вход
 * @SyAspectBefore-\SyAspect\Demo
 */
public function loginAction()

Последующий аспект

/**
 * Вход
 * @SyAspectAfter-\SyAspect\Demo
 */
public function loginAction()

Обработка сообщений

Добавление данных сообщения

$handlerType = \SyConstant\Project::MESSAGE_HANDLER_TYPE_SMS_DAYU;
$queueType = \SyConstant\Project::MESSAGE_QUEUE_TYPE_REDIS;
// Конкретный формат данных см. в методе checkMsgData соответствующего производителя сообщений, пространство имён — \SyMessageHandler\Producers
$data = [
    'receivers' => [
        '12233334444'
    ],
    'template_id' => 'test11233',
    'template_sign' => 'Подпись теста',
    'template_params' => [
        'code' => '123456'
    ]
];
$addRes = \DesignPatterns\Singletons\MessageHandlerSingleton::getInstance()->addMsgData($handlerType, $data, $queueType);
// Добавить addRes в базу данных. msg_id — идентификатор сообщения, который можно использовать как первичный ключ для записей обработки сообщений и просмотра истории обработки сообщений.

Обработка данных сообщений (тип очереди сообщений должен совпадать с типом при добавлении)

$queueType = \SyConstant\Project::MESSAGE_QUEUE_TYPE_REDIS;
$msgData = \DesignPatterns\Singletons\MessageHandlerSingleton::getInstance()->getMsgData($queueType);
if (!empty($msgData)) {
    try {
        $handlerRes = \DesignPatterns\Singлетны\MessageHandlerSingleton::getInstance()->invokeMsg($msgData);
    } catch (Exception $e) {
        \SyLog\Log::error($e->getMessage(), $e->getCode(), $e->getTraceAsString());
        $handlerRes = [
            'code' => 9999,
            'msg' => $e->getMessage()
        ];
    }
    // Изменить результат обработки сообщения на основе msg_id и handlerRes.

}

Фильтр Блума

Инициализация

Измените метод initFilters в libs_project/SyTrait/BloomTrait. Можно самостоятельно инициализировать все фильтры, следуя существующему коду.

Добавление данных в фильтр Блума

$cacheKey = 'test1234';
\DesignPatterns\Factories\CacheSimpleFactory::getRedisInstance()->set($cacheKey, 123);
\DesignPatterns\Singletons\BloomSingleton::getInstance()->addKey('a01', $cacheKey);

Использование фильтра Блума

$cacheKey = 'test1234';
$existTag = \DesignPatterns\Singletons\BloomSingleton::getInstance()->existKey('a01', $cacheKey);
if ($existTag) {
    $cacheVal = \DesignPatterns\Factories\CacheSimpleFactory::getRedisInstance()->get($cacheKey);
} else {
    echo 'Неверное имя ключа';
}

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

На основе PHP7, распределённая микросервисная структура с использованием swoole и yaf. Развернуть Свернуть
BSD-3-Clause
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/a07061625-swooleyaf.git
git@api.gitlife.ru:oschina-mirror/a07061625-swooleyaf.git
oschina-mirror
a07061625-swooleyaf
a07061625-swooleyaf
master