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

OSCHINA-MIRROR/zhaojianhui-swoolewechat

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

swooleWechat

Данный проект использует официальный фреймворк Swoole Framework. Оптимизация проводится без изменения базового фреймворка. В настоящее время основной оптимизацией является поддержка контроллеров и разделение конфигурационных файлов в зависимости от окружения.

Проект предназначен для снижения затрат на разработку сервиса WeChat, используя Swoole Framework для повышения способности системы обрабатывать большое количество одновременных запросов.

Основные характеристики: асинхронная обработка, асинхронная работа с MySQL, Redis, пулы соединений с базой данных

Адрес проекта фреймворка: (https://github.com/swoole/framework)

Умные подсказки Swoole IDE

https://github.com/eaglewu/swoole-ide-helper

Описание фреймворка Установка расширения runkit (горячая перезагрузка), некоторые методы runkit в настоящее время выдают ошибки и не могут использоваться корректно

git clone --depth=1 -v git@github.com:runkit7/runkit7.git /tmp/runkit-ext
cd /tmp/runkit-ext && phpize && ./configure && sudo make && sudo make install

Чтобы упростить разработку, потребуется добавление некоторых объявлений вручную в среде разработки для удобства автоматических подсказок IDE:Если добавлены пользовательские глобальные объекты, объявления также можно добавить самостоятельно.

#1 vendor/matyhtf/swoole_framework/libs/Swoole/Swoole.php
* @property \EasyWeChat\Foundation\Application $easywechat
* @property \App\Component\Event $myevent
* @property \App\Component\RabbitMQ $rabbitmq
* @property \App\Common\Strip $strip
* @property \App\Component\RBAC $rbac
#2 vendor/matyhtf/swoole_framework/libs/lib_config.php метод model, часть комментариев return параметров изменена следующим образом
@return \App\Component\BaseModel

Описание структуры проекта

├── apps                     Проектная директория
│   ├── classes              Директория классов, где можно создавать любые необходимые вам директории или скрипты, Swoole будет автоматически загружать и регистрировать пространство имён
│   │   ├── BaseController   Базовый контроллер
│   │   ├── Component        Директория компонентов
│   │   ├── DAO              Директория доступа к данным
│   │   ├── Handler          Директория выполнения событий, используется для запуска задач по расписанию
│   │   ├── Observer         Неизвестно
│   │   ├── Queue            Директория пользовательских очередей
│   │   ├── Router           Директория пользовательского маршрутизатора, требуется добавить Swoole::getInstance()->addRouter(new App\Router\ModuleRouter(), true); в соответствующий Server.php
│   │   └── Service          Директория бизнес-логики, специально предназначена для хранения бизнес-логики

├── WechatHandler Код обработки событий WeChat, разделённый по различным типам сообщений и событий```markdown ├── configs Директория конфигурационных файлов, некоторые конфигурации могут использоваться всеми, без необходимости их разделения в поддиректориях, конкретная реализация контролируется самостоятельно │ ├── develop Конфигурация для среды разработки │ ├── production Конфигурация для продакшена │ └── test Конфигурация для тестирования ├── controllers Директория контроллеров │ ├── Admin Директория контроллеров модуля Admin │ ├── Api Директория контроллеров модуля Api │ └── Index Директория контроллеров модуля Index ├── events Директория скриптов определения событий, требуется запустить функционал событий, подробнее см. файл server/README.md ├── factory Добавляет глобальные объекты, независимые от HTTP-запросов, чтобы данные запросов могли корректно управляться, подробнее см. файл server/README.md ├── models Директория моделей доступа к базе данных └── templates Шаблонные файлы директория ├── Admin ├── Index ├── page └── user public Директория общих файлов сайта, nginx's root конфигурация указывает на эту директорию server Директория сценариев запуска Swoole ├── database Директория с описаниями баз данных ├── pid Директория хранения PID процессов Swoole └── ssl Директория HTTPS сертификатов vendor Директория пакетов Composer

[Описание сервиса](server/README.md)
Конфигурация NGINX
-------------------
Замените свойства своего окружения `{yourDomain}` и `{yourPath}`
```sh
server {
    listen       80;
    server_name  {yourDomain}.cn;
    root         /{yourPath}/swooleproject/public/;
    #charset     koi8-r;
    access_log   logs/{yourDomain}-access.log;
    error_log    logs/{yourDomain}-error.log error;
    location / {
        index index.html;
        if (! -e $request_filename) {
            proxy_pass http://127.0.0.1:9501;
        }
    }
    location /index.html {
        proxy_pass http://127.0.0.1:9501/;
    }
    #error_page  404              /404.html;
    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
}

Создание глобального объекта

  1. Добавьте соответствующие конфигурационные файлы в apps/config/ для конфигураций.
  2. В apps/factory/ добавьте регистрируемые объекты; имя файла будет служить именем глобального объекта, например rabbitmq.php.
  3. При использовании используйте следующий синтаксис: \Swoole::$php->rabbitmq->{метод}Как создать пользовательский асинхронный обработчик

  1. Определите конфигурацию, добавив её в apps/configs/, например конфигурация события в rabbitmq.php
  2. Класс очереди сообщений, такой как apps/classes/Queue/RabbitMQ.php, этот класс должен реализовать интерфейс \Swoole\IFace\Queue
  3. Настройте конфигурацию события, заменив type в конфигурации event.php на App\Queue\RabbitMQ::class
  4. Определите имена событий, добавив обработчики событий в apps/events/
  5. Обработка событий, создайте классы, реализующие интерфейс Swoole\IFace\EventHandler в apps/classes/Handler/
  6. Вызов события, используйте следующую команду: Swoole::$php->event->trigger("hello2", array('key1' => 'val1', 'key2' => 'val2'));Запуск HTTP-сервера

Выполнение следующего скрипта автоматически отобразит справочную информацию:

php server/appServer.php --help

Запуск асинхронной службы обработки

Выполнение следующего скрипта автоматически отобразит справочную информацию:

php server/eventWorkersServer.php --help

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

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

Введение

Описание недоступно Развернуть Свернуть
Отмена

Обновления

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

Участники

все

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

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