Kohana - PHP5框架 - 我看过的开源框架
2019独角兽企业重金招聘Python工程师标准>>>
最近在学习Kohana这个框架,发现里面的结构层次很齐全完整。但从另一方面来说,更像是一个地地道道的面向对象的开发框架,如果根据《设计模式解析》一书中介绍的理念重构,绝对是一个了不起的框架 。以下是一些个人的分析结果,仅供参考。
框架代码静态分析:
1、继承层次过多,很多为没必要的接口继承
2、类的内部声明和实现混乱,静态与构造类混乱 (静态方法、类属性、构造函数、类方法)
3、内核抽象类与框架核心类混乱,即作为最抽象层的Kohana 与外部有交错,包的界定不明确(内外交错继承)
4、父类依赖于子类,不符合依赖倒置原则
5、感觉是标准面向对象的做法
6、代码行内注释很多
7、假抽象,即最高层的抽象类,其实都是static的方法,毫无抽象可言
8、继承泛滥,static泛滥
9、$data = base64_decode($data, TRUE);
10、对数组更简单的转换写法:
if (!is_array($arr)) {
$arr = array($arr);
}
$arr = (array)$arr;
11、strtr strtr — 转换指定字符 相当于str_replace
12、register_shutdown_function(PHP 4, PHP 5) 注册脚本退出时的一些回调函数,特别适合于日记的最后写入,但是在die()的情况下会终止,exit()可以,但在回调函数里面的exit()不行
13、有代码示例,和使用说明,示例代码首页空一段
14、生成TOKEN更好的方法:$token = sha1(uniqid(NULL, TRUE)); string(40) "5e8000b3f16ba703c7cfc367571a90ec1bdfa295" //sha1(PHP 4 >= 4.3.0, PHP 5) 返回值是一个 40 字符长度的十六进制数字。
15、一堆没用的代码在./kohana/system/classes
最后,附图一张:
转载于:https://my.oschina.net/dogstar/blog/371263
Kohana - PHP5框架 - 我看过的开源框架相关推荐
- python游戏服务器框架_Scut游戏服务器免费开源框架--快速开发(2)
Scut快速开发(2) Python脚本开发 1 开发环境 Scut Lib版本:5.2.3.2 需要安装的软件 a) IIS和消息队列(MSMQ) 进入控制面板,程序和功能 b) SQL Serve ...
- dwr框架ajax验证账号,dwr-Ajax开源框架
dwr全称Direct Web Remoting原理将java代码转化成js对象,实现跨域访问 web.xml<?xml version="1.0" encoding=&q ...
- 【完结】12大深度学习开源框架(caffe,tf,pytorch,mxnet等)快速入门项目
这是一篇总结文,给大家来捋清楚12大深度学习开源框架的快速入门,这是有三AI的GitHub项目,欢迎大家star/fork. https://github.com/longpeng2008/yousa ...
- 【完结】给新手的12大深度学习开源框架快速入门项目
文/编辑 | 言有三 这是一篇总结文,给大家来捋清楚12大深度学习开源框架的快速入门,这是有三AI的GitHub项目,欢迎大家star/fork. https://github.com/longpen ...
- java ibatis 获取执行的sql_阿里Java技术面开源框架面试真题曝光,这些真题你能答对多少?...
前言: 又到了一年的金九银十季,相信有很多朋友都已经有了跳槽的准备,或者有已经跳槽成功的朋友,我也有一个利用这次机会跳槽阿里的朋友,下面我分享的就是他面试记得的阿里面试关于spring全家桶的一些问题 ...
- 12大深度学习开源框架(caffe,tensorflow,pytorch,mxnet等)汇总详解
这是一篇总结文,给大家来捋清楚12大深度学习开源框架的快速入门,这是有三AI的GitHub项目,欢迎大家star/fork. https://github.com/longpeng2008/yousa ...
- 从零开始部署Guns V4.0 (SpringBoot开源框架)教程
开篇废话:Guns作为一个较新且流行的SpringBoot框架,对于那些已经接触过各种SSH,SSI,SH等传统的JAVAEE框架的老手们来说肯定是很快就能够成功部署和掌握的了,但也不免有许多新手想学 ...
- 深度学习开源框架知识汇总
深度学习开源框架知识汇总 1 概述 1.1开源框架总览 1.2如何学习开源框架 2 开源框架 2.1 Caffe (1)caffe的使用通常是下面的流程: (2)caffe:图像分类从模型自定义到测试 ...
- 11 个 AI 和机器学习模型的开源框架
译文链接:http://www.codeceo.com/article/11-frameworks-for-ai-and-ml.html 英文原文:11 Open-Source Frameworks ...
- Jeasyframe 开源框架 V1.6 发布
2019独角兽企业重金招聘Python工程师标准>>> 产品介绍: Jeasyframe开源框架是基于SSH框架开发的一款开源框架,框架集成了公司.部门.职位.用户.角色.菜单.权限 ...
最新文章
- 了解你所不知道的SMON功能(三):清理obj$基表
- 【快乐水题】229. 求众数 II
- SAP UI5 -all controls within the same view will share the same data Model
- CCPC-Wannafly Winter Camp Day8 (Div2, onsite) A 题 Aqours (精巧的树形DP)
- 操作系统【五】分段内存管理+段页式内存管理
- java中的让步_java基本教程之线程让步 java多线程教程
- 鸿蒙系统 塞班,华为鸿蒙系统来了:安卓系统会成为下一个“塞班”吗?
- ubuntu和windows上pip和windows上conda国内源更新module
- php设置http请求头信息和响应头信息
- flash传值给javascript,并在html页面输出,javascript向flash swf文件传递参数值注意细节...
- 1z0_031 视频课程随记
- java静态接口方法使用_使用静态方法对接口进行Java编程
- c语言匀加速直线运动求位移,匀加速直线运动规律.doc
- 模电学习笔记--二极管
- 性价比高的/便宜又好用的SSL证书品牌有哪些?
- Bezout's Lemma 学习笔记
- 内存卡打不开需要格式化怎么恢复数据
- PDF限制编辑怎么解决
- netty系列之:请netty再爱UDT一次
- GOF23种设计模式精解
热门文章
- python函数参数用法_Python:函数参数类型及其用法
- 凸优化有关的数值线性代数知识 3LU Cholesky和LDL因式分解
- 借助Haproxy_exporter实现对MarathonLb的流量和负载实例业务的可用状态监控-续
- 卷积神经网络的卷积操作
- 【机器学习】主成分分析 (PCA)、无监督特征提取
- poj2965--枚举专题 (算法巧妙)
- 超级易懂的非递归实现二叉树三种遍历(与网上都不一样)
- 7 ida pro 网盘_7月上市新车汇总 日产轩逸领衔 自主高端红旗HS7最具潜力
- css 绝对定位底部居中,css – 在另一个元素的中心下方水平居中绝对定位元素
- 使用CefSharp在.NET中嵌入Google kernel