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

OSCHINA-MIRROR/manaphp-manaphp

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 8.6 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 26.11.2024 02:48 2ae3f2b

ManaPHP — что это?

ManaPHP создан с целью популяризации PHP-корутин и содействия развитию PHP. В качестве базового слоя используется расширение Swoole, а разработка ведётся вокруг среды с постоянным хранением в памяти. ManaPHP предоставляет множество готовых к использованию компонентов для разработки Console/Http.

ManaPHP стремится к простоте и пытается сделать так, чтобы больше разработчиков могли наслаждаться высокой производительностью и совершенно новым опытом программирования, которые обеспечивает Swoole при более низких затратах на обучение.

Сравнение с традиционными MVC-фреймворками

ManaPHP поддерживает три режима выполнения: традиционный (Apache/FPM), с постоянным хранением и корутинами. Последние два режима обладают преимуществами в производительности, недоступными традиционным фреймворкам.

Режим с постоянным хранением: в отличие от традиционных PHP-фреймворков, ManaPHP не требует WEB-сервера (Apache/PHP-FPM). Фреймворк включает высокопроизводительный HTTP-сервер, разработанный на основе Swoole\Http\Server. В традиционных PHP-приложениях объекты уничтожаются после завершения скрипта, но в ManaPHP компоненты фреймворка постоянно хранятся в памяти, что снижает потери производительности из-за повторного создания и уничтожения объектов.

Корутиновый режим: после запуска корутин один процесс может параллельно обрабатывать N запросов, не блокируя процесс, как в традиционном режиме или режиме с постоянным хранением. Добавление каждого нового запроса требует лишь небольшого увеличения потребления памяти. Благодаря параллельной обработке корутинами обычно достаточно настроить количество процессов, равное количеству ядер процессора, что приводит к снижению накладных расходов на переключение между процессами.

Сравнение с другими фреймворками на базе Swoole

  • ManaPHP обладает высокой лёгкостью и простой архитектурой, а его исходный код легко читается и модифицируется.
  • Разработчики могут создавать приложения без необходимости разбираться в Swoole.
  • Фреймворк предлагает множество готовых компонентов, упрощающих разработку.
  • ManaPHP является единственным фреймворком, который позволяет одновременно поддерживать традиционный режим (Apache/FPM), режим с постоянным хранением и режим корутин без изменения кода. Пользователи могут постепенно изучать и выбирать подходящий режим для своей команды.
  • Использует собственные корутины Swoole и новейшую технологию однократной корутинизации PHP Streams.

Позиционирование фреймворка

В то время как другие Swoole-фреймворки ориентированы на крупные и средние команды и обширные кластеры PHP-приложений, ManaPHP стремится продвигать технологии среди множества малых и средних предприятий и стартапов. Мы объединяем многочисленные функции Swoole в удобную форму, делая их доступными для широкого круга разработчиков, позволяя им создавать высоконагруженные системы и делая Swoole доступным не только для опытных программистов.

Основные характеристики

  • Командная строка: предоставляет инфраструктуру для быстрой разработки консольных приложений.
  • HTTP: режим с постоянным хранением, корутины и использование, аналогичное традиционным MVC-фреймворкам.
  • Высокая производительность: благодаря минималистичной архитектуре, движку Swoole и корутинам, превосходит по производительности такие C-расширения, как Phalcon и Yaf.
  • Сервер: встроенный сервер, не требующий внешних контейнеров вроде Apache/PHP-FPM.
  • Корутины: использует собственные корутины Swoole и новейшие технологии однократной корутинизации PHP Streams.
  • Пул соединений: компоненты Db/Redis по умолчанию используют пул соединений.
  • Длинные соединения: поддерживают длинные соединения через процессы для Db/Redis.
  • Внедрение зависимостей: реализует простую и удобную систему внедрения зависимостей, подобную Phalcon и другим фреймворкам.
  • Компоненты: основан на компонентной структуре и включает множество готовых компонентов.
  • Промежуточное ПО: удобное для регистрации и способное лучше фильтровать и обрабатывать запросы.
  • Маршрутизация: реализована на основе регулярных выражений, отличается высокой производительностью и простотой настройки.
  • Представления: использует эффективный шаблонизатор, подобный Blade, с использованием предварительной компиляции, обеспечивая более высокую скорость по сравнению с нативным PHP.
  • Автозагрузка: поддерживает Composer, облегчая использование сторонних библиотек.

Документация по разработке

Руководство по разработке ManaPHP:

Требования к среде

  • PHP >= 8.0.2
  • Swoole >= 4.6.7

Быстрый старт

Рекомендуется использовать composer для установки.

composer create-project manaphp/app-api --prefer-dist

Запуск сервера:

Далее включите HTTP-сервер.

php /var/www/html/public/index.php

Тестирование доступа (откройте новую командную строку):

curl http://127.0.0.1:9501/api

Скачать

Выпуски ManaPHP доступны по ссылке:

ManaPHP Releases

Техническая коммуникация

Официальная группа QQ: 554568116

Лицензия

The MIT License (MIT)

Опубликовать ( 0 )

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

1
https://api.gitlife.ru/oschina-mirror/manaphp-manaphp.git
git@api.gitlife.ru:oschina-mirror/manaphp-manaphp.git
oschina-mirror
manaphp-manaphp
manaphp-manaphp
master