
Pendahuluan
Apa itu Swoft?
Swoft adalah kerangka kerja coroutine microservice kinerja tinggi PHP. Ini telah diterbitkan selama bertahun-tahun dan telah menjadi pilihan terbaik untuk php. Ini bisa seperti Go, server web coroutine bawaan dan klien coroutine umum dan ada dalam memori, tidak tergantung pada PHP-FPM tradisional. Ada operasi Go bahasa yang serupa, mirip dengan anotasi fleksibel kerangka kerja Cloud Spring.
Melalui tiga tahun akumulasi dan eksplorasi arah, Swoft telah menjadikan Swoft Spring Cloud di dunia PHP, yang merupakan pilihan terbaik untuk kerangka kerja berkinerja tinggi PHP dan manajemen layanan mikro.
Tentang tutorial
Saya menulis artikel dengan mempelajari Swoft , ini dapat membantu seseorang untuk mudah belajar swoft
Github
Jika Anda memiliki beberapa masalah, Anda dapat mengirimkan masalah dengan github.
https://github.com/swoft-cloud/swoft
Diskusikan
Anda dapat mendiskusikan masalah di sini.
Diskusikan komunitas
Tutorial
Persyaratan
- Centos7 +
- Komposer PHP
- Docker-ce
- Susunan docker
Instal persyaratan
Docker-ce pada 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
Susunan docker
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
Komposer
su root curl -sS https://getcomposer.org/installer | php mv composer.phar /usr/local/bin/composer
Penggunaan
Buat proyek:
composer create-project swoft/swoft Swoft
Struct proyek:
├── 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
Upate 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:
Mulai swoft oleh komposisi Docker:
docker-compose up -d
Anda mengklik http://127.0.0.1:18306 , akan melihat halaman berikut.

Github
Jika Anda memiliki beberapa masalah, Anda dapat mengirimkan masalah dengan github.
https://github.com/swoft-cloud/swoft
Diskusikan
Anda dapat mendiskusikan masalah di sini.
Diskusikan komunitas