全部
常见问题
产品动态
精选推荐

详解swoole框架快速入门

管理 管理 编辑 删除

4bae4202309251014492306.png

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 ,然后会生成$php对象。 如果在Controller、Model、View中,通过$this->swoole来调用。如果在函数,或者是其他被include的程序中,通过global $php来引用。

$php->db数据库接口
$php->cache缓存系统接口
$php->tplSmarty模板引擎接口
$php->model调用Model对象接口
$php->mvcMVC结构数据
$php->plugin插件系统接口
/* 导入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: 数据模型封装类代码

 - $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等。

- $ROOT/index.php: Web网站单一入口文件,可直接放到根目录,或者单独建立目录存放,如$ROOT/webroot/index.php

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

控制器Controller

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

- 代码放置到`apps\controllers`目录下

- 类名首字母必须为大写

- 必须继承自`Swoole\Controller`

请登录后查看

CRMEB-慕白寒窗雪 最后编辑于2023-09-25 10:15:13

快捷回复
回复
回复
回复({{post_count}}) {{!is_user ? '我的回复' :'全部回复'}}
排序 默认正序 回复倒序 点赞倒序

{{item.user_info.nickname ? item.user_info.nickname : item.user_name}} LV.{{ item.user_info.bbs_level }}

作者 管理员 企业

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest == 1? '取消推荐': '推荐'}}
{{item.is_suggest == 1? '取消推荐': '推荐'}}
沙发 板凳 地板 {{item.floor}}#
{{item.user_info.title || '暂无简介'}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
{{item.like_count}}
{{item.showReply ? '取消回复' : '回复'}}
删除
回复
回复

{{itemc.user_info.nickname}}

{{itemc.user_name}}

回复 {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回复' : '回复'}}
删除
回复
回复
查看更多
3605
{{like_count}}
{{collect_count}}
添加回复 ({{post_count}})

相关推荐

快速安全登录

使用微信扫码登录
{{item.label}} 加精
{{item.label}} {{item.label}} 板块推荐 常见问题 产品动态 精选推荐 首页头条 首页动态 首页推荐
取 消 确 定
回复
回复
问题:
问题自动获取的帖子内容,不准确时需要手动修改. [获取答案]
答案:
提交
bug 需求 取 消 确 定

微信登录/注册

切换手机号登录

{{ bind_phone ? '绑定手机' : '手机登录'}}

{{codeText}}
切换微信登录/注册
暂不绑定
CRMEB客服

CRMEB咨询热线 咨询热线

400-8888-794

微信扫码咨询

CRMEB开源商城下载 源码下载 CRMEB帮助文档 帮助文档
返回顶部 返回顶部
CRMEB客服