PHP四大主流框架的优缺点有哪些?
楼主问四大框架,我暂且理解为国内最流行的四大(毕竟 tp国外没人用,国内小公司用的多),分别为 laravel,yii,tp,ci(暂且把他当第四把)
一. laravel
优雅的php框架,底层用到了蛮多设计模式,比较像java
优点: 各种设计模式,提供很多强大的中间件扩展组件(队列啥的),作者更新比较频繁,对应的社区活跃,可以说是php第一框架。
缺点:上手稍微难一些,得理解门面等一些词,需要一定基础
二.yii
强大的OOP框架,中大型公司愿意选用该框架,稳定性好
优点: 上手比较容易,ORM蛮好用封装的比较好,提供的cli命令行比较好用,功能强大,一般web开发需要的功能都有,自带的gii一键生成相关代码
缺点: 自带的视图层可能不是完全拨离php代码的,还有一些文档是英文,翻译还差一点
三.tp5
国内仿laravel的小框架,外包公司流行
优点: 很容易上手,学习成本低,官方文档齐全,也有付费更加深入的文档,框架目录简单
缺点: 功能不够强大(指一些额外的组件),命令行模式功能稍微少一些,迁移文件啥功能确实(现在不确定新版加了没)
四.ci
优点: 小 小巧,学习成本低,开发功能快
缺点: ci3都还没自带composer, 得改一下加入,作者团队换人了,框架很久没更新,一些php新特征没有使用,ci2还兼容 php4
以上纯手打,有些可能偏个人意见?
php月薪1万大概需要掌握些什么?
1w还是很轻松的吧,现在做PHP,不仅要了解后端知识,还要了解数据库,缓存(redis,memcache),队列,当然这么火的前端也要会点
如何解决PHP并发问题?
商城秒杀需要面对高并发对数据库产生的压力和点击购买秒杀超卖的问题
用额外的单进程处理一个队列,下单请求放到队列里,一个个处理,就不会有并发的问题了,但是要额外的开启后台进程以及延迟问题,这里暂不予考虑。这里我们可使用消息队列,我们常用到Memcacheq、Radis。
mysql乐观锁,意思是比如总库存是2,抢购事件提交时,立马将库存+1,那么此时库存是3,然后订单生成后,在更新库存前再查询一次库存(因为订单生成理所当然库存-1,但是先不急,再查一次库存返回结果是3),看看跟预期的库存数量(这里预期的库存是3)是否保持一致,不一致就回滚,提示用户库存不足。
乐观锁的特点先进行业务操作,不到万不得已不去拿锁。即“乐观”的认为拿锁多半是会成功的,因此在进行完业务操作需要实际更新数据的最后一步再去拿一下锁就好。乐观锁在数据库上的实现完全是逻辑的,不需要数据库提供特殊的支持。一般的做法是在需要锁的数据上增加一个版本号,或者时间戳。
借助文件排他锁,在处理下单请求的时候,用flock锁定一个文件,如果锁定失败说明有其他订单正在处理,此时要么等待要么直接提示用户"服务器繁忙"
为了大家能够顺利进阶中高级程序员、架构师,我为大家准备了一套精品福利!还可加入大牛学习圈子,分享tp,laravel,Swoole,Swoft微服务等教程,各种大牛都是3-8年PHP开发者,每天还有12年的架构师做讲解,助你进阶中高级PHP程序员,增值涨薪!需要可关注本头条号,并且发送私信:PHP
这里没有代码块操作,具体实现方式没有写进去,有秒杀高并发的疑惑、遇到瓶颈期、想进阶中高级的PHPer可发私信:PHP
为什么国内微博是php开发的呢?
php做前端,此前端非彼前端,百度前端也是php,密集计算,底层服务可以采用别的,成熟的。所以php性能不是瓶颈。php开发快,招人快,哪怕是在大公司,面对竞争激烈的互联网环境,不得不快,所以没有理由不选php。
php适合做上层业务层,底层服务,比如队列,中间件,分布式都有成熟的产品了,这一块java居多。不过这两年php发展也很快,swoole也能做php的实时通讯了,所以php还是有潜力的。
去百度面试PHP岗位是一种怎样的体验?
很荣幸回答这个问题。
下面说下我的体验,本人2014年收到百度hr邀约去百度面试,
首先面试地点:面试地点不是在百度总部,而是在百度总部附近的一个叫中关村云计算软件基地的地方,到了地方等了一会
然后做题:就是做相关的题目 ,也许是初入这一行没多久,刚开始答题最让我疑惑的是PHP还有很多前端知识的东西 css html js等这些内容,由于准备的不是很充分,答题大约一个小时的时间,把试题给了hr,然后接着等了一会。
最后到了和面试官交流的环节:面试官问了一堆算法相关的题,什么排序算法之类的,还问是否做过高并发相关的东西,我说目前做过最高并发的就是 微信抢红包,瞬间有w人进入,通过队列去异步处理,接着又聊了下我最头疼的前端问题,面试官问,css怎么布局,我脑袋一热说不会,结果就可想而知了 ,到最后面试官说,先回去等通知吧,这一等就没有了下文。
写在最后:去百度面试要有足够的扎实功底,不仅限于PHP,还要考虑前端的一些问题,要不然最后还是拿不到offer。欢迎关注我,一起交流PHP相关知识。