一、CI框架

  CI框架是一个简单快速的PHP MVC轻量级框架,它执行效率高,快速简洁,代码量少,适合中小型项目开发,也可以做大型项目,但扩展能力不是很好,Ci支持的url模式默认为pathinfo形式

  优点:

  框架比较简单,适合入门开发,易学,上手快,静态化很容易,文档比较详细。

  缺点:

  由于框架较小,所以功能不完全,比如使用mongoDB就要自己实现接口,对数据库的操作不够安全(写入操作)。对大型项目支持不好。

二、ThinkPHP框架

  TP框架是一共快速兼容简单的轻量级国产PHP开发框架,使用面向对象的结构和MVC模式进行开发。它可以支持Windows、Linux等服务器,并且支持MySql、Sqlite等多种数据库和PDO扩展。其自身包含底层架构、兼容处理、基类库、数据库访问层、模版引擎、缓存机制、插件机制、角色认证、表单处理等常用的组件,并且对于跨版本、跨平台和跨数据库移植都比较方便。适合中小型项目开发。

  优势:简单易用(Model,Controller,View负责各自的工作),它拥有支持XML标签库技术的编译型模版引擎,支持两种模版标签,动态编译,缓存技术。还支持自定义标签库,具有独特的数据验证和自动填充,MD5数据加密等功能。部署简单只需要一个入口文件,上手快。

  提供的4种路由形式 

  1、get路由形式;

  2、pathinfo路由形式【默认路由形式】:   

  3、 rewrite路由形式;   

  4、 兼容路由形式:    

  缺点:模版比较固定,导致思想容易固化。

三、laravel框架

  Laravel是一套简洁,优雅的PHP WEB开发框架。集合了PHP比较新的特性,以及各种的设计模式,是一个适合学习的框架,但要求PHP基础扎实熟练。适合大中型项目的开发。 

  优势:

  1、支持Composer

  2、框架结构比较清晰,注重代码的模块化(抽象了中间件,任务,服务等)和可扩展性,路由系统快速高效

  3、支持处理跨站请求伪造,在进行form表单post提交时,必须传入{{ csrf_field() }}

  4、Laravel 的社区很强大,具有丰富的扩展包及工具

  5、具有缓存、身份验证、任务自动化、hash加密、事务等功能

  6、独特的 .env环境文件,方便了系统的配置和不同平台的开发

  缺点:基于组件式的框架,相对有点臃肿

  Laravel路由方法:laravel的路由功能很强大,包括

  1、基本路由Route::get('/',function(){ return'HelloWorld';});

  2、带参数路由Route::get('user/{id}', function($id){ return 'User '.$id;});

  3、路由过滤参数Route::get('user/{id}/{name}',function($id,$name){ //}) -> where(array('id'=> '[0-9]+', 'name' =>'[a-z]+'));

  4、子域名路由等等等等

  5、控制器路由,例如下面的一些样式

  

四、yii2框架

  Yii Framework是一个基于组件、用于大规模web应用开发的高性能PHP开源框架,是目前最具效率的PHP框架之一。适合大型重量型web应用开发。

  优势:

  1、纯OOP开发,模型使用方便

  2、支持命令行工具开发,可以快速的创建一个web应用程序的代码

  3、具有高度的可重用性和可扩展性

  4、开发速度快,性能优异且功能丰富

  5、支持composer包管理工具

  缺点:model 层考虑较少,文档中中文文档较少。要求php技术精通水平,OOP编程也要很熟练

  

php各种框架的区别的更多相关文章

  1. mvc设计模式和mvc框架的区别

    Spring中的新名称也太多了吧!IOC/DI/MVC/AOP/DAO/ORM... 对于刚刚接触spring的我来说确实晕了头!可是一但你完全掌握了一个概念,那么它就会死心塌地的为你服务了.这可比女 ...

  2. Vue与React两个框架的区别对比

    简单介绍 React--Facebook创建的JavaScript UI框架.它支撑着包括Instagram在内的大多数Facebook网站.React与当时流行的jQuery,Backbone.js ...

  3. 真正搞明白Python中Django和Flask框架的区别

    在谈Python中Django框架和Flask框架的区别之前,我们需要先探讨如下几个问题. 一.为什么要使用框架? 为了更好地阐述这个问题,我们把开发一个应用的过程进行类比,往往开发一个应用(web应 ...

  4. Struts2框架和SpringMvc框架的区别

    Struts2框架和SpringMvc框架的区别 一.拦截机制的不同 Struts2是类级别的拦截,每次请求就会创建一个Action,和Spring整合时Struts2的ActionBean注入作用域 ...

  5. Mybatis和Hibernate框架的区别

    Mybatis和Hibernate框架的区别1 简单简介 1.1 Hibernate 框架 Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,建立对象与数据 ...

  6. ZF、TP、CI等各种框架的区别

    (原标题:面试常见问题之ZF.TP.CI等框架的区别 http://blog.163.com/m13341159039_1/blog/static/245953061201522092212820/) ...

  7. Java框架中Struts和Struts2框架的区别

    struts1 与 struts2 的区别:1.都是 MVC 的 WEB 框架,2 struts1的老牌框架,应用很广泛,有很好的群众基础,使用它开发风险很小,成本更低!struts2虽然基于这个框架 ...

  8. SSM框架和SSH框架的区别

    SSH和SSM定义 SSH 通常指的是 Struts2 做控制器(controller),spring 管理各层的组件,hibernate 负责持久化层. SSM 则指的是 SpringMVC 做控制 ...

  9. sprinmvc与 Struct2框架的区别

    1.Struts2是类级别的拦截, 一个类对应一个request上下文,SpringMVC是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,所以说从架构本身上Spr ...

  10. Guice与Spring框架的区别

    2007-4-23  再借斧子的例子说一说spring与guice的区别     看下边对于不同社会形态下一个人(java对象,调用者)需要一把斧子(java对象,被调用者)的例子: (1),原始社会 ...

随机推荐

  1. 正确删除k8s版本jenkins的pod

    1.kubectl delete -f jenkins-deployment.yaml 或者先删除pod,再删除对应的depllyment 这两步都要执行否则删除pod不管用 2.删除数据目录下的数据 ...

  2. dockerfile中设置环境变量

    设置环境变量要用 ENV ENV JAVA_HOME /usr/local/jdk1.8.0_171 ENV PATH $JAVA_HOME/bin:$PATH 用 echo "JAVA_H ...

  3. 最近邻与K近邻算法思想

    在关于径向基神经网络的一篇博文机器学习之径向基神经网络(RBF NN)中已经对最近邻思想进行过描述,但是写到了RBF中有些重点不够突出,所以,这里重新对最近邻和K近邻的基本思想进行介绍,简洁扼要的加以 ...

  4. circRNA数据库的建立

      circRNA数据库的建立 wget http://circbase.org/download/human_hg19_circRNAs_putative_spliced_sequence.fa.g ...

  5. webservice 调用慢问题解决

    <system.net> <defaultProxy enabled="false" useDefaultCredentials="false" ...

  6. 长乐培训Day5

    T1 圆圈舞蹈 题目 [题目描述] 熊大妈的奶牛在时针的带领下,围成了一个圈跳舞.由于没有严格的教育,奶牛们之间的间隔不一致. 奶牛想知道两只最远的奶牛到底隔了多远.奶牛A到B的距离为A顺时针走和逆时 ...

  7. Ubuntu的apt命令详解()deepin linux是在Ubuntu基础上开发的

    apt-cache和apt-get是apt包的管理工具,他们根据/etc/apt/sources.list里的软件源地址列表搜索目标软件.并通过维护本地软件包列表来安装和卸载软件. 查看本机是否安装软 ...

  8. vue导入css,js和放置html代码

    使用场景:我是从网上找的html前端页面模板,导入找的模板中的css和js到vue中使用. 1.在main.js中全局导入css和js import '@/assets/css/main.css' i ...

  9. 使用dockers安装MySQL

    事前准备 关闭selinux setenforce 0 vim /etc/sysconfig/selinux SELINUX=disabled # 若不关闭,使用docker启动mysql5.7镜像容 ...

  10. App客户端性能测试点总结

    一.内存 测试范围1. 空闲状态下的应用内存消耗情况2. 中等规格状态下的应用内存消耗情况3. 满规格状态下的应用内存消耗情况4. 应用内存峰值情况5. 应用内存泄露情况6. 应用是否常驻内存7. 压 ...