Biny

Biny是一款web程序开发的框架,您可以使用这个框架设计网站,可以设计网页端应用,让用户在开发新软件的时候获得更多帮助,软件已经提供基本的配置内容,包括路由配置、静态化配置、自动加载配置、请求配置、响应配置、志相关配置、数据库相关配置、缓存相关配置、异常配置,用户可以加载提供的类配置设计自己的程序,系统自动加载类的配置,会根据用户代码自动生成相关的功能模块,节约用户手动配置网页请求,配置数据库的时间,每个数据库表都可以建立单独的类使用,可以完全避免SQL注入的风险!

Biny软件功能

支持跨库连表,条件复合筛选,查询PK缓存等

同步异步请求分离,类的自动化加载管理

支持Form表单验证,支持事件触发机制

支持浏览器端调试,快速定位程序问题和能瓶颈

具有sql防注入,html自动防xss等特

Biny软件特色

Biny是一款高能的轻量级PHP框架

遵循 MVC 模式,用于快速开发现代 Web 应用程序

Biny代码简洁优雅,对应用层,数据层,模板渲染层的封装简单易懂,能够快速上手使用

高能,框架响应时间在1ms以内,单机qps轻松上3000

Biny教程

表单验证

框架提供了一套完整的表单验证解决方案,适用于绝大多数场景。

表单验证支持所有类型的验证以及自定义方法

简单示例:

定义完验证类,就可以在Action中使用了,可以通过getForm方法加载表单

注意:在$_rules中未定义的字段,无法在$form中被获取到,就算不需要验证,也最好定义一下

在很多情况下,表单参数并不是都完全相同的,系统支持Form复用,即可以在通用的Form类中自定义一些内容

比如,还是上述例子的testForm,有个类似的表单,但是多了一个字段type,而且对于status的验证方式也需要变化

可以在testForm中添加一个方法

在Action中加载表单也需要添加’addType’作为参数,其他使用方法一致

一个表单验证类里可以写多个附加方法,相互直接并不会有任何影响

验证类型

系统提供了7种默认验证方式,验证失败时都会记录错误,用户可以通过getErr方法获取

self::typeInt 数字类型,包括整型浮点型,负数

self::typeBool 判断是否为true/false

self::typeArray 判断是否为数组类型

self::typeObject 判断是否为对象数据

self::typeDate 判断是否为一个合法的期

self::typeDatetime 判断是否为一个合法的期时间

self::typeNonEmpty 判断是否非空(包括null, 空字符串)

self::typeRequired 有该参数即可,可以为空字符串

调试

框架中有两种调试方式,一种是在页面控制台中输出的调试,方便用户对应网页调试。

另一种则是和其他框架一样,在志中调试

控制台调试

Biny的一大特色既是这控制台调试方式,用户可以调试自己想要的数据,同时也不会对当前的页面结构产生影响。

调试的开关在/web/index.php里

控制台调试的方式,同步异步都可以调试,但异步的调试是需要引用/static/js/main.js文件,这样异步ajax的请求也会把调试输出在控制台里了。

调试方式很简单,全局可以调用Logger::info($message, $key),另外还有warn,err,log等

第一个参数为想要调试的内容,同时也支持数组,Object类的输出。第二个参数为调试key,不传默认为phpLogs

Logger::info()消息 输出

Logger::warn()警告 输出

Logger::err()异常 输出

Logger::log()志 输出

下面是一个简单例子,和控制台的输出结果。结果会因为浏览器不一样而样式不同,效果上是一样的。

另外Logger调试类中还支持time,memory的输出,可以使用其对代码能做优化。

志调试

平台的志目录在/logs/,请确保该目录有写权限

异常记录会生成在err_{期}.log文件中,如:err_2016-05-05.log

调试记录会生成在log_{期}.log文件中,如:log_2016-05-05.log

程序中可以通过调用Logger::addLog($log, INFO)方法添加志,Logger::addErr($log, ERROR)方法添加异常

$log参数支持传数组,会自动排列打印

$LEVEL可使用常量(INFO、DEBUG、NOTICE、WARNING、ERROR)不填即默认级别

系统程序错误也都会在err志中显示,如页面出现500时可在错误志中查看定位

==============v2.10更新分割线==============

Biny v2.10之后加入志自动归档功能,可在/config/config.php中开启

开启之后,志目录中log文件会在期变更时触发归档作,并将历史文件写入{年}-{月}目录中。外层log文件则一直会是最新的

脚本执行

Biny框架除了提供HTTP的请求处理以外,同时还提供了一套完整的脚本执行逻辑

执行入口为根目录下的shell.php文件,用户可以通过命令行执行php shell.php {uter} {param}方式调用

其中uter为脚本路由,param为执行参数,可缺省或多个参数

脚本路由

路由跟http请求模式基本保持一致,分为{module}/{method}的形式,其中{method}可以缺省,默认为index

例如:index/test就会执行indexShell中的action_test方法,而demo则会执行demoShell中的action_index方法

如果uter缺省的话,默认会读取/config/config.php中的uter内容作为默认路由

脚本参数

脚本执行可传复数的参数,同http请求可在方法中直接捕获,顺序跟参数顺序保持一致,可缺省

另外,可以用param方法获取对应位置的参数

例如:终端执行php shell.php test/demo 1 2 aaa,结果如下:

同时框架还提供了变量化的参数传递方式,用法与http模式保持一致

例如:终端执行php shell.php test/demo –name=”test” –id=23 demo,结果如下:

注意:使用变量化传递后,方法中默认参数将不会捕获非变量化的参数,如上例的demo需要通过param方法获取

脚本志

脚本执行不再具有HTTP模式的其他功能,例如表单验证,页面渲染,浏览器控制台调试。 所以在Logger调试类中,info/err/debug/warning这几个方法将改为在终端输出

同时也可以继续调用Logger::addLog和Logger::addErr方法来进行写志的作

志目录则保存在/logs/shell/目录下,请确保该目录有写权限。格式与http模式保持一致。

注意:当程序返回$this->response->err($msg)的时候,系统会默认调用Logger::addErr($msg),请勿重复调用。

上一篇 2022-11-28

相关推荐

  • Biny

    Biny是一款web程序开发的框架,您可以使用这个框架设计网站,可以设计网页端应用,让用户在开发新软件的时候获得更多帮助,软件已经提供基本的配置内容,包括路由配置、静态化配置、...
正在提交中,请稍等片刻...

发表回复

请登录后评论...
登录后才能评论

评论列表 (0条)