您的当前位置:首页>全部文章>文章详情

【PHP】CI,ThinkPHP,YII,Laravel框架比较

CrazyPanda发表于:2024-07-14 21:32:41浏览:315次TAG: #php #框架

用过其中的yii TP CI框架。大概整理了这些框架的优点和缺点,有些错误的地方还希望大家指正。各个框架各有所长,针对的应用场景不同。

一、Ci框架

 

推崇简单就是美这一原则,没有花哨的设计模式,没有华丽的对象结构,一切就是那么简单。

优点:

框架的入门槛很低,极易学,极易用,框架很小,静态化非常容易

配置简单,全部的配置使用php脚本来配置,执行效率高

 

缺点:

架构略简单,只能满足小型应用,略微不太能够满足中型应用需要

大型项目扩展能力差,有些功能需要自己写扩展

数据库类的扩展 ci给用户提供了一个名为call_function函数,让用户扩展,ci提供了名为call_function的函数让用户扩展,对于初学者而言,或许可以大受欢迎。但是,这种做法,实际上有很多不雅之处。

第一,扩展函数写在哪里?势必写在全局的helper函数中。

第二,扩展函数如何与数据库类交互?势必要在参数中把当前实例传入助手函数 没有提供实用的助手函数

 

 

二、Thinkphp

ThinkPHP(FCS)是一个轻量级的中型框架,是从Java的Struts结构移植过来的中文PHP开发框架。它使用面向对象的开发结构和MVC模式,并且模拟实现了Struts的标签库,各方面都比较人性化,熟悉J2EE的开发人员相对比较容易上手,适合php框架初学者。ThinkPHP的宗旨是简化开发、提高效率、易于扩展,其在对数据库的支持方面已经包括MySQL、MSSQL、Sqlite、PgSQL、Oracle,以及PDO的支持。ThinkPHP有着丰富的文档和示例,框架的兼容性较强,但是其功能有限,因此更适合用于中小项目的开发。

优点:

1.易于上手,有丰富的中文文档;

2.框架的兼容性较强,PHP4和PHP5完全兼容、完全支持UTF8等。

3.适合用于中小项目的开发

4.从thinkphp3.2.2后引入composer包管理工具

缺点:(这里限thinkphp5之前,thinkphp5版本之后做了大量的优化,比如之前的大写字母函数,已经取消掉了。)thinkphp也在与时俱进,thinkphp是我用的第二个框架。

1.对Ajax的支持不是很好;

2.目录结构混乱,需要花时间整理;

3.上手容易,但是深入学习较难

 

三、YiiFramework

Yii是一个基于组件的高性能php框架,用于开发大型Web应用。Yii采用严格的OOP编写,并有着完善的库引用以及全面的教程。从MVC,DAO/ActiveRecord,widgets,caching,等级式RBAC,Web服务,到主题化,I18N和L10N,Yii提供了今日Web2.0应用开发所需要的几乎一切功能。事实上,Yii是最有效率的PHP框架之一。

优点:

1,纯OOP

2,用于大规模Web应用

3,模型使用方便

4,开发速度快,运行速度也快。性能优异且功能丰富

5,使用命令行工具。

6.Yii 的框架对扩展支持相当高,很方便扩展,我们慢慢的自己扩展了很多组件。最近甚至修改了程序入口,让我们可以更加在框架内操控程序。

7.modules 设计是一个很优秀的东西,他理论上可以无限嵌套,当然不建议嵌套超过三层

8.集成的model,以及CActiveRecord模式 包含的验证机制,都是很好的东西,但是约束性也相对强一些。

9.spl_autoload_register 预注册,按需载入文件等对性能都有很大提高。

Yii2

 

  1. 暴力的Gii代码生成,基本上代码都可以偷懒写

  2. 支持composer包管理工具

 

缺点:

1,对Model层的指导和考虑较少

2,文档实例较少

3,英文太多

4,要求PHP技术精通,OOP编程要熟练!

5,前后端完全的分离的趋势下,yii2前后端的耦合的还是有些重了。View并不是理想View,理想中的View可能只是html代码,不会涉及PHP代码。

 

四、Lavarel框架

使用了大量设计模式,框架完全符合设计模式的五大基本原则(面向对象设计模式有5大基本原则:单一职责原则、开发封闭原则、依赖倒置原则、接口隔离原则、Liskov替换原则。),模块之间耦合度很低,服务容器可以方便的扩展框架功能以及编写测试。能快速开发出功能,自带各种方便的服务,比如数据验证、队列、缓存、数据迁移、测试、artisan命令行等等,还有强大的ORM

优点:

Laravel的设计思想是很先进的,非常适合应用各种开发模式TDD,DDD和BDD。作为一个框架,它准备好了一切,composer是个php的未来,没有composer,PHP肯定要走向没落。laravel最大的特点和优秀之处就是集合了php比较新的特性,以及各种各样的设计模式,Ioc容器,依赖注入等。

因此laravel是一个适合学习的框架,他和其他的框架思想有着极大的不同,这也要求你非常熟练PHP中,基础扎实。

1,使用composer包管理工具,方便使用丰富的扩展包

2,强大的路由系统,Blade模板引擎,

3,文档非常丰富,社区也是非常活跃,现在全球范围内占有率最高,基本上所有的问题都可以找到答案

4,大量的第三方开源库(composer收录的超过5500个包),可以快速方便的实现模块功能,第三方优秀的包,官方都有详细使用手册。例如:laravel/collective

5,安全机制非常齐全,提交表单的数据验证(验证有差不多80种,能想到的基本都有),提交数据时产生随机_token验证,避免非法提交,能避免跨域攻击和SQL注入。

6,中间件和路由,对访问进行过滤及控制,调用函数类和方法前进行判断请求的合法性,避免非法请求;

缺点:

1.基于组件式的框架,所以比较臃肿。

2.没有自动路由,每加一个action就要去配置文件里写一次

3.全局函数及facade 众多语言/框架都是先引入,再使用,laravel这里并不是

4.文档简陋,细节没有讲清楚,具体还要看源码

5.view层 view文件路径 用.取代/

6.性能 不如ci yii thinkphp

猜你喜欢

【PHP】php常用的第三方类库有哪些
hp常用的第三方类库有laravel、symfony、guzzle、phpunit、monolog、swift mailer、phpexcel、carbon、doctrine、phpmailer等。详细介绍:1、laravel是一个流行的php框架,提供了丰富的功能和工具,用于快速构建web应用程序,它包含了许多常用的类库,例如路由、数据库访问、模板引擎、身份验证等等。本教程操作系统:windows10系统、PHP 8.1.3版本、DELL G3电脑。在PHP开发中,有许多常用的第三方类库可以
发表于:2024-03-17 浏览:295 TAG:
【PHP】PHP 框架在大型项目中微服务的最佳实践
微服务在 php 框架中的优点包括模块化、可扩展性和容错性。实战案例展示了使用 laravel 创建微服务架构,包括创建用户、产品和订单微服务。与微服务的集成最佳实践建议使用消息队列实现异步通信、采用 api 网关处理身份验证和流量管理,以及运用 devops 实践简化开发和部署流程。PHP 框架在大型项目中微服务的最佳实践近年来,微服务已成为大型项目架构的流行选择。微服务架构在 PHP 框架中可以带来诸多好处,包括:模块化: 微服务允许您将项目分解成较小的、独立的组件,便于维护和迭代。可扩展性
发表于:2024-05-30 浏览:381 TAG:
【PHP】中文日文字符串校验解决方案
由于开发需要,要识别中文和日文文字段落,网上查了很多资料,大部分都是使用正则校验preg_match,但中文和日文有些汉字是相同的,不能直接校验出结果,经过多次修改,也算是找出了解决办法。首先找到中文和日文的正则校验中文校验:preg_match('/\p{Han}+/u','',$str);日文校验:preg_match('/[\x{4E00}-\x{9FBF}\x{3040}-\x{309F}\x{30A0}-\x{30FF}]/u',&nbs
发表于:2023-12-14 浏览:392 TAG:
【PHP】PHP8.1新特性大讲解之Fibers with a grain of salt
Fibers with a grain of salt所以我打算写一篇关于在PHP 8.1 中使用Fibers纤维的深入博客文章。我们将从一个基本示例开始,从头开始解释它们。这个想法是发送异步 HTTP 请求并使用纤程并行处理它们。但是和他们一起玩,我了解到RFC并不是在开玩笑,当它说“不应直接在应用程序级代码中使用 Fiber API。Fibers 提供了一个基本的、低级的流控制 API 来创建更高然后在应用程序代码中使用的级抽象”。因此,与其走这条路并使事情变得过于复杂,我们将讨论什么是纤程
发表于:2024-01-04 浏览:301 TAG:
【PHP】Yii框架的优点
Yii框架的优点主要包括高性能、易于扩展、易于使用、安全性好、易于安装、利用现代技术、高度可扩展性、鼓励测试、简化的安全方案、缩短开发时间、以及很容易通过调整获得更好的性能。高性能:Yii框架支持工作负载平衡和缓存,可以大幅提升Web应用程序的性能。易于扩展:Yii框架支持插件式架构,开发者可以很方便地添加或移除组件来满足不同的需求。易于使用:Yii框架具有操作简单、易于学习和易于使用的特点,可以大大节省开发人员的时间和精力。安全性好:Yii框架提供了严格的安全机制,使得Web应用程序更加安全可
发表于:2024-07-01 浏览:278 TAG:
【PHP】什么是微服务架构
随着互联网的不断发展,越来越多的网站和应用程序应运而生。而对于开发者来说,如何快速高效地构建应用程序,是一个重要的挑战。其中,微服务架构已经成为了一个越来越受欢迎的解决方案。而php作为一种最受欢迎的web开发语言之一,也已经成为了很多开发者在构建微服务架构时的首选语言。本文将为大家介绍PHP如何应用于微服务架构,帮助大家更好地理解微服务架构以及如何使用PHP构建高效的微服务应用程序。什么是微服务架构?微服务架构(Microservices Architecture)是一种构建分布式应用程序的软
发表于:2024-05-23 浏览:297 TAG:
【PHP】如何在PHP中使用ReactPHP进行异步操作和事件驱动开发
随着 web 应用的复杂度不断提高,对性能和高并发的要求也越来越高。php 作为一门广泛应用于 web 开发的语言,也需要紧跟时代步伐,提供更高效、更灵活的解决方案。而 reactphp 正是针对 php 的高性能、事件驱动的异步解决方案。在本篇文章中,我们将讨论如何在 php 中使用 reactphp 进行异步操作和事件驱动开发,以提升 web 应用的性能和用户体验。什么是 ReactPHPReactPHP 是基于 PHP 的事件驱动的异步解决方案,它使用非阻塞 I/O 和事件循环,将 PHP
发表于:2024-04-14 浏览:353 TAG:
【PHP】PHP Websocket开发指南,实现实时交通信息查询功能
PHP Websocket开发指南,实现实时交通信息查询功能前言Websocket是一种在Web上实现双向通信的技术,它能够实现实时更新数据,适用于需要实时交互的场景。本篇文章将介绍如何使用PHP开发一个实时交通信息查询的功能,并提供相应的代码示例。准备工作在开始开发之前,需要准备以下工作:一台安装了PHP和Apache服务器的主机,具备基础的PHP编程知识一个支持Websocket的浏览器,如Chrome、Firefox等安装Composer,用于安装相关依赖库开始开发3.1 安装W
发表于:2023-12-04 浏览:589 TAG:
【PHP】PHP获取数组第一个元素的六种方式
在PHP中,数组的索引从0开始,因此可以通过使用索引0来访问数组中的第一个元素。底层原理: 在PHP的底层实现中,数组的元素是通过哈希表(hash table)来存储的。哈希表是一种数据结构,用于快速查找和访问元素。在哈希表中,每个元素都有一个关联的键和值,其中键用于唯一标识该元素。
发表于:2024-11-14 浏览:240 TAG: #php
【PHP】PHP静态化
随着互联网的快速发展,网站访问量越来越大,同时网站的性能也成为了设计者们需要考虑的重要问题之一。对于使用php语言的开发人员来说,静态化是提高网站性能的一种有效方法。在本文中,我们将探讨php中静态化的方法。一、什么是静态化静态化是指将动态生成的网页文件(如PHP文件)转换为静态的HTML文件存储在服务器上。当用户请求时,直接访问静态HTML文件,避免了每次请求都要执行PHP代码的情况,从而提高了网站的性能响应速度。二、静态化的优劣静态化虽然能够提高网站响应速度,但它也存在一些缺陷:优点:1.减
发表于:2024-06-18 浏览:274 TAG: