请选择 进入手机版 | 继续访问电脑版

SpeedPHP框架

 找回密码
 注册成为新用户

QQ登录

只需一步,快速开始

查看: 7804|回复: 22

新版speed小试感受.

[复制链接]
发表于 2015-9-17 09:06:30 | 显示全部楼层 |阅读模式
确实极快!
暂时还没深入研究代码,只是简单的看了下核心speed文件
试着运行了一下例子,很大一个感受就是很快,没有其它框架那种卡顿感,

有几个小小的期待,
以后会支持多数据库类型么?
好像没有做安全过滤之类的操作了吧.
还有.貌似是自动加载所有的模型和类了.这样以后扩展多了会不会对资源消耗比较大. 还是倾向于手动加载
别的我就不懂了.我也是个菜鸟, 正则知识很差劲,所以URL重写和模板编译那块就不懂了.
后期还加日志功能么.. 还有.可以弄个扩展模块之类的.那些方便扩展一些类似支付,短信,这类的第三方接口,或者文件上传之类的
别的我觉得都挺好的. 函数库什么的完全没必要像其它框架那样准备一堆.

{:soso_e154:}{:soso_e154:}
发表于 2015-9-17 10:03:52 | 显示全部楼层
感谢支持

稍微说一下:

1. 多种数据库,如MSSQL等,短期内不会支持,毕竟PHP+MySQL是非常普遍的。但其他的数据库和PHP本身就很少相容。

当然,如果是“多个”数据库(都是MySQL),那么是原生支持的,支持读写分离和多库链接

2. 安全过滤是内含的。包括防SQL注入是在model的位置,防XSS是在模板引擎的位置。都是自动实施的,按正常的用法,它们会一直在。

3. 不清楚你说的自动加载是指哪个方面,新版speed的结构是一个文件,包含了MVC核心,当然这里代码不多(不到500行)。

如果是扩展或者其他的类文件,都是按需加载的。autoload机制只是当找不到类代码时,自动搜索目录进行include那一个类文件,不会加载其他的东东。

所以整个来说,跟你理想中的微核心+按需加载,是符合的。资源占用方面不用担心。

4. 具体的一些使用方法会在稍后的教程里面。

5. 扩展方面,要加入到框架里面是比较简单的。等教程出来后会逐步搞上来,第一部分大概是这样:

cache(file/memcache/apc)
mongo
redis
多语言扩展
数据验证
session扩展
文件上传类
用户级日志
XML支持
Excel操作类
拼音
(未完待续)

外加三个示例+一个生产工具

ACL权限系统示例
微信接口示例
静态HTML示例
appbuilder


 楼主| 发表于 2015-9-17 10:49:23 | 显示全部楼层
jake 发表于 2015-9-17 10:03
感谢支持

稍微说一下:

@jake 大神,是我描述错了,数据库那里应该说多驱动支持,
因为5.5以后mysql驱动已经不再支持, 得用mysqli吧.所以我想会不会有能支持mysqli的驱动,
确实 我也不喜欢PHP 和其它数据库一起使用,最适用的还是MYSQL
自动加载是说的 inner_autoload函数,
如果我没理解错的话, 这个函数是会自动引用  model,include,controller这三个文件夹下面的PHP文件,
不知道后期开发写了很多类文件时,会不会对内存要求高一些,
我个人觉得,开发的时候,比如很多后台管理用的 类或者函数库文件,在前台界面 就不需要引用了,
还有 针对多模块开发时,有些模块应该是只需要核心类就可以了.这样做应该也会把不需要的资源文件一起引用吧?  不知道我这样理解正确不, PHP引用这些资源文件应该也要消耗内存吧?

很期待框架出来,

{:soso_e154:}{:soso_e150:}  正则知识太水了, 都没注意到模板引擎那里 做了过滤.

还有.下面这个验证问答是不是有问题哈, 每次第一个问题怎么答都不对.  LAMP  L 我试了 linux  Linux都说错的!!!!!  好像验证码也是.....第一次怎么答都不对. 估计SESSION有问题? 猜的.

发表于 2015-9-17 12:29:54 | 显示全部楼层
xiaoziwuzui 发表于 2015-9-17 10:49
@jake 大神,是我描述错了,数据库那里应该说多驱动支持,
因为5.5以后mysql驱动已经不再支持, 得用mysqli吧 ...

之前其实对比过mysqli和pdo_mysql,mysqli可以说比较亲切点,但是PDO是官方比较推荐的,而且还有个重点是PDO的绑定参数是可以使用字符串的,而mysqli只能是用?方式来绑定,你如果用到数据库绑定之后,就会明白mysqli那个绑定有多丑了~~~所以选用了PDO

其实对于普通开发者来说,是PDO或者mysqli应该是感觉不到的,而绝大部分的PHP环境都有两者,所以问题不大。



自动加载autoload是这样的:当new到没有加载的类,才会执行autoload,而且看看inner_autoload的代码,它也只include一个文件,没有全部引用其他的文件。

举个流程的例子说明一下:

首先,框架程序运行,从index.php开始,会加载

index.php 入口
speed.php 框架的全部(不到500行代码)
config.php 配置
BaseController.php 控制器父类(一般是空的)
你的Controller.php 你的代码所在

其他都不加载,这已经很轻了,对吧。

然后,当你的代码里面有这样的一句:

$user = new User();

的时候,那么new就找不到User这个类了。然后autoload就会在model目录下面找 model/User.php 这个文件,

注意,这里只是找(model/User.php)这个文件,
即使model目录里面有成千上万个文件,autoload只是定位有没有model/User.php这个文件(file_exists),
当它找到有这个文件,那么就会执行 include model/User.php

也注意一下,只是  include model/User.php 一个文件,没有管其他任何的文件

接下来new就会实例化User类。这就是autoload的过程,可以看到这个只是一个简化了include(一个文件)的过程,它不会把全部文件都加载进来的。



另外,数据库链接方面,稍微说一下,这里也是按需加载。

比如说$user = new User();的时候,User虽然是继承了Model,但是这时候也没有去链接数据库。
等到执行下一句

$this->newid = $user->create($data);

之类的,create才去链接数据库。

这样的好处是当你的model类,有部分方法是不需要数据库的时候,不会产生数据库链接。



关于多模块开发,指的是module对吧,它也是按需加载的。再对比一下

如果用了module,现在的请求是访问某个module,那么

框架程序运行,从index.php开始,会加载

index.php 入口
speed.php 框架的全部(不到500行代码)
config.php 配置
module/BaseController.php 该module的控制器父类(一般是空的)
module/你的Controller.php 该module的控制器代码所在

框架会忽略非这个module下的控制器,只会执行到本module的控制器。




 楼主| 发表于 2015-9-17 14:31:06 | 显示全部楼层
jake 发表于 2015-9-17 12:29
之前其实对比过mysqli和pdo_mysql,mysqli可以说比较亲切点,但是PDO是官方比较推荐的,而且还有个重点是P ...

受教了.原来这个autoload的流程是这样子的.
还是学艺不精.一直以为他会直接把文件加载进来.
刚写了两控制器试了一下,果然如你所说.
speed文件已经比较充实了, 剩下的功能只期待缓存模块出来. 我觉得文件缓存类可以参考下ci的 有过期 时间.  别的方面都只能默默的期待了..


... 附加一下. 刚看到验证问答. 为嘛   echo true ? 0 : true ? 1 : 2;  答案会是2  把我惊呆了

发表于 2015-9-17 14:35:44 | 显示全部楼层
xiaoziwuzui 发表于 2015-9-17 14:31
受教了.原来这个autoload的流程是这样子的.
还是学艺不精.一直以为他会直接把文件加载进来.
刚写了两控 ...

缓存的过期时间?指的是类似这个吗?http://www.speedphp.com/thread-3853-1-1.html
spAccess的第四个参数lift_time

这是任何一个缓存程序都会有的~~~而且也不是框架提供的,框架只是对接。
发表于 2015-9-18 09:51:00 | 显示全部楼层
最新版啥时候出来啊?比较关注中!
 楼主| 发表于 2015-9-18 12:06:28 | 显示全部楼层
jake 发表于 2015-9-17 14:35
缓存的过期时间?指的是类似这个吗?http://www.speedphp.com/thread-3853-1-1.html
spAccess的第四个参 ...

今天突发奇想,把speed的模板类换成 smarty
发现效率变得极其低下,

只是简单的显示一个测试界面
当然我也只是简单的用AB压力工具测试了一下.
这是直接用内置模板引擎的测试数据,页面没有做其它操作
QQ拼音截图未命名.jpg
这是只引用了Smarty类没有使用,还是用原生的模板类的数据
QQ拼音截图未命名5.jpg
这是用了Smarty之后.
QQ拼音截图未命名3.jpg

感觉 差别太大了. 数值降了一半多.
是不是我没调试好?

QQ拼音截图未命名2.jpg
发表于 2015-9-18 12:50:56 | 显示全部楼层
water6000 发表于 2015-9-18 09:51
最新版啥时候出来啊?比较关注中!

不是已经发布了吗?~~~

看这里http://www.speedphp.com/thread-4828-1-1.html
发表于 2015-9-18 12:53:47 | 显示全部楼层
xiaoziwuzui 发表于 2015-9-18 12:06
今天突发奇想,把speed的模板类换成 smarty
发现效率变得极其低下,

测试起来的代码是什么样子的?

记得新版的view已经修改,不能直接跑的~~~
您需要登录后才可以回帖 登录 | 注册成为新用户

本版积分规则

手机浏览|简版|中文PHP框架|开源协议|SpeedPHP.com ( 粤ICP备08008671号

GMT+8, 2020-8-7 03:21

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表