Watch Star Fork

GVPswoft / swoftPHPApache-2.0

Sign up for free
Explore and code with more than 2 million developers,Free private repositories !:)
Sign up
首个基于 Swoole 原生协程的新时代 PHP 高性能协程全栈框架,内置协程网络服务器及常用的协程客户端,常驻内存,不依赖传统的 PHP-FPM,全异步非阻塞 IO 实现,以类似于同步客户端的写法实现异步客户端的使用,没有复杂的异步回调,没有繁琐的 yield, 有类似 Go 语言的协程、灵活的注解、强大的全局依赖注入容器、完善的服务治理、灵活强大的 AOP、标准的 PSR 规范实现等等,可以用于构建高性能的Web系统、API、中间件、基础服务等等。 https://www.swoft.org/
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README.md 5.79 KB

    swoft

Latest Version Build Status Php Version Swoole Version Hiredis Version Swoft Doc Swoft License

中文说明

Introduction

The first high-performance PHP coroutine full-stack componentization framework based on Swoole native coroutine, built-in coroutine web server and commonly-used coroutine client, resident memory, which has no dependency on PHP-FPM, asynchronous non-blocking IO implementation, similar to synchronous client style of writing to achieve the use of asynchronous clients, without complex asynchronous callback, no tedious yield, similar Go language coroutines, flexible annotations framework, a powerful global dependency injection container base on annotations, and great service governance , flexible and powerful AOP, PSR specification implementation, etc., could be used to build high-performance Web systems, APIs, middleware, basic services, microservice and so on.

  • Base on Swoole extension
  • Built-in HTTP, TCP, WebSocket Server
  • Poweful AOP (Aspect Oriented Programming)
  • Flexible and comprehensive annotations framework
  • Global dependency injection container
  • PSR-7 based HTTP message implementation
  • PSR-14 based event manager
  • PSR-15 based middleware
  • PSR-16 based cache design
  • Scalable high performance RPC
  • Great service governance, fallback, load balance, service registration and discovery
  • Database ORM
  • Universal connection pool
  • Mysql, Redis, RPC, HTTP Coroutine Clients
  • Coroutine driver client and blocking driver client seamlessly switch automatically
  • Coroutine and asynchronous task delivery
  • Custom user process
  • RESTful support
  • Internationalization (i18n) support
  • High performance router
  • Fast and flexible parameter validator
  • Alias mechanism
  • Powerful log component
  • Cross-platform application auto-reload

Document

Chinese Document
English Document Not yet, please help us write it.

QQ Group1: 548173319(Full)
QQ Group2: 778656850

Environmental Requirements

  1. PHP 7.0 +
  2. Swoole 2.1.3 +, coroutine and async redis client options are required
  3. Hiredis
  4. Composer

Install

Manual Installation

  • Clone project
  • Install requires composer install

Install by Composer

  • composer create-project swoft/swoft swoft

Install by Docker

  • docker run -p 80:80 swoft/swoft

Install by Docker-Compose

  • cd swoft
  • docker-compose up

Configuration

If automatically copied .env file fails when composer install was executed, the .env.example that in root directory can be manually copied and named .env. Note that composer update will not trigger related copy operations.

# Server
PFILE=/tmp/swoft.pid
PNAME=php-swoft
TCPABLE=true
CRONABLE=false
AUTO_RELOAD=true

# HTTP
HTTP_HOST=0.0.0.0
HTTP_PORT=80

# WebSocket
WS_ENABLE_HTTP=true

# TCP
TCP_HOST=0.0.0.0
TCP_PORT=8099
TCP_PACKAGE_MAX_LENGTH=2048
TCP_OPEN_EOF_CHECK=false

# Crontab
CRONTAB_TASK_COUNT=1024
CRONTAB_TASK_QUEUE=2048

# Settings
WORKER_NUM=1
MAX_REQUEST=10000
DAEMONIZE=0
DISPATCH_MODE=2
LOG_FILE=@runtime/swoole.log
TASK_WORKER_NUM=1

Management

Help command

[root@swoft]# php bin/swoft -h
 ____                __ _
/ ___|_      _____  / _| |_
\___ \ \ /\ / / _ \| |_| __|
 ___) \ V  V / (_) |  _| |_
|____/ \_/\_/ \___/|_|  \__|

Usage:
  php bin/swoft {command} [arguments ...] [options ...]

Commands:
  entity  The group command list of database entity
  gen     Generate some common application template classes
  rpc     The group command list of rpc server
  server  The group command list of http-server
  ws      There some commands for manage the webSocket server

Options:
  -v, --version  show version
  -h, --help     show help

Start HTTP Server

// Start HTTP Server
php bin/swoft start

// Start Daemonize HTTP Server
php bin/swoft start -d

// Restart HTTP server
php bin/swoft restart

// Reload HTTP server
php bin/swoft reload

// Stop HTTP server
php bin/swoft stop

Start WebSocket Server

Start WebSocket Server, optional whether to support HTTP processing.

// Star WebSocket Server
php bin/swoft ws:start

// Start Daemonize WebSocket Server
php bin/swoft ws:start -d

// Restart WebSocket server
php bin/swoft ws:restart

// Reload WebSocket server
php bin/swoft ws:reload

// Stop WebSocket server
php bin/swoft ws:stop

Start RPC Server

Start an independent RPC Server.

// Start RPC Server
php bin/swoft rpc:start

// Start Daemonize RPC Server
php bin/swoft rpc:start -d

// Restart RPC Server
php bin/swoft rpc:restart

// Reload RPC Server
php bin/swoft rpc:reload

// Stop RPC Server
php bin/swoft rpc:stop

Changelog

Changelog

License

Swoft is an open-source software licensed under the LICENSE

Comments ( 19 )

You need to Sign in for post a comment

Help Search