-
PHP框架的原理
说到PHP框架,可能很多PHP新手会感到有些胆怯。其实,PHP框架也不是那么深不可测的,框架就是别人使用PHP基础只是为你写好了的东西,只是封装在一起;这就好比我们使用PHP的函数,函数都是已近写好了的,我们只要按照函数使用的规则,比如,为函数传递参数的个数、类型以及函数返回的值类型等。理解了PHP函数的这些使用规则,我们就可以大胆、放心的去使用了。同样道理,PHP框架也有自己的规则,比如项目文件夹的部署、控制器类的命名规则以及数据表的命名规则等。了解了PHP框架的使用规则我们就能去使用PHP框架提供的全部功能了。
PHP框架并不是那么高不可攀,每位PHP程序员都应该加入到PHP框架的学习和使用中来,毕竟一个人的精力是有限的,如何你每个项目都全部由自己开发的话,那么你将浪费许多时间用在做相同的事情上。比方说,几乎每个项目都有数据的验证,那么你要为每个项目都要编写数据验证的PHP代码,而如果你使用PHP框架的话,这些都是封装了可以直接拿来使用的。
PHP框架也是使用PHP的基本知识来写的,没有必要看到框架二字就退缩了。对PHP基础知识非常熟悉的话,学习PHP框架是件轻松而快乐的事情。框架的使用会给你的项目节省50%左右的项目周期时间。
PHP框架的优点
1、PHP框架使代码更安全。一般PHP框架都采用单入口文件的模式,我们只要在入口文件进行验证即达到了所有文件验证的目的。
2、PHP框架缩短了项目开发周期,这可能是最大的优点了。
3、使用PHP框架架构项目思路清晰、结构明显。
PHP框架选择标准
在如此多的PHP MVC框架中,怎样去选择一款各方面都不错的框架学习并在项目中使用它?这是每一个PHPer都会面临的问题。比如当前比较流行的框架有:ZendFrameWork、ThinkPHP(国产)、CodeIgniter、YII等。每个人心目中的好坏标准不一样,再加上有的人习惯了某框架,想让他再接受其优秀的框架也是比较难的。所以,我们应该怎样去判断一款框架是否属于自己,变得非常的突出。现在我给出几个标准:
-
性能
所谓的性能指的是IO、CPU占用、PHP解析时间等几个指标。当前的服务器最突出的问题是CPU已经非常快了,内存已经够大够便宜了,唯独硬盘IO不够高。这就像一个一个智商150与一个智商80的人做1+1一样,根本体现不出智商的优越性。 -
全栈式
虽然我个人不太赞成PHP框架过度全栈式。但是,如果能把全栈式做到优雅简洁,我也是非常兴奋的。什么是全栈式?就是一款框架包含了WEB开发中所有的东西。比如:上传、分页、导入导出、邮件、日志、错误、二维码、RSS、RBAC等。这样的话,才能真正解决掉我们去自己实现的麻烦,节省我们的时间。也提高了代码的安全性移植性。 -
学习难度是否陡峭
毕竟我们要运用到实际的项目中。以后陆续还会添加更多的人进入项目开发中。如果,学习难度过于陡峭,势必会影响项目的进度和后期维护的成本。目前,我用过的框架中ThinkPHP做得还不错,文档还比较完整易懂。换作正在用的YII框架,简直是头痛。提供的文档实在是过于简单,示例不够丰富。而且,代码不够优雅。在某些设计上,过于面向对象,导致在PHP这种语言中操作起来不是特别顺手。 -
框架社会是否活跃
一个社区活跃与否,直接关系到这个框架的未来的命运。谁也不希望今天还牛逼的框架,就因为没有与时俱进,最终淹没在历史的长河中。自己又得花时间掌握新框架。比如:前几天MongoDB还是比较火的时候,当时几乎没有框架在DB层,即ORM实现这个数据库的接口。而项目中可能会考虑使用MongoDB。当时几个比较知名的且速度比较过得去的框架都没有支持。结果,还是咱们国产的ThinkPHP支持了。虽然,BUG可能有点多。至少,某种程度说明了一个活跃的社区是非常有必要的。 -
框架使用的群体大小
一款框架再牛逼,如果没有人使用。你学了也只能在自己的一亩三分地有所建树。出了这个圈,效果就不明显了。PHPer学习这个东西,主要还是为了能找一份高薪顺手的工作。如果,学了半天,结果却没有人用这个框架在项目中。那是相当悲催的。
-
性能
相关文章
- 一步步搭建自己的轻量级MVCphp框架-(一)什么是PHP框架以及MVC设计模式
- RabbitMQ 优点和缺点- 消息可靠性:RabbitMQ 提供了持久化功能和消息确认机制,确保消息在各种情况下都能可靠地存储和处理。 灵活的路由:通过多种交换机类型和绑定规则,RabbitMQ 能够灵活地路由消息到指定的队列。 支持多种消息协议:实现了 AMQP 等(MQTT、STOMP)标准化、开放的消息队列协议,使其能够与多种语言编写的应用程序进行通信。 插件化扩展:RabbitMQ 提供了丰富的插件系统,可以通过插件扩展功能,如死信队列、压缩、追踪等。 高可用性:支持集群模式和镜像队列,确保服务的可用性 易用性和可管理性:提供了丰富的 API 和管理工具,以及多种客户端库和框架支持,易于集成和使用。 多语言支持:RabbitMQ 支持多种编程语言的客户端,包括 Java、Python、Ruby、C#、Node.js 等,方便开发人员集成到各种应用中。 高性能:在处理大量并发消息时表现出色。 广泛的社区支持:拥有庞大的开发者社区和丰富的文档资源。 劣势: 性能和吞吐量较低:相比于 Apache Kafka 等面向大数据流处理的消息队列系统,RabbitMQ 的吞吐量较低,不适合处理海量的实时数据流。RabbitMQ 的设计更注重消息的可靠性和灵活性,而非极高的吞吐性能。
- 快速排序中的partition函数的枢纽元选择,代码细节,以及其标准实现
- 选择MySQL数据库的命令以及PHP脚本下的操作方法
- 利用js实现php的全选、反选、取消当前选择、以及全选删除的功能
- 如何选择合适的PHP开发框架
- PHP框架的选择及几款主流框架的性能基本评测
- 选择Web框架的20条标准
- 有没有更好、更“标准”的方法在PHP中执行SQL查询而不使用框架?
- ubuntu系统中安装redis的方法以及PHP安装redis扩展、CI框架sess使用redis的方法