最难php框架,PHP框架发展存四误区 死穴不除难成大器
随着PHP技术的普及,PHP各类应用框架也如雨后春笋般飞快的发展,与之相矛盾的是,一些所谓的高手经常把自己写的一个"框架"作为一个产品,实际生产行为中往往使用某些CMS或论坛程序作为核心开发真正的应用。
其实框架这概念,最早来源于C/S软件的应用,比较经典的有:微软的MFC、Java的Spring、Struts、Hibernate(也就是所谓的SSH)之类的框架,当然MFC纯粹是针对C/S类应用的,而后者针对或适用于Web应用,然而不管是那种,应用在Web上,都是有明显缺点的,但PHP一些框架往往都继承了这些思想,所以到目前为止,PHP类框架还都是止于模仿,当然也确实充分利用了PHP的一些特性,但真正在应用上,仍然显得做大项目不足,小项目多余的感觉,这也是PHP框架一般只作为"学者"使用,应用却并不是那么流行,很多所谓的高手也宁愿自己去写一个框架的原因。
那么,PHP框架发展到底存在哪些误区呢?
主要有下面几个方面:
1、把控制器写得过于强大,从而偏离了框架的本质
有些框架的控制器简直可以完全代替rewrite了,但是这样有意义么?完全就是一个无聊的闹剧而已,作为框架,最需要做的事情一是要简便易用,二是提供多一些针对Web真正实用、稳定、必要的库,(而实际当中,系统类库和业务类库往往是不同的)做过多年程序员的人都知道,老手和新手的区别在于,老手通常是有很多即时可用的代码,而新手往往要自己去找,如果框架不能让新手、老手都一样简便实现某功能,那么要框架来干吗?所以说,过分去弄控制器这一块,就偏离了原则,并且可能对开发造成一定的麻烦。
2、思想上仍然按照Java的那种老的一套思路,更适合于开发B/S应用的企业管理软件,而与Web的思路有点偏离
就拿权限与模块化思路来说,一般的框架都把app固定死了,而实际应用中,Web的APP通常是有三重的,具体为:administrator后台管理应用池,member 前台会员控制中心应用池,public公众浏览信息应用池。
传统的框架虽然有通过权限系统进行隔离,但却通常是把administrator、member、public三块应用都混在一块,没有对安全级别进行隔离,不管是思想上,还是对于安全管理,其实都是不利的,就拿传统的论坛程序来说,通常管理员要登录后台,都必须要重新输入一次密码,其实这样做对安全确实是有利的,但从抽像思维来看,这是对管理员的应用进行了分离,姑且把这些应用当作"池"的概念,因此不能用传统的B/S企业管理软件的思想去设计。
3、View的模式过于死板,很难用于商业应用
这里说的商业用户是指要向第三方发布的应用,就拿CakePHP来说,因为视图固定得太死,如果想设计成真正易于美工修改,又支持多模板模式的,那几乎是要完全抛弃它原有的view机制,很多东西太过学术化,而与实际应用有点出入,加上模板引擎的思想大家很难真正做到统一,从而使PHP框架全面混乱。(由于每个人的理解有偏差,所以出现这样的问题也是在所难免的)。
4、框架本身过于庞大,导致实际开发中,很多人对框架进行不同程度的精简,从而严重不统一
就拿官方的ZendFramework来说,其实一些核心文件加载时间就要0.05秒以上,用这种东西,假如要做一些高性能的系统,几乎是不可能的事情,但是在国外,因为对知识产品权比较尊重,所以未经授权是不会胡乱改人的系统的,因为此应之就出现了不少用于提升PHP运行性能的东西,但这终究不是最了的解决方法的。
终上所述,PHP框架要真正做到通用、实用,还需要很长时间,也许真正成熟之后,我们会后台编译在PHP扩展里的真正高性能PHP框架,(也就是说还是想把它做成组件的形式来使用)。
但给初学者的建议,并不是说不主张学习或使用框架,相反,要多些去研它的思想内涵,此外大多数框架程序都充分利用PHP的一些特性,通过学习框架能发现不少东西,但是真正优秀的程序员,最终需要的还是自己的灵魂,多些去想为什么?如何才能更方便,如何才能让自己的"代码库"适应性更强,当想通了这一点,其实一切东西都变得不再那么重要了。
【编辑推荐】
【责任编辑:王晓东 TEL:(010)68476606】
点赞 0
最难php框架,PHP框架发展存四误区 死穴不除难成大器相关推荐
- Atitit. Attilax企业框架 AEF的发展里程总结
Atitit. Attilax企业框架 AEF的发展里程总结 1. Attilax企业框架and框架发展思想 1 2. AEF框架 2 2.1. 多语言支持,涉及的语言 java ,c# php py ...
- DL框架之Keras:深度学习框架Keras框架的简介、安装(Python库)、相关概念、Keras模型使用、使用方法之详细攻略
DL框架之Keras:深度学习框架Keras框架的简介.安装(Python库).相关概念.Keras模型使用.使用方法之详细攻略 目录 Keras的简介 1.Keras的特点 2.Keras四大特性 ...
- 技术帖:砖混、砖木、钢混、板楼、塔楼、框架、框架剪力墙等概念之区别优劣...
技术帖:砖混.砖木.钢混.板楼.塔楼.框架.框架剪力墙等概念之区别优劣 http://bbs.fdc.com.cn/showtopic-16331376.aspx天天听KFS说这些词,资料上写这些词, ...
- Java日志框架 -- 日志框架介绍、日志门面技术、JUL日志(JUL架构、JUL入门示例、JUL日志级别、JUL日志的配置文件)
1. 日志的概念 日志文件是用于记录系统操作事件的文件集合,可分为事件日志和消息日志.具有处理历史数据.诊断问题的追踪以及理解系统的活动等重要作用. 2. Java日志框架 问题: 控制日志输出的内容 ...
- 框架 - SpringMVC框架
框架 - SpringMVC框架 第一章 SpringMVC概述 1.1 SpringMVC简介 1.2 SpringMVC 优点 1.3 第一个注解的 SpringMVC程序 1.4 SpringM ...
- 微服务框架-基础框架
微服务框架-基础框架 转自:http://www.open-open.com/lib/view/open1479194438544.html 对于微服务基础框架可以看作是微服务治理架构的核心内容,包括 ...
- Python攻城师————前端学习(jQuery框架、第三方框架bootstrap框架)
今日学习目标 继续学习jQuery框架剩余的内容. 文章目录 今日学习目标 学习内容 一.jQuery操作标签 class操作 样式操作 位置操作 文本值操作 属性操作 文档处理操作 二.jQuery ...
- ssm框架简单框架流程
ssm框架简单框架流程 1.框架搭建步骤 一:mybatis部分 1.建实体类(pojo层):起名类名与表名一致,但类开头大写:如数据库某表books,类名Books 2.写接口进行一些业务操作(da ...
- 软件测试框架——自动化测试框架(专题)
软件测试框架 --自动化测试框架 专题关键字: 框架( formwork ).自动化.自动化测试框架.专题 内容简介 本专题讲解什么是测试框架,以及什么是自动化测试框架?在了解框架技术的前提下具体介绍 ...
最新文章
- Spring Boot 2.4 对多环境配置的支持更改
- 查看linux下各数据类型的大小
- Random类、String类的一些常用方法
- sql语句中`和'两个符号的区别
- MyBatis 源码解读-typeHandlerElement()
- hadoop--MapReduce_WordCount词频统计案例
- 写给社区的回顾和展望:TiDB 2019, Level Up !
- Java基础---Java---IO流-----对象的序列化、管道流、RandomAccessFile、数据类型的流对象DataStream、ByteArrayStream
- log添加 oracle redo_Oracle更改redo log大小 or 增加redo log组
- 数学计算机学具制作,小学五年级数学学具怎么?
- python 谷歌翻译
- steam官网网页服务器打不开,steam打不开,教您怎么解决steam打不开
- Java:萌新之路——银行账户管理系统
- 工业大数据收集及预测建模方法(南京大学-宋哲博士分享)- 个人总结
- 电大形考作业c语言答案,题目精编国家开放大学电大《管理信息系统》形考网络课作业1-4试题及答案...
- html5在线学习系统,Canvas LMS 在线学习管理系统
- 中断系统的相关知识(二)(可位寻址、不可位寻址)
- PHP文件绕过后缀执行配置
- 阿里区块链“新路线” |链捕手
- iOS开发的Sketch之旅
热门文章
- matlab 图像仿射做差分,基于MATLAB的等差分纬线多圆锥投影变换
- 【JS里面使用var声明变量存在的三个问题】
- 楚列斯基分解法、求矩阵范数的C++实现
- 服务器发送了 HTTP 状态代码 401: Unauthorized
- 初中计算机基础考试试题及答案,计算机基础考试试题及答案(三)
- Android智能电视应用程序开发浅谈(三)
- html练习--写信
- ESXi通过命令行创建并直通RDM磁盘
- flink+drools动态规则示例之温度跳变告警
- Flutter 入门指北(Part 2)之基础部件