热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用PHP框架的十大好处

不会因为你新建了一个/inc的文件夹,然后在里面写function.php文件,就能说明你的代码有组织了。但是当你使用一个PHP框架的时候,框架本身已经有一定的文件夹结构,你需要遵循框架的一些标准,这样就可以保证你始终用一定的方式来组织你的代码

1.可以更好的组织代码和文件夹。

  不会因为你新建了一个/inc的文件夹,然后在里面写function.php文件,就能说明你的代码有组织了。但是当你使用一个PHP框架的时候,框架本身已经有一定的文件夹结构,你需要遵循框架的一些标准,这样就可以保证你始终用一定的方式来组织你的代码。

  不幸的是,一些命名行冠军仍然在使用着vi,这可能是一个挑战。你工作的时候将会遇到很多体积很小的文件,当你使用框架了,你就可以很方便的使用现代化的编辑器或IDE来浏览你的代码结构,这样你就能很快的找到你所需要的文件。

  2.公共代码和类库

  PHP是一门伟大的web开发语言,它提供了无数的工具和类库。但是当你试图单独建立一个网站的时候,你要么自己写代码,要么使用第三方的代码。

  所有优秀的php框架都会提供一些类库和辅助函数给你,它们能给你提供以下帮助:表单验证、输入输出的数据过滤、数据库抽象、Session和COOKIE处理、Email、日历和分页等,这样的例子不胜枚举。更何况,还有一些社区提供的大量的插件,你可以将它添加到你的框架中。

  3.mvc模式

  著名的mvc模式要追溯到1979年,是一个叫哈维的挪威计算机科学家首次提出来的。

  PHP工作起来本身就像是一个模板引擎。但是,如果你很不负责任的使用它,这样将会使你的代码很丑陋,将会使代码难以维护。

  Mvc模式:

  模型:通常代表着你的数据结构和数据库的接口;

  视图:包含了页面模板和输出;

  控制器:处理页面的请求。

  这种分离是代码更整洁,更容易维护。

  4.安全

  在PHP中,可能你已经想过很多办法对输入和输出进行过滤了,以防止您的网站被攻击。手动的处理这些过滤将会很累,当你使用了框架以后,你就可以忘掉那些累了。

  对于一个框架,大部分过滤工作可以帮您自动完成。例如codeigniter框架:

  通过数据库的任何值将会被过滤这样防止sql注入性攻击。

  所有html可以自动生成,如表单辅助函数和url辅助函数可以对输出自动过滤所有用户输入的数据都可以进行过滤防止xss攻击。

  想要加密COOKIE只需要改变一个配置选项就可以了。

  5.使用少的代码,提高开发速度

  所有的PHP框架都会有一个学习曲线,但是一点你越过了谷峰,你就会享受快速开发带来的乐趣了。

  使用框架意味着你写更少的代码,这就意味着更少的时间花在打字上面。你不必为每个项目去查找第三方的类库,因为框架已经帮你提供了很多类库了。

  此外,因为你的代码已经以一种方式默认的组织起来了,这样你就能更快的发现错误和维护代码,对你现在的代码进行更改。

  6.社区支持

  所有流行的PHP框架在背后都有一个很活跃的社区。你可以和其他开发人员在寻求帮助、讨论或反馈。

  7.增强就业竞争力

  不知道你最近有没有看过,一些公司的职位要求都需要有框架的使用经验,作为一个web开发人员拥有PHP框架的的使用经验将会增强就业竞争力。

  8.性能

  反对使用PHP框架的大部分人都会说框架降低了PHP的性能。

  不过首先你应该明白,开发的费用远远高于服务器硬件的价格。节省开发和维护的时间上的钱有可能超过任何额外需要花费在服务器上面的钱。

  把上面说的这些抛到一边去,你实际上也可以使用PHP框架获得性能上的优势。框架本身带有一些工具,它们能帮你做缓存、测试和分析等等。

  现代的一些框架也都是动态的加载它所需要的一些代码的。

  9.适合团队

  PHP框架可以为帮你创建一个合适的环境,提供良好的团队合作方式。你可以让设计师工作在视图层上面,让数据库工程师工作在模型层上面,让聪明的程序员反复的使用类库和插件。你也可以让别人建立单元测试,因为PHP框架本身带有很多工具。

  10.很有趣

  这点实际上可能是所有理由当中最重要的一点了。当你的工作充满乐趣的时候,你的工作就会更加高效。如果你一直使用老式的PHP编码多年,或者对它已经非常厌倦了。开始使用框架将会给你增加一些士气,就像一个新的玩具一样,并且你用框架同样可以做很多很酷的事情。至少我当初第一次使用框架的时候就是这种感觉。我相信很多web开发人员都会有类似的经历。

  结论:

  使用PHP框架可能不是你的最佳选择,但是,你应该使用对web世界保持开发的态度,不断从网络中新的技术新的发展来学习知识。今天框架很流行很火爆,我们仍然不知道PHP框架明天将会是怎样的,但我想要说的是,PHP框架绝对是值得探讨的。


推荐阅读
  • 浅解XXE与Portswigger Web Sec
    XXE与PortswiggerWebSec​相关链接:​博客园​安全脉搏​FreeBuf​XML的全称为XML外部实体注入,在学习的过程中发现有回显的XXE并不多,而 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 本文介绍了一个免费的asp.net控件,该控件具备数据显示、录入、更新、删除等功能。它比datagrid更易用、更实用,同时具备多种功能,例如属性设置、数据排序、字段类型格式化显示、密码字段支持、图像字段上传和生成缩略图等。此外,它还提供了数据验证、日期选择器、数字选择器等功能,以及防止注入攻击、非本页提交和自动分页技术等安全性和性能优化功能。最后,该控件还支持字段值合计和数据导出功能。总之,该控件功能强大且免费,适用于asp.net开发。 ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
  • PHP输出缓冲控制Output Control系列函数详解【PHP】
    后端开发|php教程PHP,输出缓冲,Output,Control后端开发-php教程概述全景网页源码,vscode如何打开c,ubuntu强制解锁,sts启动tomcat慢,sq ... [详细]
  • 通过存储型XSS漏洞获取目标用户本地私钥信息
    运维|安全存储型XSS漏洞,目标用户,本地,私钥信息运维-安全舍得网源码,vscode代码检查工具,ubuntu壁纸修改,tomcat网页部署项目,爬虫枯木,php采集文件,马鞍山 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 延迟注入工具(python)的SQL脚本
    本文介绍了一个延迟注入工具(python)的SQL脚本,包括使用urllib2、time、socket、threading、requests等模块实现延迟注入的方法。该工具可以通过构造特定的URL来进行注入测试,并通过延迟时间来判断注入是否成功。 ... [详细]
  • wpf+mvvm代码组织结构及实现方式
    本文介绍了wpf+mvvm代码组织结构的由来和实现方式。作者回顾了自己大学时期接触wpf开发和mvvm模式的经历,认为mvvm模式使得开发更加专注于业务且高效。与此同时,作者指出mvvm模式相较于mvc模式的优势。文章还提到了当没有mvvm时处理数据和UI交互的例子,以及前后端分离和组件化的概念。作者希望能够只关注原始数据结构,将数据交给UI自行改变,从而解放劳动力,避免加班。 ... [详细]
  • 数据库锁的分类和应用
    本文介绍了数据库锁的分类和应用,包括并发控制中的读-读、写-写、读-写/写-读操作的问题,以及不同的锁类型和粒度分类。同时还介绍了死锁的产生和避免方法,并详细解释了MVCC的原理以及如何解决幻读的问题。最后,给出了一些使用数据库锁的实际场景和建议。 ... [详细]
  • 从壹开始前后端分离【 .NET Core2.0 +Vue2.0 】框架之六 || API项目整体搭建 6.1 仓储模式
    代码已上传Github+Gitee,文末有地址  书接上文:前几回文章中,我们花了三天的时间简单了解了下接口文档Swagger框架,已经完全解放了我们的以前的Word说明文档,并且可以在线进行调 ... [详细]
  • 一、Struts2是一个基于MVC设计模式的Web应用框架在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts2优点1、实现 ... [详细]
author-avatar
btbxin
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有