# usephp **Repository Path**: cnsonkwl/usephp ## Basic Information - **Project Name**: usephp - **Description**: 本人使用php库,采用composer发布,替换sonkwlphp. - **Primary Language**: PHP - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-03-22 - **Last Updated**: 2025-05-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # sonkwl\usephp ## 简介 sonkwl(github@sonkwl,gitee@cnsonkwl)开发的php自用包,采用composer打包。已发布于packagelist。由于github被墙,已切换至gitee发布。 ## 项目地址 https://gitee.com/cnsonkwl/usephp ## 历史项目 https://gitee.com/cnsonkwl/sonkwlphp ## 使用 ```bash comporse require sonkwl/usephp:dev-master ``` ## 版本号 版本号采用:年.月.日发布,举例: > 23.3.22 ## 功能列表 - autoroute,路由选择 - (弃用)jwt,jwt处理 - (弃用)autoconfig,自动生成mysql表结构,php及js的model - (弃用)autodcl,自动验证model数据及生成sql(update,insert,delete) - (弃用)autocontrol,自動生成control層及API文檔 - jsoner,json数据请求/响应的处理 - mysqler,mysql数据库连接处理 - (弃用)upfile,文件(或文件数据)上传处理 - (弃用)designToConfig,设计器 - design,设计器,自动生成sql,model,validate,docs文件 - filer.php,文件上传处理 - jwter,jwt处理 - mailer,邮件发送处理 - modeler,处理model - (实验)staticweb,php静态化 ## 测试用例 - V1文件夹,为弃用功能测试 - V2文件夹,由designToConfig生成的用例 - V3文件夹,当前版本测试用例 ## 功能介绍 ### 1.路由选择 > autoroute.php文件 ```php autoroute::ValidateRequest(); autoroute::Run();//运行路由选择 /** * GET index.php?p=test 转换成 * 验证文件:control/validate/get-test.php * 处理文件:control/get/test.php文件 */ //支持跨域 autoroute::CanCross(); ``` ### 2.设计器 > design.php文件 ```php design::SetConfig(["title"=>"系统","baseurl"=>"/system"])::Create(["design"]); /** * 系统将src/design复制到项目根目录 * 页面跳转/design/index.html * 图形化项目设计器(数据字典设计,数据库设计,接口设计,设计文件转换control,model及db) */ ``` ### 3.文件处理 > filer.php ```php filer::Save($file); /** * 自动判断$file类型($_FILES或者filesteams) */ ``` 支持文件类型: ```php private static $typeTofile=[ "image/png"=>".png", "image/jpg"=>".jpg", "image/jpeg"=>".jpeg", "image/gif"=>".gif", "application/pdf"=>".pdf", "application/vnd.ms-excel"=>".xls", "application/vnd.ms-powerpoint"=>".doc", "application/msword"=>".ppt", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"=>".xlsx", ]; ``` ### 4.json处理 > jsoner.php ```php jsoner::Request();//从raw中转换成json jsoner::Response([]);//返回json ``` ### 5.jwt处理 > jwter.php ```php //设置版本 jwter::Set("version","V1"); //设置int参数,用于加密 jwter::Set("keyint","1"); //设置str参数,用于构建jwt jwter::Set("keystr","test"); //设置过期时间 jwter::Set("exp",strtotime("+4 hours")); //设置 用户表验证 jwter::Set("user_table","table_user_t"); jwter::Set("user_id","user_no"); jwter::Set("user_name","user_name"); //设置 权限表验证 jwter::Set("level_table","table_level_t"); jwter::Set("level_type","i_level"); //设置token jwter::SetToken('my'); //验证token,level1!=0将启用用户表验证,level2=7启用权限为7的验证 jwter::Vadlidate($token,$level1,$level2); ``` ### 6.发送邮件 > mailer.php ```php mailer::Set("to","test@163.com"); mailer::Set("subject","主题"); mailer::Set("content","内容"); mailer::Set("cc","cc@163.com"); mailer::Set("bcc","bcc@163.com"); mailer::Set("url","http://mail.com"); mailer::Set("vKey","test"); mailer::Send(); ``` ### 7.自动model处理 > modeler.php ```php modeler::SetPath("/model"); modeler::Use("table",[],"Insert")::Use("table2",[],"Update"); modeler::Test();//测试输出sql modeler::Transaction($db);//执行事件 ``` ### 8.mysql处理 > mysqler.php ```php mysqler::Set("host",""); mysqler::Set("dbname",""); mysqler::Set("user",""); mysqler::Set("pwd",""); mysqler::GetPDO();//获得pdo mysqler::GetAutoIncrement("table");//获得table的auto_increment计数 ``` ## 技術規格 - 已測試PHP7.2/8.* - PHP原生代碼,沒有使用其他第三方包,理論上兼容所有PHP版本,但是新版采用composer發佈,請使用php5.4+和composer2.2(兼容性強),也可以引入autoconfig.php直接使用 - PHP需要啓用PDO