关于php原生开发与主流php框架使用心得

这篇具有很好参考价值的文章主要介绍了关于php原生开发与主流php框架使用心得。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.PHP是世界上最好的web开发语言

PHP是世界上最好的web开发语言,这个无可辩驳,当然去掉web两个字,这毫无意义,网上很多喷子鼓吹的java,.net,python都差的远。

php有如下优点:

  • 简单易学。正是因为如此,才造就了php开发者人群的庞大和良莠不齐,但是我们不能因为阳光和空气获取起来毫不费力就说它不重要吧?这个是人的问题,不是开发语言的问题。
  • 灵活性高,和html、css高度融合。因为php本就是为web开发而生的,其他的语言都是从桌面程序和控制台程序发展起来的。
  • 服务器配置简单。网上一键配置多如过江之鲫,在没有比它更简单的了。
  • 对服务器要求低,和好兄弟mysql搭配,随便一台办公电脑都能跑的很溜。要是你用java+oracle,得专门买台服务器,你想用办公电脑当服务器,不用一百人访问就卡死你。我以前接手过一个公司的oa,同样功能用php做出来,万八个人访问起来毫无压力。

php的缺点:

  • 缺乏并发和事务处理机制。对于超大型的网站,数千万级访问来说,如果是新闻网站还好,可以采用生成html方式,基本毫无压力,但是对于一些纯纯动态的如oa(千万级访问的oa系统恕我孤陋寡闻,没见过)和复杂的事务流程来说,效率并不高,所以某宝的一些秒杀活动、12306订票、银行atm取款机等都用java或python,因为他们重要的不是浏览内容,而是事务处理,而且通常是多台服务器分布式并发执行。
  • 只支持web开发,不方便做 .exe文件。这个其实也不算缺点,人家本来就不是干这个事的,就像你拿着大刀长矛去厨房切菜非得说不如菜刀好用,让一个程序员去炒菜说不如新东方学徒,你非得这样,谁也没办法。
  • 语法不太严谨。变量不用定义就能用,这个我觉得很方便,另外php有严格模式,启用后变量必须声明才能用,你愿意你可以设置。另外说起这个我就特不习惯Python没有大括号的做法,说是优美,我去,如果要复制黏贴一段代码,光调整格式就费老大的劲,而且代码一长或者把代码拷贝的别的机器,很容易出错。

什么时候使用PHP

项目不大,如何判断这个呢,就看你需要几台服务器运行这个程序,如果有几十、几百台的话那就是大项目了。10台以内php都可以轻松应付。

2. 中型项目减少PHP压力的方法

对于千万级的中型项目,可以采用这些方法减少压力:

  • 数据库单独一台机器,或者几台机器(关键词:主从模式、数据复制、数据同步),记住把数据库放在几个地方比把网站代码放在几个地方要容易。
  • 采用二级域名,把几个功能分别放在几台服务器。你可以把session和公共变量保存在数据库中,保证无缝隙登录整合。

3. 原生开发VS框架

原生开发的优点:

  • 学习成本低
  • 雍余代码少,原本一个几百k搞定的小项目,用thinkphp得10M多
  • 执行效率高,毕竟框架要耗费很多资源
  • 安全性能高(如果你是高手),框架有时候存在漏洞,会让你的程序天然带入漏洞。
  • 程序配置开发灵活,不用遵从框架的路由规则

框架开发的优点:

  • 开发效率高,代码量少(这里指的是你自己写的代码)
  • 集成功能多,调用比较简单
  • 安全性能高(如果你是新手),毕竟写框架的人水平比你高,想的比你周到。
  • 代码打包后较大,因为包含了框架的代码,特别对于外包,你收了人家三万块,给你300k代码,人家总感觉不合算,用了框架,再加上一些图片,起码30M,当然你无耻点可以搞个几百M。这里你要说原生开发不会搞图片吗,可是人家一看php文件没多少,每个人文件打开才几十行代码,人家傻吗?

个人总结,对于业务逻辑不是很复杂,能用框架的还是用框架吧,确是省事很多。如果你很多功能用框架不好完成,那就用原生,没必要纠结太多。新手如果自己不能判断可以加老刘微信(jsjlaoliu),把你的功能发给我,我可以帮你判断下用什么框架合适。

4. 常见的php框架

4.1 Thinkphp(国产)

这是我目前使用最多的框架,也是国内使用人数最多的框架,日常开发中的大多数功能基本都包含了,如果没有的可以找一下扩展插件,强烈推荐。
支持php7、php8,对我这样的版本强迫症来说,对那些不支持php7以上的框架我都不戏使它(山大方言,不屑于使用它)。
另外从下一篇开始,我准备写个简单的Thinkphp6使用教程,有需要的可以关注我。

4.2 CodeIgniter

怎么说呢,CodeIgniter3.0我用着挺好的,使用频率超过Thinkphp,结果到了4.0,好像完全变了一个软件,易用性大大降低。而且这个框架更新比较慢。对于使用php7以下的(不含)建议使用CodeIgniter3.0,php7以上的还是用Thinkphp吧。

4.3 Laravel

传说中Laravel是一个简单优雅的PHPWeb开发框架,可惜本人不怎么优雅,感受不到,反而是被那些繁琐的配置搞的好乱。其优点是大量的第三方开源库,可以快速方便的实现模块功能,安全机制非常齐全,提交表单的数据验证(验证有差不多80种,能想到的基本都有),提交数据时产生随机_token验证,避免非法提交,能避免跨域攻击;继承了登录验证、权限验证的,这个的确很方便,有兴趣的朋友可以研究一下。

4.4 Yii

Yii采用严格的OOP编写,这个是它的主要特点,奈何我这个人不太喜欢严格,Yii的组件非常多,学习成本也有点高,据说适合用于开发大型Web应用。

4.5 Yaf

Yaf,全称YetAnotherFramework,是一个C语言编写的PHP框架,是一个以PHP扩展形式提供的PHP开发框架,相比于一般的PHP框架,它更快,更轻便,据说性能很高,不过我做的小项目,感受不出来,这个框架学习起来难度有点大,使用人数也不多,但是用它的几乎都是大公司,新浪好像就用它,百度以前也用过。做小项目就不要去了解了。想要进大厂的可以研究一下。

4.6 Cakephp

z这个和thinkphp很类似,据说think开始的时候就是参考的它,既然如此,我们还是用think吧,毕竟国产的,大家看得懂,遇到问题也容易找人请教。

4.7 Zend

ZendFramework(简写ZF)是开源的,主要用于Web应用程序的开发和服务,ZF采用MVC(Model–View-Controller)架构模式来分离应用程序中不同的部分方便程序的开发和维护。框架包很大,功能很多,学习起来成本有点大,性能并不是很突出,国内用的也很少,我没怎么研究过。文章来源地址https://www.toymoban.com/news/detail-433697.html

到了这里,关于关于php原生开发与主流php框架使用心得的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • PHP自己的框架session()使用(完善篇六)

    1、PHP自己的框架session()      2、session类(SessionBase.php) 3、封装session类function.php 4、调用session(indexCrl.php)

    2024年02月11日
    浏览(21)
  • 第27天:安全开发-PHP应用&TP框架&路由访问&对象操作&内置过滤绕过&核心漏洞

    1.TP框架-开发-配置架构路由MVC模型 参考:https://www.kancloud.cn/manual/thinkphp5_1 配置架构-导入使用 路由访问-URL访问 数据库操作-应用对象 文件上传操作-应用对象 前端页面渲染-MVC模型 1.TP框架-安全-不安全写法版本过滤绕过 1.内置代码写法 不合要求的代码写法-ThinkPHP5-自写 2.框架

    2024年04月25日
    浏览(29)
  • 推荐一个日历转换开源工具库,支持C#、Java、PHP等主流的语言

    日历对我们来说,最熟悉的就是阳历和农历,在中国每年都有固定的节日、节气、中国特有传统节日,有些节日是固定的,但是节气这些都需要我们经过一定规则换算出来。 所以,今天给大家推荐一个开源库,它支持阳历、阴历、佛历和道历的日历转换,可以满足我们的所有

    2024年02月06日
    浏览(45)
  • PHP最简单自定义自己的框架model使用(七)

    1、实现model使用效果   2、自动加载model,KJ.php 3、model可定义table,ModelBase.php 4、创建model文件,testModel.php 5、调用model,indexCrl.php

    2024年02月13日
    浏览(18)
  • NativePHP:使用PHP构建跨平台桌面应用的新框架

    NativePHP是一个用于使用PHP构建桌面应用的框架。它允许PHP开发人员使用熟悉的工具和技术创建跨平台的原生应用。NativePHP具有一系列易于使用的类,一套用于构建和打包应用程序的工具以及一个静态跨平台PHP运行时。 官网地址:https://nativephp.com PHP究竟是什么?严格地说,N

    2024年02月14日
    浏览(27)
  • PHP开发日志 ━━ php8.3安装与使用组件Xdebug

    今天开头写点历史: 二十年前流行asp,当时用vb整合常用函数库写了一个dll给asp调用,并在此基础上开发一套仿windows界面的后台管理系统; 后来asp逐渐没落,于是在十多年前转投php,不久后用php写了一套mvc框架,同时参考asp仿windows经验,结合兴起的jQuery重写后台管理系统。

    2024年02月02日
    浏览(22)
  • docker容器下php框架laravel的使用问题与解决方案

    DB_CONNECTION=mysql DB_HOST=localhost DB_CONNECTION=mysql DB_HOST=docker33-mysql-1 容器中只有数据库结构 进入MySQL容器内,创建表结构,添加数据 代码层面需要转换成数组 $query - get ( [\\\'*\\\'] )- toArray () ; 分页数据框架会返回带有data的数据,如果循环记得加上

    2024年01月23日
    浏览(47)
  • 如何使用PHP开发网页定时刷新功能

    如何使用PHP开发网页定时刷新功能 随着互联网的发展,越来越多的网站需要实时更新显示数据。而实时刷新页面是一种常见的需求,它可以让用户在不刷新整个页面的情况下获得最新的数据。本文将介绍如何使用PHP开发网页定时刷新功能,并提供代码示例。 1.使用Meta标签定

    2024年02月12日
    浏览(37)
  • PHP原生类

    原生类就是php内置类,不用定义php自带的类,即不需要在当前脚本写出,但也可以实例化的类 我们可以通过脚本找一下php原生类 DirectoryIterator 类 类介绍  DirectoryIterator extends SplFileInfo implements SeekableIterator {     /* 方法 */     public __construct ( string $path )     public current ( )

    2024年02月13日
    浏览(18)
  • 原生JavaScript+PHP多图上传实现

    很多场景下需要选择多张图片上传,或者是批量上传以提高效率,多图上传的需求自然就比较多了,本文使用最简单的XMLHttpRequest异步上传图片。 index.html upload.php (请建立一个upload文件夹以存放上传的文件) TANKING

    2024年02月09日
    浏览(22)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包