
Présentation
Qu'est-ce que Swoft?
Swoft est un framework de coroutine de microservices hautes performances PHP. Il est publié depuis de nombreuses années et est devenu le meilleur choix pour php. Il peut être comme Go, un serveur Web coroutine intégré et un client coroutine commun et réside en mémoire, indépendamment du PHP-FPM traditionnel. Il existe des opérations de langage Go similaires, similaires aux annotations flexibles du framework Spring Cloud.
Grâce à trois années d'accumulation et d'exploration de directions, Swoft a fait de Swoft le Spring Cloud dans le monde PHP, qui est le meilleur choix pour le cadre hautes performances et la gestion des microservices de PHP.
Ă€ propos du didacticiel
J'écris un article en apprenant Swoft , cela peut aider quelqu'un à apprendre facilement Swoft
Github
Si vous avez des problèmes, vous pouvez soumettre le problème via github.
https://github.com/swoft-cloud/swoft
Discuter
Vous pouvez discuter du problème ici.
Discutez de la communauté
Tutoriel
Prérequis
- Centos7 +
- Compositeur PHP
- Docker-ce
- Docker-compose
Installer les exigences
Docker-ce sur centos
udo yum install -y yum-utils \device-mapper-persistent-data \lvm2 sudo yum-config-manager \--add-repo \https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo sudo yum makecache fast sudo yum install docker-ce sudo systemctl enable docker sudo systemctl start docker sudo usermod -aG docker $USER newgrp - docker sudo systemctl restart docker
Docker-compose
su root curl -L https://get.daocloud.io/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose
Php
su root rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm yum -y install php71w-fpm
Compositeur
su root curl -sS https://getcomposer.org/installer | php mv composer.phar /usr/local/bin/composer
Utilisation
Créer un projet:
composer create-project swoft/swoft Swoft
Structure du projet:
├── app/ ----- root directory │ ├── Annotation/ ----- annotation │ ├── Aspect/ ----- aop │ ├── Common/ ----- common util │ ├── Console/ ----- command │ ├── Exception/ ----- exception │ │ └── Handler/ ----- exception handler │ ├── Http/ ----- HTTP Demo │ │ ├── Controller/ │ │ └── Middleware/ │ ├── Helper/ ----- helper │ ├── Listener/ ----- listener │ ├── Model/ │ │ ├── Dao/ │ │ ├── Data/ │ │ ├── Logic/ │ │ └── Entity/ │ ├── Rpc/ ----- RPC Demo │ │ └── Service/ │ │ └── Middleware/ │ ├── WebSocket/ ----- WebSocket Demo │ │ ├── Chat/ │ │ ├── Middleware/ │ │ └── ChatModule.php │ ├── Tcp/ ----- TCP Demo │ │ └── Controller/ │ ├── Application.php ----- Application │ ├── AutoLoader.php ----- Autoloader │ └── bean.php ├── bin/ │ ├── bootstrap.php │ └── swoft ----- entry file ├── config/ ----- config directory │ ├── base.php │ └── db.php ├── public/ ----- public directory ├── resource/ ----- resource directory │ ├── language/ │ └── view/ ├── runtime/ ----- runtime directory ├── test/ ----- unit directory │ └── bootstrap.php ├── composer.json ├── phar.build.inc └── phpunit.xml.dist ├── .env ----- env config ├── docker-compose.yml └── phpunit.xml.dist
Mettre Ă jour docker-compose.yaml:
version: "3" services: redis: image: redis:alpine container_name: redis ports: - 6379:6379 volumes: - redisdb:/data - /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime swoft: image: swoft/swoft # for local develop command: php -S 127.0.0.1:13300 container_name: swoft-test environment: - APP_ENV=dev - TIMEZONE=Asia/Shanghai ports: - "18306:18306" - "18307:18307" - "18308:18308" volumes: - ./:/var/www/swoft mysql: image: mysql container_name: mysql-srv environment: - MYSQL_ROOT_PASSWORD=123456 ports: - "3306:3306" volumes: - mysqldb:/var/lib/mysql volumes: redisdb: mysqldb:
Démarrez swoft by Docker compose:
docker-compose up -d
Vous cliquez sur http://127.0.0.1:18306 , vous verrez la page suivante.

Github
Si vous avez des problèmes, vous pouvez soumettre le problème via github.
https://github.com/swoft-cloud/swoft
Discuter
Vous pouvez discuter du problème ici.
Discutez de la communauté