Simple PHP <a href="https://github.com/dongyuhappy/simple/#4-debug%E5%8A%9F%E8%83%BD"></a>4.<a href="https://github.com/dongyuhappy/simple/#5-config%E9%85%8D%E7%BD%AE"></a

程序名称:Simple PHP <a href="https://github.com/dongyuhappy/simple/#4-debug%E5%8A%9F%E8%83%BD"></a>4.<a href="https://github.com/dongyuhappy/simple/#5-config%E9%85%8D%E7%BD%AE"></a

授权协议: Apache

操作系统: 跨平台

开发语言: PHP

Simple PHP <a href="https://github.com/dongyuhappy/simple/#4-debug%E5%8A%9F%E8%83%BD"></a>4.<a href="https://github.com/dongyuhappy/simple/#5-config%E9%85%8D%E7%BD%AE"></a 介绍

Simple 一个 结构清晰层次分明微型 的php框架。

Simple 不是 一个试图满足 所有需求的怪物

Simple 试图 解放你的思想,不被框架的条条框框所限制。

Simple 试图 成为一个能让你自由发挥的框架。

Simple 试图 规范流程,而不是提供一个非常具体的实现。

需求

  1. php5.3.0。

  2. 熟悉php,熟悉面向对象编程。

  3. 爱翻php手册。

  4. 推荐IDE,phpstorm

核心思想

1.
控制请求到响应的整个生命周期,并且对此按照合适的粒度进行分层,而不是着眼于提供庞大的功能。

这部分的分层在项目的Cycle包下面,主要包含有

  • Application

  • Router

  • Request

  • Caller

  • Response

执行的流程是从上到下,具体的 流程 为:

  1. 所有的请求都会进入Application的run方法,整个请求到相应返回的生命周期都是在这个方法中进行的。

  2. 在Application的run方法中会生成Router对象。

  3. 根据Router对象,会生成Request对象,所有的请求参数都会包装在Request里面。

  4. 把生成的Request对象传递给Caller对象,负责调用具体的接口(这里既可以是Controller,也可以实现为RPC)。

  5. 然后接口生成Response对象。

  6. 最后根据项目的需要,把Response对象转换为你所需要的格式,返回给客户端。

2.
提供方便的数据操作模式(注:不提供复杂的ORM)。

数据相关的操作都封装在了Model包下面,主要分为这个几个层次:

  1. Vo,实体类。

  2. Dao,数据访问。

  3. Driver,数据连接驱动。

  4. Pool,连接池。

实体类,全称为Value Object。顾名思义,就是对数据库字段的一个映射。底层提供了两种类型的Vo,NoSQLVo和MySQLVo
项目中的实体类定义字段的时候必须定义为 proteced
$_变量名称的格式,并且最好实现各个字段的getter和setter方法,这部分代码完全可以由IDE生成(注:推荐phpstorm)。

数据访问层,所有的数据访问都应该通过该层来访问,底层提供了两种类型的Dao,并且提供了一些针对单条信息的基础的操作方法。
如果底层的Dao层的功能不能满足你的要求,你自己自行扩展继承。

数据库驱动层,目前关系型数据库只支持PDO的方式,NoSQL类型的数据库只支持Memached。

连接池(针对一个请求到相应生命周期而言),根据配置里面的标识获取数据库的连接,同一个标识多次获取,只会连接一次数据库。

3.
日志功能

系统底层采用的是开源的monolog,系统包装了一个简单通用的方法来写入日志,封装在Log包下面,有一个叫LogUtil的工具类,有一个方法叫write。

4.

debug功能

在php中,常用的debug方式有:

  1. 打印输出,例如 echo,print_r,var_dump之类的打印函数。

  2. 文件记录,把调试信息写入到一个文本里面。

这两种方式的缺点也,调试起来麻烦,调试完成后容易忘记去掉,由于采用的是系统函数,无法在非debug状态下关掉。
比较好的方式是,系统自定义一个调试方法,可以在非debug的情况下关掉。在Debug类下面封装了一个trace方法。专门用来调试,输出会默认输出到,Google
Chrome的console面板下面,前提是你得安装一个叫做Chrome
Logger
的插件。

5.

Config,配置

只支持php数组形式的配置 。 为什么不支持yaml和json或者其他格式的配置?
无论你采用什么格式的配置文件,最终都必须解析转换为php的数组或者对象,而且由于每次常规的操作都会用到配置文件,都会去解析一次,这个太没必要了。
项目的配置相关都放在了Config目录下面,系统提供了一个ConfigManager::get的方法去获取对应的配置信息。
系统默认会现在项目配置中去找,若找到就直接返回,找不到,就到系统默认的配置中去查找,找到返回,如果找不到会抛出一个异常。

6.
Bootstrap,系统引导

引导整个应用,提供服务。 主要有两个步骤

  1. 初始化环境,使用init方法,这里面注册了对 警告的捕捉未被捕捉异常的处理自动加载文件

  2. start,启动服务,注册Application对象。

7.Application包

由于框架本身只是提供一个规范和标准,没有提供具体的实现。所以Application包下面提供了两种不同类型应用的实现。

  1. Game,适合于SNS游戏类型的应用。所有面向服务不需要输出html的应用都适用。

  2. Web,Web网站类型应用。系统采用的模板引擎是twig

Simple PHP <a href="https://github.com/dongyuhappy/simple/#4-debug%E5%8A%9F%E8%83%BD"></a>4.<a href="https://github.com/dongyuhappy/simple/#5-config%E9%85%8D%E7%BD%AE"></a 官网

https://github.com/dongyuhappy/simple/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


MuPlayer 是一款跨平台、轻量级的音频播放解决方案,是百度@音乐前端团队开发维护的浏览端音频播放内核,它基于HTML5
OS FLV 是一个 开源和可嵌入网页的flv播放器。 这个播放器拥有大量的选项可以通过嵌入代码进行设置.
DewPlayer音乐播放器,样式很简单,而且很实用.播放器可以根据自己的喜好改变颜色,也算比较个性化吧.但唯一的不足就是只支持MP3格式的音乐。
JW FLV MEDIA PLAYER是一个开源的在网页上使用的Flash视频、音频以及图片播放器,支持 Sliverlight
Speakker 是一个基于 Web 浏览器的音乐播放器,只提供很多高级播放功能包括播放列表管理和分享。
Player Framework 是一个开源的支持 HTML5 的视频播放器框架,同时也支持 Silverlight 和 Windows Phone
Sewise Player是一款专业的免费网页视频、流播放器,它功能强大,体积小,跨平台,使用方便简洁、随心所欲:
SoundManager 2 利用 HTML5 和 Flash 技术提供了稳定和阔平台的音乐播放功能,只有 10K 的 JS 包。
xPlayer v1.0 特性: 文件大小 9.78kb; 可以自定义皮肤; 3.支持 http 和 rtmp 视频; 4.音量调节,全屏播放,拖拽播放;
XPlayer 豆瓣音乐播放器 特点: 1.自动侦测Douban网页的歌曲 2.Douban网页关闭,歌曲能够继续播放
歌词 插件 最新更新,扩展性能稍微有点提升了, 不多说了,更多敬请查看首页http://luochunzong.sinaapp.com/?p=84
ABPlayerHTML5是一个在HTML5下的弹幕播放器(同步显示视频于评论)实现。类似功能的播放器可以参考基于Flash的MukioPlayer和PADPlayer。
AudioPlayer.js 是一个 jQuery 的插件,实现了 HTML5 的音乐播放器,无需任何图片,实现了响应式布局,支持触摸操作。
替换中国大陆主流视频网站的 Flash 播放器为 HTML5 播放器 使用 Mac 的同学都可能碰到过在线看视频引起机子风扇狂转、机身发烫等情况,这是因为 Flash 占用了过多系统资源的缘故。
AetherPlayer 是一个类CD的轻量HTML5播放器,特别适合博客及个人站点使用。它漂亮得不像……咳,这边吹牛的话就不说了。
专注、极致、智慧,国内外为数不多不依赖开源框架、跨平台(windows/android/iOS)、公网推送(支持rtmp)-播放(支持rtmp/rtsp)业界真正靠谱 的超低延迟。
node-kugou-client 是 Node.js 酷狗客户端。 安装 npm install node-kugou-client 使用 var kugou = require(\"node-kugou-client\");
Youku HTML5 播放器扩展 —— 告别 flash 和广告 关于官方内测 html5 播放器 Firefox ( xpi 直接安装) ( firefox 50.0+)
Chimee 由奇舞团研制的 h5 播放器,它支持 mp4、m3u8、flv 等多种格式。通过插件式开发,能满足业务方快速迭代、灰度发布等要求。让开发者能够轻松快捷地完成视频场景的开发。
OneVideo是一款基于OneBase+UniApp开发的小视频播放移动应用。