swoole框架快速入门
swoole有两个部分。 一个是PHP扩展,用C开发的,这是核心。 另一个是框架,像yii、TP、Laravel一样,是PHP代码写的。
swoole扩展本身提供了web服务器功能,可以替代php-fpm。 而如果仅仅用swoole框架,可以像其它PHP框架一样,运行在nignx、apache等web服务器中。
swoole框架像PHP框架一样,适用于web开发。 而swoole扩展是提供了更底层的服务器通信机制,可以使用UDP、TCP等协议,而不仅仅是http。
安装方式上也不一样,swoole扩展像其它PHP扩展一样安装,可以用pecl,也可以编译安装。而swoole框架用composer引入之后安装即可,或者下载源码后手动include/require。
另外,swoole框架依赖swoole扩展,是swoole扩展的应用实例。
框架-Swoole扩展-Swoole文档中心 http://wiki.swoole.com/wiki/page/p-framework.html
swoole扩展是基础,基于swoole扩展,可以做出多种框架,而不仅仅是web框架。
框架采用唯一接口对象机制。
调用框架的第一步,require('config.php');首先要包含config.php ,然后会生成$php对象。 如果在Controller、Model、View中,通过$this->swoole来调用。如果在函数,或者是其他被include的程序中,通过global $php来引用。
| $php->db | 数据库接口 |
| $php->cache | 缓存系统接口 |
| $php->tpl | Smarty模板引擎接口 |
| $php->model | 调用Model对象接口 |
| $php->mvc | MVC结构数据 |
| $php->plugin | 插件系统接口 |
<?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
$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
swoole框架快速入门的更多相关文章
- flask 框架快速入门
flask 框架快速入门 搭建一个简易flask项目 首先使用 Pycharm创建flask项目 运行flask项目 1.使用Pycharm搭建flask项目 (如果Pycharm新建项目中未出现该图 ...
- struts2框架快速入门小案例
struts2快速入门: index.jsp------>HelloAction--------->hello.jsp struts2流程 1.导入jar包 struts2的目录结构: a ...
- Scrapy框架-scrapy框架快速入门
1.安装和文档 安装:通过pip install scrapy即可安装. Scrapy官方文档:http://doc.scrapy.org/en/latest Scrapy中文文档:http://sc ...
- IDEA工具下Mybaties框架快速入门程序
本篇文章介绍在IDEA工具下mybatis快速入门程序分为以下五步 1 添加依赖包 2 编写pojo对象 3 编写映射文件 4 编写核心配置文件 5 测试框架 详细如下 建立Mod ...
- vue-element-admin框架快速入门
年底了,最近公司也不是太忙,感觉今年互联网行业都遇到寒冬,不在是前两年像热的发烫的赛道.这几天完成公司项目系统的优化和升级,目前准备想开发一套前后端分离的系统. 现在java最新最火的技术 ...
- mybatis框架快速入门
通过快速入门示例,我们发现使用mybatis 是非常容易的一件事情,因为只需要编写 Dao 接口并且按照 mybatis要求编写两个配置文件,就可以实现功能.远比我们之前的jdbc方便多了.(我们使用 ...
- java框架--快速入门
spring快速入门 1.创建项目 1.1创建项目文件夹 1.2启动idea ->文件->打开->点击创建的项目文件夹 1.3右键创建 ...
- (Spring Boot框架)快速入门
Spring Boot 系列文章推荐 Spring Boot 入门 Spring Boot 属性配置和使用 Spring Boot 集成MyBatis Spring Boot 静态资源处理 今天介绍一 ...
- Bootstrap前端框架快速入门专题
1.Bootstrap简介 Bootstrap,出自自 Twitter,是目前最受欢迎的前端框架. Bootstrap 是基于 HTML.CSS.JAVASCRIPT 的前端框架,它简洁灵活,使得 W ...
随机推荐
- Mac下安装HomeBrew
本文章为菲利克斯猫(Felix.mao)原创,转载务必在明显处注明:原文链接:http://blog.csdn.net/maojudong/article/details/7918291 1. 前言 ...
- Substr函数助你免杀php脚本
主要利用substr函数和url编解码 本文作者:i春秋签约作家Laimooc 1]安全狗: 新研究的php脚本木马:最新版安全狗扫描如下: 成功看到:扫描已完成,未发现网页木马以及其他威胁(开心吗, ...
- input disabled的情况下在IOS设备中怎么修改颜色
-webkit-text-fill-color:black; -webkit-opacity:1; opacity: 1; 一句代码就欧了
- 【docker】docker下安装mysql
1 拉取mysql镜像,采用网易加速地址docker pull hub.c.163.com/library/mysql:5.7 2 重命名镜像名docker tag hub.c.163.com/lib ...
- 把序列中的N个元素赋值给多个变量
说明: python中序列和散列 序列:可通过偏移量来进行切片的对象.列表.元组.字符串都属于序列. 散列:无法通过偏移量来进行切片的对象.比如 集合.字典 一. 变量的数量跟序列元素的个数一样 1. ...
- Class文件分析
java源码和class文件 源码: package classloader; public class TestCase { private int value; public int test() ...
- 在Myeclipse中查看android源码就是这么easy
在开发android 时不能查看源码必是很不爽的一件事,看过网上一些文章后(都是2.0以前的版本,跟我的2.2最新版本的配置是不一样的)不过还是给了我启示,通过配置终于可以在myeclipse中查看源 ...
- python模块之 fabric
Python模块之Fabric Fabric简介 Fabric是一个Python库,可以通过SSH在多个host上批量执行任务.你可以编写任务脚本,然后通过Fabric在本地就可以使用SSH在大量 ...
- 遇见Navicat 2003-can't connect to MYSQL server on 'localhost'(10061)
学习过程中难免遇到问题,今天就遇到了Navicat 2003-can't connect to MYSQL server on 'localhost'(10061),navicat报错,我就纳闷以前都 ...
- Hexo博客系列(一)-Windows系统配置Hexo v3.x个人博客环境
[原文链接]:https://www.tecchen.xyz/blog-hexo-env-01.html 我的个人博客:https://www.tecchen.xyz,博文同步发布到博客园. 由于精力 ...