写个PHP框架吧
肯定会问:现在的PHP框架那么多了,为什么还要写一个PHP框架呢?
1、时代:PHP7来了,现在的所有框架都是基于PHP5.x的。到时候PHP7正式推广出来,现有的框架都不能发挥PHP7的最大性能优势,比如强类型和JIT。到时候很多框架就会有一个版本分裂的问题出现了,很多框架需要同时维护两套代码,部分框架可能会力不从心而挂掉了。所以现在要写一个PHP框架就要以PHP7为最低版本要求,虽然现在PHP7还是测试版本,框架开发难度有点大。
2、时长:一个框架开发要多少呢?个人观点:从开发到测试、到实验项目、到内测,应该需要一年到两年的时间吧。再从推出到被大众认知,估计也需要半年到一年的时间。那么整个预算下来,这样一个框架从计划到进入大众视野就需要两年到两年半的时间,而这个时候,预测PHP7已经普遍进入大众平台了。
3、接口:这里说的接口是指对框架使用者的API,从目前国内情况来看,Thinkphp在国内公司中的使用情况占有绝对的数量优势。而且其简单易用的特性也是大家都有目共睹的。用户体验,一直都是中国人最擅长的事情。所以,兼容TP接口吧。
4、架构:MVC架构肯定就得参考国外吧,不过也是建议先规划、再参考,不要完全照搬。一个PHP框架被几乎所有的中高级开发人员在技术上鄙视这种现象不要出现第二次了好伐。
5、附加:现有的PHP框架都是纯PHP的,但是网站的开发却是一个整体,在这一个网站的开发过程中,前端和后台之间的桥梁 JS 就显得格外重要了。所以在新开发的PHP框架中,应该开发配套的 JS 方法库,建议是类似基于jQuery的扩展这一类的。
6、社区:能否考虑与现有社区合并?我建议是与TP的社区,因为大家的接口是一样的。另外一点是TP的社区很活跃,用户量很乐观。很多人用TP也是在用的层面上,并没有很深地去考究框架内部如何实现,所以在应用层面上完全有理由考虑与TP社区合并。在框架架构及内部实现上,可以考虑在TP社区中开辟独立的一块。可以考虑被TP兼并或者兼并TP →_→
7、文档:文档一定要 有序!清晰!美观! 这方面TP绝对是典范。
8、国际化:一定要有英文版本,Github上建议放英文版的。要团结一切可以团结的力量,歪果仁的技术可是很牛的,让他们有力出力吧。TP在这个方面是一个活生生的失败例子,所以它的架构一直被人技术鄙视。。。
So Do it now! 还是 TODO 还是 Let it go
写个PHP框架吧的更多相关文章
- 刚写完的商城erp + 这个商城前台,新鲜出炉。自己1个人写, 包括php框架和前端html页面.
刚写完的商城erp + 这个商城前台,新鲜出炉.自己1个人写, 包括php框架和前端html页面. 刚写完的商城erp + 这个商城前台,新鲜出炉.自己1个人写, 包括php框架和前端html页面.
- 读《架构探险——从零开始写Java Web框架》
内容提要 <架构探险--从零开始写Java Web框架>首先从一个简单的 Web 应用开始,让读者学会如何使用 IDEA.Maven.Git 等开发工具搭建 Java Web 应用:接着通 ...
- 自己动手写PHP MVC框架
自己动手写PHP MVC框架 来自:yuansir-web.com / yuansir@live.cn 代码下载: https://github.com/yuansir/tiny-php-framew ...
- 【EatBook】-NO.3.EatBook.3.JavaArchitecture.2.001-《架构探险:从零开始写Java Web框架》-
1.0.0 Summary Tittle:[EatBook]-NO.3.EatBook.3.JavaArchitecture.2.001-<架构探险:从零开始写Java Web框架>- S ...
- 自己动手写Android数据库框架
前言 相信不少开发人员跟我一样,每次都非常烦恼自己写数据库,并且那些数据库语句也经常记不住.当然网上也有非常多非常好的数据库框架,你能够直接拿来用,可是 非常多时候我们的项目.特别是一个小型的Andr ...
- 手写Spring事务框架
Spring事务基于AOP环绕通知和异常通知 编程事务 声明事务 Spring事务底层使用编程事务+AOP进行包装的 = 声明事务 AOP应用场景: 事务 权限 参数验证 什么是AOP技术 AO ...
- 仿flask写的web框架
某大佬仿flask写的web框架 web_frame.py from werkzeug.local import LocalStack, LocalProxy def get_request_cont ...
- 剖析手写Vue,你也可以手写一个MVVM框架
剖析手写Vue,你也可以手写一个MVVM框架# 邮箱:563995050@qq.com github: https://github.com/xiaoqiuxiong 作者:肖秋雄(eddy) 温馨提 ...
- 手写spring事务框架-蚂蚁课堂
1.视频参加C:\Users\Administrator\Desktop\蚂蚁3期\[www.zxit8.com] 0017-(每特教育&每特学院&蚂蚁课堂)-3期-源码分析-手写Sp ...
随机推荐
- .Net中使用aliases让相同命名空间的dll引用共存
有些不得已的时候,我们需要同时在代码中使用某个dll的不同版本.比如用低版本的dll中的方法导出数据,然后使用高版本的方法导入数据来实现数据的升级. 又或者需要同时使用第三方的dll不同版本.如何使它 ...
- Asp.net MVC中提交集合对象,实现Model绑定
Asp.net MVC中的Model自动绑定功能,方便了我们对于request中的数据的处理, 从客户端的请求数据,自动地以Action方法参数的形式呈现.有时候我们的Action方法中想要接收数组类 ...
- Linux服务器宕机案例第二则
邮件告警发现海外工厂一Linux服务器连接不上,DPA(Database Performance Analyzer)系统也发现其出现问题,ping这台服务器发现网络不通,联系不到当地系统管理员,邮件咨 ...
- Kafka 分布式的,基于发布/订阅的消息系统
Kafka是一种分布式的,基于发布/订阅的消息系统.主要设计目标如下: 通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能. 高吞吐量:即使是非常 ...
- JDK动态代理和CGLIB的区别
Aspect默认情况下不用实现接口,但对于目标对象,在默认情况下必须实现接口 如果没有实现接口必须引入CGLIB库 我们可以通过Advice中添加一个JoinPoint参数,这个值会由spring自动 ...
- Hadoop源码之HDFS(1)--------通信方式
说起hadoop这个东西,只能说真是个伟大的发明,而本人对cutting大神也是无比的崇拜,记得刚接触hadoop的时候,还觉得这个东西挺多余的,但是现在想想,这个想法略傻逼...... 2006-2 ...
- ubuntu16.04源码编译安装wine1.8.6安装不上引来的错误
configure: libxcomposite 64-bit development files not found, Xcomposite won't be supported. configur ...
- (转)Java 详解 JVM 工作原理和流程
作为一名Java使用者,掌握JVM的体系结构也是必须的.说起Java,人们首先想到的是Java编程语言,然而事实上,Java是一种技术,它由四方面组成:Java编程语言.Java类文件格式.Java虚 ...
- [转载] python的sorted函数对字典按key排序和按value排序
1.sorted函数按key值对字典排序 先来基本介绍一下sorted函数,sorted(iterable,key,reverse),sorted一共有iterable,key,reverse这三个参 ...
- 【Linux】Linux 目录结构
博客已转移,请借一步说话 .http://www.weixuehao.com/archives/492 初学Linux,首先需要弄清Linux 标准目录结构 / root --- 启动Linux时使用 ...