gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区

站長資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

PHP之微服務(wù)協(xié)程框架Swoft

PHP之微服務(wù)協(xié)程框架Swoft

簡介

  有了swoole這樣強(qiáng)大的擴(kuò)展之后,越來越多的框架都是基于swoole被開發(fā)出來,Swoft就是其中一款不錯(cuò)的PHP框架。Swoft 是一款基于 Swoole 原生協(xié)程的注解式框架,自帶常駐內(nèi)存以及 Swoole 其它功能的封裝。swoft中內(nèi)置了協(xié)程客戶端。同時(shí)swoft里面有了很多新的概念,比如Aop等。

  官網(wǎng)地址:https://www.swoft.org/

使用Swoft框架注意事項(xiàng)

  因?yàn)镾woft是基于Swoole,所以和普通的PHP框架還是很不一樣的,有些是需要注意的。

  1.不要再代碼中執(zhí)行sleep()以及其他睡眠函數(shù),這樣會(huì)導(dǎo)致整個(gè)進(jìn)程阻塞。

  2.不要使用exit/die函數(shù),這樣會(huì)導(dǎo)致worker進(jìn)程直接退出。

  3.進(jìn)程隔離需要注意的,當(dāng)修改了全局變量的值,會(huì)不生效,因?yàn)槿肿兞吭诓煌倪M(jìn)程中,內(nèi)存空間是隔離的。使用Swoft框架需要了解進(jìn)程隔離問題。不同的進(jìn)程中PHP變量不是共享,即便是全局變量。如果不同的進(jìn)程需要共享數(shù)據(jù),可以使用Redis,Mysql,消息隊(duì)列,文件,Swoole/Table,APCu(php自帶的緩存擴(kuò)展),shmget(進(jìn)程通信(IPC)共享內(nèi)存)等工具。同時(shí)不同進(jìn)程的文件句柄也是隔離的,所以在A進(jìn)程創(chuàng)建的Socker連接打開的文件在B進(jìn)程內(nèi)是無效的。

  4.進(jìn)程克隆,當(dāng)server啟動(dòng)時(shí)候,主進(jìn)程會(huì)克隆當(dāng)前進(jìn)程狀態(tài),此后開始進(jìn)程內(nèi)的數(shù)據(jù)互相獨(dú)立,互不影響。

  5.不要再控制器寫基類來寫公共的變量,這樣會(huì)造成數(shù)據(jù)污染,當(dāng)下一個(gè)請求進(jìn)來依然會(huì)請求到這個(gè)變量,因?yàn)槌qv內(nèi)存并且單利所以不會(huì)釋放掉。

  官方文檔也有提示

PHP之微服務(wù)協(xié)程框架Swoft

https://www.swoft.org/documents/v2/dev-guide/dev-note/

Swoft框架安裝

  安裝環(huán)境要求:

    1. gcc版本大于等于4.8。

    2. PHP版本大于7.1。

    3. Composer包管理工具。

    4. 安裝Redis異步客戶端hiredis,在最新版本的Swoole4.2.6之后已經(jīng)內(nèi)置了,不需要安裝。

    5. Swoole擴(kuò)展,這個(gè)是必須的。

    6.鏈接迭代器依賴庫pcre。

    7. Swoole需要開啟協(xié)程和異步redis。

  安裝

git clone https://github.com/swoft-cloud/swoft cd swoft composer install cp .env.example .env   #編輯 .env 文件,根據(jù)需要調(diào)整相關(guān)環(huán)境配置

如果出現(xiàn)下面錯(cuò)誤說明redis擴(kuò)展沒有,因?yàn)閟woft需要redis擴(kuò)展。

PHP之微服務(wù)協(xié)程框架Swoft

當(dāng)然使用docker方式會(huì)更加簡單,執(zhí)行下面命令

docker run -p 18306:18306 --name swoft swoft/swoft
PHP之微服務(wù)協(xié)程框架Swoft

在瀏覽器中輸入 http://127.0.0.1:18306 就可以打開Swoft本地頁面。

關(guān)閉和開啟運(yùn)行命令 docker start/stop swoft

Swoft目錄及文件說明

進(jìn)入容器查看swoft目錄

PHP之微服務(wù)協(xié)程框架Swoft
root@880c142615c3:/var/www/swoft# tree -L 2 . |-- CONTRIBUTING.md |-- Dockerfile |-- LICENSE |-- README.md |-- README.zh-CN.md |-- app                        #應(yīng)用目錄 |   |-- Annotation        #定義注解相關(guān)目錄|   |-- Application.php |   |-- Aspect |   |-- AutoLoader.php |   |-- Common |   |-- Console |   |-- Exception |   |-- Helper          #助手函數(shù)目錄 |   |-- Http |   |-- Listener         #事件監(jiān)聽器目錄|   |-- Migration |   |-- Model           #模型、邏輯等代碼目錄|   |-- Process |   |-- Rpc            #RPC服務(wù)代碼目錄|   |-- Task            #任務(wù)投遞管理目錄,這里可以做異步任務(wù)或者定時(shí)器的工作 |   |-- Tcp |   |-- Validator |   |-- WebSocket         #WebSocket服務(wù)代碼目錄|   `-- bean.php |-- bin |   |-- bootstrap.php |   `-- swoft            #Swoft入口文件|-- composer.cn.json |-- composer.json |-- composer.lock |-- config |   |-- base.php |   |-- db.php |   `-- dev |-- database |   |-- AutoLoader.php |   `-- Migration |-- dev.composer.json |-- docker-compose.yml |-- phpstan.neon.dist |-- phpunit.xml |-- public |   |-- favicon.ico |   `-- image |-- resource                   #應(yīng)用資源目錄|   |-- language |   `-- views |-- runtime             #臨時(shí)文件目錄(日志、上傳文件、文件緩存等)|   |-- logs |   |-- sessions |   |-- swoft.command |   `-- swoft.pid |-- test              #單元測試目錄    |   |-- apitest |   |-- bootstrap.php |   |-- run.php |   |-- testing |   `-- unit `-- vendor     |-- autoload.php     |-- bin     |-- composer     |-- doctrine     |-- monolog     |-- myclabs     |-- nikic     |-- phar-io     |-- php-di     |-- phpdocumentor     |-- phpoption     |-- phpspec     |-- phpunit     |-- psr     |-- sebastian     |-- swoft     |-- symfony     |-- text     |-- theseer     |-- toolkit     |-- vlucas     `-- webmozart
PHP之微服務(wù)協(xié)程框架Swoft

SwoftBean容器

   Bean容器是Swoft的核心,每一個(gè)Bean就是一個(gè)類對象的實(shí)例,容器就是一個(gè)工廠來存放和管理Bean。在HttpServer啟動(dòng)時(shí)候會(huì)掃描帶有@Bean注解的類。傳統(tǒng)的PHP是沒有常駐內(nèi)存的,每次請求都會(huì)重新初始化各種資源,每個(gè)對象也要重新實(shí)例化去申請內(nèi)存,處理完請求后又被消耗,十分浪費(fèi)資源。而Swoft在HttpServer啟動(dòng)后會(huì)將這些對象實(shí)例化并存放在內(nèi)存中,下次請求就直接取出使用,減少對象創(chuàng)建資源的消耗。

   Bean容器底層是一個(gè)BeanFactory管理容器(Container)。

Swoft注解(Annotations)機(jī)制

注解是Swoft里面很多重要功能特別是AOP,IoC容器的基礎(chǔ)。熟悉Java的朋友應(yīng)該更加了解注解。 

那么注解是什么樣呢?下面是Swoft的一部分代碼在類、方法或成員變量上方的注釋部分就有注解。

PHP之微服務(wù)協(xié)程框架Swoft
namespace AppTcpController;  use AppTcpMiddlewareDemoMiddleware; use SwoftTcpServerAnnotationMappingTcpController; use SwoftTcpServerAnnotationMappingTcpMapping; use SwoftTcpServerRequest; use SwoftTcpServerResponse; use function strrev;  /**  * Class DemoController  *  * @TcpController(middlewares={DemoMiddleware::class})      #這個(gè)就是注解  */ class DemoController {     /**      * @TcpMapping("list", root=true)      * @param Response $response      */     public function list(Response $response): void     {         $response->setData('[list]allow command: list, echo, demo.echo');     }
PHP之微服務(wù)協(xié)程框架Swoft

  注解是什么呢?有什么作用呢?

    注解其實(shí)是通過反射把注釋當(dāng)成代碼的一部分,PHP可以通過ReflectionClass來獲取一個(gè)類的信息,從而了解類里的信息,比如獲取類中的所有方法、成員變量,并包括私有方法等,并根據(jù)這些信息實(shí)現(xiàn)一些操作。像很多PHP框架,比如laravel框架就利用PHP的反射機(jī)制來實(shí)現(xiàn)依賴注入。

    其實(shí)注解是配置的另一種方式,這里注解就可以起到一個(gè)配置作用。比如定義路由,定義配置定時(shí)任務(wù),權(quán)限控制等。

    在Swoft中要是使用注解,需引入相關(guān)注解(Annotation)類,且必須以 /** 開始并以 */ 結(jié)束,否則會(huì)導(dǎo)致無法解析!

Aop切面編程

  Aop介紹

    1. Aspect(切面):通常是一個(gè)類,里面可以定義切入點(diǎn)和通知。

    2. JointPoint(連接點(diǎn)):程序執(zhí)行過程中明確的點(diǎn),一般是方法的調(diào)用。

    3. Advice(通知):Aop在特定的切入點(diǎn)執(zhí)行的增強(qiáng)處理,有before,after,afterReturning,afterThrowing,around。

    4. Pointcut(切入點(diǎn)):就是嗲有通知的連接點(diǎn),在程序中主要體現(xiàn)為書寫切入點(diǎn)表達(dá)式。

   Swoft新版的Aop設(shè)計(jì)建立在PHP Parser上面。

    PHP-Parser的項(xiàng)目主頁是:https://github.com/nikic/PHP-Parser

推薦教程:《php教程》

贊(0)
分享到: 更多 (0)
?
網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
400部精品国偷自产在线观看| 咪咪色在线视频| 国产网站免费在线观看| h无码动漫在线观看| 日本aa在线观看| 97超碰人人爱| 日本精品久久久久久久久久| 欧美成人精品免费| 激情深爱综合网| 精品www久久久久奶水| 另类小说第一页| 免费一区二区三区在线观看| 亚洲天堂国产视频| 裸体裸乳免费看| 国产乱淫av片杨贵妃| 国精产品一区一区三区视频| 亚洲人成色77777| 涩多多在线观看| 成人国产一区二区三区| 日韩在线综合网| 91制片厂毛片| 午夜久久久久久久久久久| 欧美不卡在线播放| 伊人影院综合在线| 国产91视频一区| 少妇激情一区二区三区| av在线网站免费观看| 91九色丨porny丨国产jk| 丰满少妇在线观看| 国产成人亚洲综合无码| 日本三级免费观看| 国产欧美自拍视频| 久久精品.com| 青娱乐国产精品视频| 缅甸午夜性猛交xxxx| 亚洲性生活网站| 国产91沈先生在线播放| 男人女人黄一级| 欧洲精品一区二区三区久久| xx欧美撒尿嘘撒尿xx| 国产亚洲黄色片| 亚洲免费av一区| 欧美三级一级片| 男插女免费视频| 国产日韩欧美久久| 国产成人无码a区在线观看视频| 男人添女人下面免费视频| 国产美女主播在线播放| 亚洲18在线看污www麻豆 | 在线观看17c| 日日噜噜夜夜狠狠| 欧美不卡在线播放| 日韩欧美猛交xxxxx无码| 在线观看免费视频高清游戏推荐| 日韩欧美不卡在线| 亚洲最新免费视频| 美女在线视频一区二区| 国产午夜大地久久| 久久久99精品视频| 亚洲自拍偷拍一区二区三区| 欧美伦理视频在线观看| 天堂中文视频在线| 国产原创popny丨九色 | 日韩视频免费在线播放| 国产天堂视频在线观看| 色噜噜狠狠一区二区三区狼国成人| 青青草视频在线免费播放| 国产人妻互换一区二区| 一二三级黄色片| 国产高清视频网站| 亚洲欧美视频二区| 久久婷五月综合| 中文字幕视频在线免费观看| 久久婷婷国产精品| 免费观看成人在线视频| 国产精品免费入口| 免费黄色福利视频| 黄色动漫网站入口| 国产精品97在线| 免费在线观看毛片网站| 欧美a在线视频| 国产无套内射久久久国产| 91国视频在线| 亚洲国产精品久久久久婷蜜芽| 国产原创popny丨九色| 免费黄色福利视频| av五月天在线| 想看黄色一级片| 日韩不卡一二区| www.18av.com| 日本www在线视频| 欧美两根一起进3p做受视频| 992kp快乐看片永久免费网址| 午夜在线观看av| 超碰91在线播放| av一区二区三区免费观看| 免费毛片网站在线观看| 日韩 欧美 高清| 超碰中文字幕在线观看| 欧美精品一区二区性色a+v| 成年女人18级毛片毛片免费| 啊啊啊一区二区| 欧美一级裸体视频| 91在线第一页| 青春草国产视频| 999香蕉视频| 国产精品嫩草影院8vv8| 免费看欧美黑人毛片| 黄色片一级视频| 熟妇熟女乱妇乱女网站| 久草视频国产在线| 好男人www社区| 裸体裸乳免费看| 无遮挡又爽又刺激的视频| 超碰在线免费av| 欧美在线观看成人| 99久久久无码国产精品性色戒| 免费看欧美黑人毛片| 亚洲这里只有精品| 精品无码一区二区三区爱欲| 北条麻妃av高潮尖叫在线观看| 亚洲美女自拍偷拍| 男人靠女人免费视频网站| 超碰中文字幕在线观看| 116极品美女午夜一级| 一本之道在线视频| 粉嫩虎白女毛片人体| 黄色一级视频播放| 国产九九在线视频| 亚洲精品久久久久久久蜜桃臀| 亚洲无吗一区二区三区| 日本www在线视频| 永久免费在线看片视频| 99sesese| 日韩中文字幕二区| 无码熟妇人妻av在线电影| 午夜久久福利视频| 亚洲中文字幕无码中文字| 日本黄xxxxxxxxx100| 天堂中文视频在线| 男人天堂999| www在线观看免费| 伊人网在线免费| 91大神免费观看| 精品日韩久久久| 97av视频在线观看| 免费一级特黄毛片| bt天堂新版中文在线地址| 九一精品久久久| 手机看片一级片| 色婷婷综合久久久久中文字幕| 日韩黄色短视频| 国产欧美123| 手机看片日韩国产| 99视频在线观看视频| 九九热精品在线播放| 中文字幕22页| 日韩精品视频一二三| 国产一级做a爰片久久| 日本精品久久久久中文字幕| 日韩精品―中文字幕| 国产精品无码人妻一区二区在线 | 中文字幕第36页| 激情综合网婷婷| 免费裸体美女网站| 91日韩视频在线观看| 免费看a级黄色片| 凹凸日日摸日日碰夜夜爽1| 国产裸体舞一区二区三区| 男人揉女人奶房视频60分| 人妻av中文系列| 一本大道熟女人妻中文字幕在线 | 看一级黄色录像| 亚洲小视频在线播放| 青青草综合在线| 国产3p露脸普通话对白| 国产精品无码人妻一区二区在线| 日日碰狠狠添天天爽超碰97| 欧美亚洲国产成人| 国产v亚洲v天堂无码久久久| 国产精品亚洲a| 可以看污的网站| 午夜免费福利网站| 成人在线国产视频| 欧美一级片中文字幕| 免费一区二区三区在线观看| 超碰成人在线免费观看| xxxxxx在线观看| 北条麻妃在线观看| 亚洲美女性囗交| 国产精品免费看久久久无码| 鲁一鲁一鲁一鲁一色| caopor在线视频| 日韩欧美中文视频| 黄色大片中文字幕| www.久久久精品| 加勒比海盗1在线观看免费国语版| 亚洲精品蜜桃久久久久久| 免费黄色福利视频| 黄色三级视频在线播放|