<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          RapPHP為效率而生的 PHP 框架

          聯(lián)合創(chuàng)作 · 2023-09-20 04:24

          RapPHP 是什么

          RapPHP 框架提供了全面的 IOC,AOP 的底層支持,架構(gòu)設(shè)計(jì)簡(jiǎn)潔而有擴(kuò)展性,開(kāi)發(fā)靈活而有設(shè)計(jì)感,RapPHP 提供了完整的 Web 開(kāi)發(fā)需要的核心組件;同時(shí) RapPHP 支持 SWOOLE 和傳統(tǒng)(lamp,lnmp)雙部署方案,可以通過(guò) SWOOLE 提供常駐內(nèi)存的高性能 php 運(yùn)行環(huán)境;

          主要特性:

          • 高性能:支持傳統(tǒng)lamp(lnmp)部署方案,同時(shí)支持rapphp+Swoole引擎部署方案;

          • IOC:真正的依賴注入,控制反轉(zhuǎn),開(kāi)始更高級(jí)的設(shè)計(jì)思想,讓你的代碼更優(yōu)雅,可控;

          • AOP:面向切面編程,代碼低耦合;

          • MVC 架構(gòu):簡(jiǎn)單好用的 MVC 架構(gòu),配置簡(jiǎn)單,程序可讀性更高;

          • ORM:獨(dú)特SQL 構(gòu)造方法,Record 數(shù)據(jù)庫(kù)模型,二級(jí)緩存機(jī)制,數(shù)據(jù)庫(kù)操作更加簡(jiǎn)單,高效;

          • SWOOLE:不修改代碼的情況下一鍵啟用 SWOOLE,PHP運(yùn)行性能全面提升;

          • 上手快:框架居然使用了一些比較高級(jí)的設(shè)計(jì)思想,但是再框架內(nèi)使用都特別簡(jiǎn)單

          • 支持異步任務(wù),定時(shí)任務(wù),websocket等高級(jí)功能

          • 包含緩存, 文件存儲(chǔ),日志等多鐘常用功能;

          有了 IOC,AOP,SWOOLE神器,可以拉近和編譯性語(yǔ)言(JAVA等)的性能;

          名詞解釋

          下面是關(guān)于 Spring(JAVA 框架) 中的 IOC和AOP 的解釋
          IOC https://www.zhihu.com/question/23277575/answer/169698662
          AOP https://www.zhihu.com/question/24863332/answer/48376158

          IOC

          對(duì)象依賴注入,系統(tǒng)內(nèi)對(duì)象絕對(duì)單例

          class ToolController{
          
              /**
               * @var Connection
               */
              private $connection;
              /**
               * @var TenantService
               */
              private $tenantService;
          
              public function _initialize(Connection $connection,TenantService $tenantService){
                  $this->connection=$connection;
                  $this->tenantService=$tenantService;
              }
          }

          AOP

          前置切面,后置切面,環(huán)繞切面, AOP 支持完整可控

          在UserLogic調(diào)用saveUser,delUser方法前調(diào)用UserLogicTestAop的testBefore方法
             AopBuild::before(UserLogic::class)
                      ->methods(["saveUser","delUser"])
                      ->wave(UserLogicTestAop::class)
                      ->using("testBefore")
                      ->addPoint();
          
          //在UserLogic調(diào)用方法以save或del開(kāi)頭的方法前調(diào)用UserLogicTestAop的testAfter方法
                  AopBuild::after(UserLogic::class)
                      ->methodsStart(["save","del"])
                      ->wave(UserLogicTestAop::class)
                      ->using("testAfter")
                      ->addPoint();

          MVC

          MVC 路徑自動(dòng)查找,參數(shù)自動(dòng)綁定,返回(頁(yè)面, json)自動(dòng)解析

          class IndexController 
          {
              public function index($name, Response $response)
              {	
              	$response->assign('name',$name)
                  return 'index';
              }
                public function json($name)
              {
                  return ['success'=>true,'data'=>$name];
              }
          }

          ORM

          數(shù)據(jù)模型,增刪改查,二級(jí)緩存機(jī)制,數(shù)據(jù)庫(kù)操作輕松搞定

          $select = Good::select("g.*") -> order("rank desc");
          $select -> join("good_tag gt",'gt.good_id=g.id') -> where("tag_id",$tag);
          $data = $select -> cache() -> page($page,$step);
          DB::runInTrans(function() {
                        $user = User::getLock(1);
                   		$user -> name = 'tengzhinei';
                   		$user -> save();
                 });

          SWOOLE

          一鍵啟動(dòng) swoole 服務(wù)器,異步任務(wù),定時(shí)任務(wù),websocket 輕松搞定

          'swoole_http'=>[
                        'ip'=>'0.0.0.0', //正常不需要修改
                         'port'=>9501,  //默認(rèn)使用9501端口
                         'document_root'=>ROOT_PATH, 
                         'enable_static_handler'=>false, //是否可以訪問(wèn)文件 正常不可以
                         'worker_num'=>20,				  //默認(rèn)開(kāi)啟多少worker進(jìn)程
                         'task_worker_num'=>4,          //默認(rèn)開(kāi)啟幾個(gè) task 進(jìn)程
                         'task_max_request'=>0		  //訪問(wèn)多少次釋放worker進(jìn)程
                 ],
          //啟動(dòng)服務(wù)   
          php index.php http    
          //異步任務(wù)
          Task::deliver(MyTaskService::class,'task',['key'=>100,'name'=>'test']);
          //定時(shí)任務(wù)
          Timer::after('/test/a',['a'=>'1'],10,['tent-header'=>'test']);

          安利

          SWOOLE https://swoole.com/

          瀏覽 23
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  www.色婷婷 | 色色色五月天 在线播放 | 北条麻妃在线一区二区三区 | 午夜成人毛片 | 东京热中文AV字幕 |