解释swoole框架的快速入门
swoole有两个部分。 一个是用C语言开发的PHP扩展,它是核心。另一个是框架,像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来引用。
目录规范
假设根目录为$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