PHP Microservice Framework: ุจูŠุฆุฉ ุงู„ุชุทูˆูŠุฑ ู„ู€ Swoft


ู…ู‚ุฏู…ุฉ


ู…ุง ู‡ูˆ SwoftุŸ


Swoft ู‡ูˆ ุฅุทุงุฑ PHOTO microservice ุนุงู„ูŠ ุงู„ุฃุฏุงุก. ุชู… ู†ุดุฑู‡ ู„ุณู†ูˆุงุช ุนุฏูŠุฏุฉ ูˆุฃุตุจุญ ุงู„ุฎูŠุงุฑ ุงู„ุฃูุถู„ ู„ู€ php. ูŠู…ูƒู† ุฃู† ูŠูƒูˆู† ู…ุซู„ Go ุŒ ุฎุงุฏู… ุงู„ูˆูŠุจ coroutine ุงู„ู…ุฏู…ุฌ ูˆุงู„ุนู…ูŠู„ coroutine ุงู„ู…ุดุชุฑูƒ ูˆูŠู‚ูŠู… ููŠ ุงู„ุฐุงูƒุฑุฉ ุŒ ู…ุณุชู‚ู„ุฉ ุนู† PHP-FPM ุงู„ุชู‚ู„ูŠุฏูŠุฉ. ู‡ู†ุงูƒ ุนู…ู„ูŠุงุช ู…ู…ุงุซู„ุฉ ู„ู„ุบุฉ Go ุŒ ู…ุดุงุจู‡ุฉ ู„ู„ุดุฑูˆุญ ุงู„ู…ุฑู†ุฉ ู„ุฅุทุงุฑ Spring Cloud.


ู…ู† ุฎู„ุงู„ ุซู„ุงุซ ุณู†ูˆุงุช ู…ู† ุงู„ุชุฑุงูƒู… ูˆุงุณุชูƒุดุงู ุงู„ุงุชุฌุงู‡ุงุช ุŒ ุฌุนู„ุช Swoft Swoft the Spring Cloud ููŠ ุนุงู„ู… PHP ุŒ ูˆู‡ูˆ ุฃูุถู„ ุฎูŠุงุฑ ู„ุฅุทุงุฑ PHP ุนุงู„ูŠ ุงู„ุฃุฏุงุก ูˆุฅุฏุงุฑุฉ ุงู„ุฎุฏู…ุงุช ุงู„ุตุบูŠุฑุฉ.


ุญูˆู„ ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุชุนู„ูŠู…ูŠ


ุฃู†ุง ุฃูƒุชุจ ู…ู‚ุงู„ุฉ ุนู† ุทุฑูŠู‚ ุชุนู„ู… Swoft ุŒ ูŠู…ูƒู† ุฃู† ุชุณุงุนุฏ ุดุฎุต ู…ุง ู„ุชุนู„ู… ุณู‡ู„ุฉ swoft


ุฌูŠุซุจ


ุฅุฐุง ูƒุงู†ุช ู„ุฏูŠูƒ ุจุนุถ ุงู„ู…ุดูƒู„ุงุช ุŒ ููŠู…ูƒู†ูƒ ุฅุฑุณุงู„ ุงู„ู…ุดูƒู„ุฉ ุจูˆุงุณุทุฉ github.


https://github.com/swoft-cloud/swoft


ุจุญุซ


ูŠู…ูƒู†ูƒ ู…ู†ุงู‚ุดุฉ ุงู„ู…ุดูƒู„ุฉ ู‡ู†ุง.


ู…ู†ุงู‚ุดุฉ ุงู„ู…ุฌุชู…ุน


ุงู„ุจุฑู†ุงู…ุฌ ุงู„ุชุนู„ูŠู…ูŠ


ู…ุชุทู„ุจุงุช


  • Centos7 +
  • PHP ุงู„ู…ู„ุญู†
  • ุนุงู…ู„ ุงู„ู…ูŠู†ุงุก-ู…
  • ุนุงู…ู„ ุงู„ู…ูŠู†ุงุก-ูŠุคู„ู

ุชุซุจูŠุช ุงู„ู…ุชุทู„ุจุงุช


ุนุงู…ู„ ุงู„ู…ูŠู†ุงุก ู… ุนู„ู‰ 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 

ุนุงู…ู„ ุงู„ู…ูŠู†ุงุก-ูŠุคู„ู


 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 

ู…ู„ุญู†


 su root curl -sS https://getcomposer.org/installer | php mv composer.phar /usr/local/bin/composer 

ุงุณุชุนู…ุงู„


ุฅู†ุดุงุก ู…ุดุฑูˆุน:


 composer create-project swoft/swoft Swoft 

ู‡ูŠูƒู„ ุงู„ู…ุดุฑูˆุน:


 โ”œโ”€โ”€ 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: 

ุจุฏุก ุชุดุบูŠู„ swoft ุจูˆุงุณุทุฉ Docker:


 docker-compose up -d 

ุงู„ู†ู‚ุฑ ููˆู‚ http://127.0.0.1:18306 ุŒ ุณุชุฑู‰ ุงู„ุตูุญุฉ ุงู„ุชุงู„ูŠุฉ.



ุฌูŠุซุจ


ุฅุฐุง ูƒุงู†ุช ู„ุฏูŠูƒ ุจุนุถ ุงู„ู…ุดูƒู„ุงุช ุŒ ููŠู…ูƒู†ูƒ ุฅุฑุณุงู„ ุงู„ู…ุดูƒู„ุฉ ุจูˆุงุณุทุฉ github.


https://github.com/swoft-cloud/swoft


ุจุญุซ


ูŠู…ูƒู†ูƒ ู…ู†ุงู‚ุดุฉ ุงู„ู…ุดูƒู„ุฉ ู‡ู†ุง.


ู…ู†ุงู‚ุดุฉ ุงู„ู…ุฌุชู…ุน

Source: https://habr.com/ru/post/ar480904/


All Articles