7 Star 15 Fork 3

shooke / corephp2

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

CorePHP

简介: CorePHP框架是一个快速,安全,灵活的php开源框架,主要是为了简化和快速开发小型项目和开源系统二次开发而诞生。它既可以完美的支持MVC模式,又可以不受限制的支持传统编程模式。它是一个轻量级的php框架,同时也是一个实用的php工具包。

特点: 快速自动加载功能,绝不把时间浪费在加载不必要的模块上。它具有强大的缓存支持,支持html静态缓存、模板缓存和二级局部缓存,还支持Memcached内存缓存。它明确的设计能与 AJAX 一起高效率的工作。安全它包括了输入验证,输出过滤,SQL 注入和跨站点脚本的预防。灵活框架采用松耦合,你可以自由添加自己所需要的功能类库,自由配置框架各项参数,包括url解析、模块路径、命名规则,等等等等。

主要功能

路由解析:

支持6种url格式 URL_REWRITE_ON 是否开启重写,偶数带有执行文件 奇数因此执行文件

0 index.php?g=group&m=module&a=action
1 ?g=group&m=module&a=action
2 index.php/group/module/action
3 /group/module/action
4 index.php?r=/group/module/action
5 ?r=/group/module/action

全局配置

在Config类中有框架的所有配置项,并做了初始化,当用户自己定义的config.php文件内定义了新的属性则,覆盖Config全局类中的属性。配置项相当的灵活可以配置url规则中的分隔符,分组分隔符,数据库配置,模板配置,缓存配置等等。

模型管理

模型链接采用根据数据配置自动单例实例化,也就意味着如果你的程序只有一个数据库,那么在你执行程序的过程中只会有一个数据库链接,避免了数据库重复链接对系统造成的开销。数据库的链接方式可以是pdo misqli 也可以是旧的mysql接口。只要一个配置任意切换,无需调整任何代码。如果有需要可以自行添加接口驱动。只需要放在core/db文件夹下就可以了。关于类中方法的命名,可以随便拷贝一份现有的程序稍加修改就可以。
数据验证是模型中必不可少的一环,验证规则集成了日常应用的所有规则。比如唯一、邮箱、数字、密码和重复密码是否一致等等。

缓存

缓存分为数据缓存和页面缓存两种,数据缓存就是将数据库中的数据缓存起来避免多次读取数据库,在规定的时间内,数据将在缓存中读取不会去查询数据库,加快执行效率。
页面缓存则是倾向于cms或其他发布系统开发中,很多时候页面更新频率不是很高,没有必要去经常读取数据库,或者说连链接数据库都不需要,这时候页面缓存就非常的必要了。开启页面缓存,设置缓存时间在规定时间内页面会直接输出生成的html。

http请求处理

对于页面请求的处理做了相当全面的处理,如获取完整url,获取当前执行文件,获取请求参数,获取ip地址,等等

模板

一个框架如果没有模板处理如何可以做到mvc,对于模板CorePHP采用了简洁写法。

{$var}
{date('Y-m-d')}
{loop $array $val}
html code
{/loop}

这种简洁的语法避免了学习模板语法规则,造成的学习难度。当然简单并不意味着少,在模板中你可以尽情的使用变量、数组、常量、静态类、静态方法、系统函数等。

错误处理

系统对错误做了处理,很多会暴露数据表名,文件路径的危险错误都做了处理!例如表名会显示[pre]tablename,隐藏了表前缀。开发中的异常error错误类会自动捕获处理后输出错误信息,是信息易于阅读,有更加安全。程序自动发布时你可以关闭debug。这样程序会阻止所有异常错误。

功能丰富的函数库

很多功能我们习惯写成函数,调用起来十分方便,大大提高了开发效率。lib里有丰富的功能函数,还有常用类库。例如邮件发送,图片上传,验证码,地理位置查询,字符串处理、文件处理、压缩解压、权限验证RBAC等等。

关于1.x和2.x的说明

1.x是兼容php5.3之前的版本,因为现在大多数服务器都采用了php5.3 5.4 5.5等后续版本甚至有写服务器都开始使用5.6了所以,开发了corephp2.x,为什么是5.3+,因为php5.3是一个历史性的版本,它提出了命名空间以及一些面向对象的新特性,因此有必要为5.3+版本开发一个新版本的corephp了,corephp2.x便是此大环境下应运而生的。在命名上没有参考thinkphp3.1 3.2的命名方式,版本太接近容易产生歧义,1.x和2.x的版本命名方式。
关于如何选择1.x还是2.x,很简单,如果你的php是5.3+请选择CorePHP2.x反之低版本php请选择CorePHP1.x

鸣谢

感谢canphp thinkphp yii 这些优秀的框架,是你们给了我创作的灵感。再次特别感谢canphp 在框架的目录结构上延续了canphp的方式。从corephp1.x开始corephp的目录结构一直延续与canphp相同的结构,因为这样很简洁,我觉得一个框架core lib ext三个文件夹足矣。

空文件

简介

corephp2 基于php5.3+,引入php新特性 展开 收起
PHP
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
PHP
1
https://gitee.com/shooke/corephp2.git
git@gitee.com:shooke/corephp2.git
shooke
corephp2
corephp2
master

搜索帮助