当前位置: 首页 > news >正文

详解swoole框架快速入门

在这里插入图片描述
Swoole包含两个主要部分:一个是用C语言开发的PHP扩展,作为核心功能;另一个是通过PHP代码编写的框架,类似于yii、TP和Laravel。

Swoole扩展本身具备web服务器功能,可以取代php-fpm。当仅使用Swoole框架时,可以像其他PHP框架一样运行在Nginx、Apache等Web服务器中。

Swoole框架是一个适用于Web开发的PHP框架。与传统的PHP框架不同,Swoole框架基于Swoole扩展,提供了更底层的服务器通信机制,可以支持UDP、TCP等多种协议,而不仅仅限于HTTP。

安装方式也有所不同。Swoole扩展可以像其他PHP扩展一样通过PECL或者编译安装来获取。而Swoole框架则可以通过Composer引入后进行安装,或者手动下载源代码并进行手动引入。

需要注意的是,Swoole框架是基于Swoole扩展开发的应用实例,因此在使用Swoole框架之前需要先安装好Swoole扩展。

了解更多关于Swoole框架和Swoole扩展的详细信息可参考Swoole文档中心的链接:http://wiki.swoole.com/wiki/page/p-framework.html

Swoole扩展作为基础,可以用来开发各种类型的框架,不仅仅局限于Web框架。

推荐(免费):swoole

框架采用唯一接口对象机制。

调用框架的第一步,require(‘config.php’);首先要包含config.php ,然后会生成 p h p 对象。如果在 C o n t r o l l e r 、 M o d e l 、 V i e w 中,通过 php对象。 如果在Controller、Model、View中,通过 php对象。如果在ControllerModelView中,通过this->swoole来调用。如果在函数,或者是其他被include的程序中,通过global $php来引用。

在这里插入图片描述

/* 导入config.php文件,这是调用框架必须的第一步 
config.php会载入基本配置选项,和基本函数,并生成全局接口变量$php 
在代码的任何位置处,都可以通过global $php来引用全局接口对象 
*/require('config.php'); 
$res = $php->db->query('select * from test_table'); //执行SQL语句,得到一个查询的结果,查询结果,可以获取数据 $res->fetch(); //获取单条数据。是字段-值,组成的关联数组。 $res->fetchall(); //获取全部 $data = array(); 
$data['title'] = 'hello wolrd!'; 
$data['author'] = 'me'; 
$php->db->insert($data,'test_table'); //将关联数组按照键值对应转为字段-值对应,插入到数据库表test_table中。 
//insert into test_table(title,author) values('hello wolrd!','me') /* $php->db->delete() 删除数据 
$php->db->update() 更新数据 
具体请参考Database类 
*//* 模板操作,内置smarty模板引擎 
*/$php->tpl->assign('title','hello world!'); 
$php->tpl->display('index.html'); 

目录规范

假设根目录为$ROOT。

  • $ROOT/apps: 应用程序代码,此目录中的代码是公用的,包括类、配置、模板、控制器、Model等。此目录不得放置静态文件,如js、css、jpg、html等,必须全部为.php文件。此目录不允许直接通过HTTP访问。

    • $ROOT/apps/controllers: Web应用的控制器类代码

    • $ROOT/apps/models: 数据模型封装类代码

    • R O O T / a p p s / c o n f i g s : 配置文件,通过 ROOT/apps/configs: 配置文件,通过 ROOT/apps/configs:配置文件,通过php->config[‘db’][‘master’]这样的方式来访问

    • ROOT/apps/classes: 类库,存放所有用户定义的类,必须符合PSR-0规范,文件名必须为 {类名}.php,顶层命名空间必须为App

    • $ROOT/apps/templates: 模板文件目录

      • 命名空间:如 new App\Hello\Test 类,会映射到 $ROOT/apps/classes/Hello/Test.php

      • 配置文件:如 $php->config['db']['master']Swoole::getInstance()->config['db']['master'] 会映射到 $ROOT/apps/configs/db.php文件,db.php中必须返回数组,key为master。

      • 数据模型:model('UserInfo')或者$php->model->UserInfo 会映射到$ROOT/apps/models/UserInfo.php

  • $ROOT/static: 静态文件目录,比如js、css、jpg、html等。

  • R O O T / i n d e x . p h p : W e b 网站单一入口文件,可直接放到根目录,或者单独建立目录存放,如 ROOT/index.php: Web网站单一入口文件,可直接放到根目录,或者单独建立目录存放,如 ROOT/index.php:Web网站单一入口文件,可直接放到根目录,或者单独建立目录存放,如ROOT/webroot/index.php

  • $ROOT/server.php: 服务器程序启动入口。

控制器Controller

使用Swoole的MVC管理,控制器类必须符合以下规范:

  • 代码放置到apps\controllers目录下

  • 类名首字母必须为大写

  • 必须继承自Swoole\Controller


http://www.mrgr.cn/news/36737.html

相关文章:

  • MyBatis-Plus的使用基础入门案例
  • 3d gaussian splatting公式推导
  • 使用 Llama 3.1 和 Qdrant 构建多语言医疗保健聊天机器人的步骤
  • 智能雷达AI名片小程序源码系统 基于PHP+MySQL组合开发 带完整的安装代码包以及搭建部署教程
  • 设计模式之观察者模式
  • Git提示信息 Pulling is not possible because you have unmerged files.
  • 桌面PDU插座应用于工业自动化场景
  • AOT源码解析4.4 -decoder生成预测mask并计算loss
  • 《Linux从小白到高手》开篇:脱胎换骨之为什么要深度学习Linux?
  • 一七零、GORM值为0或者空字符串的时候不能被更新创建的五种解决办法
  • 【JavaEE初阶】深入解析死锁的产生和避免以及内存不可见问题
  • electron使用npm install出现下载失败的问题
  • bat脚本的命名方式导致一个脚本不能使用的不明原因的怪事
  • 18 vue3之自动引入ref插件深入使用v-model
  • OceanBase云数据库战略实施两年,受零售、支付、制造行业青睐
  • Vue3 获取验证码按钮,倒计时60s
  • 「点击即复制!」——超实用 JavaScript 实现技巧
  • OpenHarmony(鸿蒙南向)——平台驱动指南【HDMI】
  • TopOn对话游戏魔客:2024移动游戏广告应如何突破?
  • 【GIS】Leaflet:Web地图快速上手