# cxsv **Repository Path**: royalwang/cxsv ## Basic Information - **Project Name**: cxsv - **Description**: 一个基于swoole扩展开发的PHP便捷服务器 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2015-02-04 - **Last Updated**: 2020-12-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 这是一个基于swoole扩展开发的高并发高性能应用服务器框架 配置示例文件在 etc/swoole.ini ----------------------------------- 目录结构 ------------------------------ / ├─ etc (应用配置文件) ├─ swoole.ini (配置示例文件,应用初始化时会复制一份并改名为应用名) ├─ lib (类库) ├─ AliOss (阿里云OSS的SDK) ├─ ..... ├─ VerifyCode (验证码类) ├─ tahoma.ttf (验证码字体文件) ├─ VerifyCode.php (验证码类文件) ├─ Action.php (Action父类) ├─ AppServer.php (应用服务器类,继承自HttpServer) ├─ Cache.php (缓存类) ├─ Common.php (公用类) ├─ Db.php (数据库封装类) ├─ EchoLog.php (目志输出类) ├─ Encrypt.php (加密类) ├─ Error.php (错误输出类) ├─ ErrorMessage.php (错误定义类) ├─ HttpServer.php (应用服务器基类) ├─ Kvdb.php (KV数据,支持持久化,memcache和mysql结合) ├─ Loader.php (加载类,实现自动加载) ├─ Log.php (日志类) ├─ Mimes.php (mime类型定义) ├─ Model.php (模型类基类) ├─ Page.php (分页类) ├─ Session.php (Session会话类,基于memcache) ├─ storage.php (存储类接口,里面可扩展存储类型) ├─ Widget.php (挂件类基类) ├─ logs (日志目录) ├─ mod (数据模型目录,一个文件对应一个数据表,类似DAO) ├─ GroupRole.php (用户组授权) ├─ MenuUrl.php (功能菜单) ├─ Module.php (菜单模块) ├─ QuickNote.php (便签) ├─ SysLog.php (系统日志) ├─ User.php (用户) ├─ UserGroup.php (用户组) ├─ plugin (插件) ├─ init (服务器启动时) ├─ init.php ├─ onConnect (一个连接进入时) ├─ onConnect.php ├─ onShutdown (服务器关闭时) ├─ onShutdown.php ├─ runkit (runkit扩展,实现实时更新Act文件) ├─ runkit.php ├─ admin.sql (初始化管理后台sql文件,直接导入即可) ├─ appServer.php (启动应用的脚本,非自动化) ├─ load.php (应用公共加载文件) ├─ readme.txt (框架说明) ├─ server.sh (自动化启动脚本,支持 start|restart|stop) ----------------------------------- 启动服务器 ------------------------------ cd到服务器根目录 ./server start|stop|restart 应用名 如果未创建应用配置文件,会自动创建,然后退出,你需要先根据需要修改一下配置文件 ----------------------------------- 框架基础 -------------------------------- 每个Action的命名空间为Act开头,类名为首字母大写的Action名,继承原Action类,如http://www.ABC.com/index 对应的Action为Index 每个Action只提供 get , post , add , update , delete , ajax等6种方法 命名方式分别对应为doGet , doPost , doAdd , doUpdate , doDelete , doAjax ---------------------------- Action调用方式 ------------------------------ /index/get /index/post (当请求方式为POST时,可省略为:/index) /index/add /index/update /index/delete /index/ajax 当Action为 /index/method 并且method不出在默认6种方法里的,对应路径为 /index/method 二级目录下 ---------------------------- 模块调用方式 ---------------------------- model(“#类名”) 调用公共mod model(“类名”) 调用应用的mod model(“类名”,”数据表前缀”) 调用带前缀的mod ---------------------------- 缓存调用方式 ---------------------------- cache(“缓存名”) 获取对应的cache内容 cache(“缓存名”,”设置内容”) 设置对应缓存名的内容 cache(“缓存名”,”设置内容”,过期时间) 设置对应缓存名的内容,过期时间单位为 秒 cache(“缓存名”,null) 删除对应缓存的内容 ---------------------------- Cookie调用方式 ------------------------- cookie(“cookie名”) 获取对应的cookie内容 cookie (“cookie名”,”设置内容”) 设置对应cookie的内容 cookie (“cookie名”,”设置内容”,过期时间) 设置对应cookie的内容,过期时间单位为 秒 cookie (“cookie名”,null) 删除对应cookie内容 ---------------------------- Session调用方式 ------------------------- session(“session名”) 获取对应的session内容 session (“session名”,”设置内容”) 设置对应session的内容 session (“session名”,”设置内容”,过期时间) 设置对应session的内容,过期时间单位为 秒 session (“session名”,null) 删除对应session内容 session (null) 删除所有session内容 ---------------------------- 应用目录结构 -------------------------------- 当应用为单目录时,即不分前台、用户中心、前台时,目录结构以下: /Act (Action存放目录) ├─ Index.php ├─ Test.php /Mod (模块存放目录) ├─ Goods.php /Lib (应用公共库目录) ├─ Net.php /Plugin (插件目录) ├─ onResponse ├─ onResponse.php /Widget (挂件目录) ├─ Ad ├─ Ad.php /Tpl (模板文件目录) ├─ default (模板样式) ├─ index (对应一个Action,全小写) ├─ index.php (模板文,全小写) ├─ form.php 当应用分前台、用户中心、前台时,目录结构以下: /admin ├─ Act (Action存放目录) ├─ Index.php ├─ Test.php ├─ Plugin (插件目录) ├─ onResponse ├─ onResponse.php ├─ Widget (挂件目录) ├─ Ad ├─ Ad.php ├─ Tpl (模板文件目录) ├─ default (模板样式) ├─ index (对应一个Action,全小写) ├─ index.php (模板文,全小写) ├─ form.php /Mod (应用模块存放目录) ├─ Goods.php /Lib (应用公共库目录) ├─ Net.php 开发示例: $model=model(“类名”); -----增------- $result = $model->insert(array('name'=>'value','name2'=>'value2')); $result = $model->multiInsert(array(array('name'=>'value','name2'=>'value2')),array('name'=>'value','name2'=>'value2'))); //同时插入多条 成功返回插入的ID,失败返回FALSE -----删------- $result = $model->where($where)->delete(); 成功返回受影响行数,失败返回FALSE -----改------- $result = $model->where($where)->update(array('name'=>'value','name2'=>'value2')); 成功返回受影响行数,失败返回FALSE -----查------- $data = $model->where($where)->limit(offset,resultNumrows)->order(“id desc”)->select(); where条件为一个sql字符串,如:id=1 或 id>1 and id<1、id!=1 、id in(1,2,3) and title like '%test%'等