您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > php

php框架PHPixie与Laravel的比较

时间:2019-10-24 09:19:02  来源:  作者:

版本系统

这两个框架已经走了很长一段路,如果您在2年前对它们熟悉,那么您今天可能根本不认识它们。在这方面,它们都不同于symfony,后者的变化要慢得多,甚至2.7和3.0版本之间的差异也不是很大。但是,如果将其与linux发行版进行比较,则Symfony类似于Debian,Laravel类似于Ubuntu,phpixie类似于Arch。PHPixie使用滚动发布方法,所有新功能和错误修正立即进入母版并获取版本标签,从而使它们尽快可用。但是必须更仔细地完成“ composer update”,并按照更改进行操作。在这里,我将立即提醒您,如果您使用“ composer install”,那么您将始终安装相同的版本,毫无疑问可以等待。这种方法迫使框架开发人员考虑向后兼容性,而不破坏现有的API。结果,您将代码与框架一起进行了一些升级,然后您就不必考虑Laravel 4跳到Laravel 5了,那里的所有内容都立即改变了,现在Laravel 4上的代码被认为是旧的。

php框架PHPixie与Laravel的比较

 

执行效率

有了PHPixie的速度,一切都保持了原样,而且速度也越来越快,因为路由代码和内核本身并没有太大变化,它仅获得了新的库,这些库只有在您使用它们时才会影响速度。Techempower的基准测试表明,在HHVM中laravel的速度也赶不上phpixie。原则上,我很少听到Laravel为工作速度而赞美,而是为发展速度而赞美,因此性能很可能从来没有被优先考虑。

php框架PHPixie与Laravel的比较

 

入门难度

毫无疑问,Laravel,laracasta,外墙,教程中的各种片段以及现成的捆绑包都使初学者甚至可以在最短的时间内创建一个网站,现在,它也可以直接由工匠使用。所有这一切都归因于框架本身的坚固性,尽管框架由组件组成,但是Laravel本身将它们合并为一个整体。PHPixie是严格模块化的,因此甚至没有一个DI容器,并且所有依赖项都是通过单独的工厂构建的,因此,您需要了解更多幕后情况。但是随着时间的流逝,我会说半年以来,学习曲线发生了变化。PHPixie是从头开始构建的,所有组件都是根据一个范例创建的,通过了解框架的一部分,使其更易于理解另一部分,从而使代码调试更加容易。到那时,在Laravel中,您将花费大量时间使用不同的方法和质量使用不同的开发人员的代码。但是,如果外墙以及所有对您真正重要的东西,那么可选的DI组件将使您获得相同的结果。

数据库操作

数据库和ORM组件发展最快,属于框架的最佳组成部分。模型清楚地分布到存储库,请求和实体本身。扩展不是继承模型的某些基础类,而是由Decorator模式执行的,这使您的代码完全独立于使用基础并经过基本测试的逻辑。即使用于构建查询,您也可以使用多种语法。当然,杀手级功能是它们都可用于SQL数据库和Mongo,包括不同数据库中实体之间的连接。Laravel在这里损失了很多,因为Eloquent离Kohana ORM和PHP ActiveRecord不远。与Laravel一起工作时,大多数经验丰富的开发人员都会使用Doctrine或Propel。同样,这完全取决于您的任务。

php框架PHPixie与Laravel的比较

 

社区

Laravel开发人员无疑非常多,而PHPixie还需要很多人去发现它的美好。我不否认Laravel社区的美好,但是我希望也能有更多地人加入到PHPixie中来。

php框架PHPixie与Laravel的比较

 

测试

PHPixie以其100%的测试覆盖率而闻名。顺便说一下,在这里,不仅代码覆盖范围本身很重要,而且它的可测试性也很重要。缺少魔术和外观,仅使您可以为单个类编写简短而快速的单元测试,而不必在每个测试上增加一堆依赖项。当然,在Laravel中也有测试,但是要少得多。

顺便说一句,当您尝试在新的PHPUnit上运行测试时,当您打开coverage的生成时,它只会引发错误。

php框架PHPixie与Laravel的比较

 

路由

在这里,我们再次有范式上的差异。Laravel作为更单一的框架提供了购买模型的能力,使您可以完全跳过控制器代码,例如:

$router->bind('user', function ($value) { return AppUser::where('name', $value)->first(); });

另外,大多数路由都具有名称,并且动态路由完全不存在(但是可以模拟)。PHPixie的路由组件更具自治性,甚至控制器的概念也不在其中,它所做的只是将请求解析为一组参数并将其传递给用户。反过来,这允许使用嵌套规则和前缀进行更灵活的配置。另一个区别是,在PHPixie中,路由是通过数组存储在配置文件中的,而在Laravel中是通过编程设置的,如果存在带有提示的IDE,这将更加方便。

模板引擎

PHPixie使用PCP作为模板引擎,这意味着所有常用功能(例如ucwordssubstrtrim等)都已经可用,而不必学习新语言。PHPixie设法无需编译即可获得流行模板的所有优势,因此,您也可以使用模板继承和块支持。此外,您将在任何IDE中突出显示完整的语法,并使用Xdebug进行调试。Laravel Blade本身与Twig并没有太大区别,只是语法略有不同,但并没有带来任何新变化。

HTTP

PHPixie基于PSR-7构建,它通过添加自己的包装器扩展了功能,但是您始终可以访问纯PSR-7请求。它还可以接收来自外部的请求,这使您可以轻松地在ReactPHP上运行框架。由于无状态架构以及ReactPHP,这也是可能的,这意味着在执行请求之后,框架保持原样,并且可以立即处理下一个而不重新启动。Laravel是基于symfony的HTTP组件构建的,该组件构建了它的请求,您仅可以使用symfony / psr-http-message-bridge将它们转换为PSR-7 ,这至少会在每个请求上添加开销数据。尽管在下一个版本的Laravel中最有可能将完全切换到PSR-7。

认证方式

向Laravel添加身份验证非常容易,该配置实际上是开箱即用的,但是实现仍然有很多不足之处。在PHPixie中,“ remember_me”的实现是基于最佳实践的,即每个设备为一个帐户拥有自己的令牌,同时每次使用时也会进行更新。仅仅因为其可丢弃性而窃取这样的令牌是没有意义的。另外,在PHPixie中设置授权更加灵活,您可以在一个配置中创建多个令牌,使用会话或仅使用cookie以及现在的社交授权。

组件

与PHPixie一样,Laravel也由组件组成,例如,无需框架本身即可使用Eloquent非常简单。但是其他组件,例如相同的身份验证,与框架本身的联系更多,而将它们与另一个框架一起使用并不是那么容易。PHPixie最初被认为是独立的组件,很重要的是,在github上,每个PHPixie组件都位于单独的存储库中,而Laravel将所有内容存储在一个项目中,并为组件提供只读存储库。

php框架PHPixie与Laravel的比较

 

最后,Laravel目前被过度夸大了,我们不应该也不可能只有一个框架一家独大,我相信百花齐放的编程世界才更美好。



Tags:php框架   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
大家好,我是小蜗牛,今天给大家分享一下,如何用ThinkPHP5.1.*版本实现定时任务,例如凌晨12点更新数据、每隔10秒检测过期会员、每隔几分钟发送请求保证ip的活性等本次分享,主要用...【详细内容】
2020-10-22  Tags: php框架  点击:(339)  评论:(0)  加入收藏
Laravel是当今最熟练,流行和广泛使用的开源框架之一。Laravel具有多种功能,例如模板引擎,MVC架构支持,安全性高,开发者工具,数据库迁移等。这些Laravel高级功能使它比其他PHP框架...【详细内容】
2020-06-12  Tags: php框架  点击:(64)  评论:(0)  加入收藏
laravel框架基础知识一、laravel简介laravel是一套优雅简介的PHP开发框架,受欢迎程度非常之高,功能强大,工具齐全;今天我们一起来看看框架的基础知识二、版本选择本篇学习笔记...【详细内容】
2019-12-20  Tags: php框架  点击:(86)  评论:(0)  加入收藏
版本系统这两个框架已经走了很长一段路,如果您在2年前对它们熟悉,那么您今天可能根本不认识它们。在这方面,它们都不同于symfony,后者的变化要慢得多,甚至2.7和3.0版本之间的差异...【详细内容】
2019-10-24  Tags: php框架  点击:(90)  评论:(0)  加入收藏
ThinkPHP的宗旨是简化开发、提高效率、易于扩展,其在对数据库的支持方面已经包括MySQL、MSSQL、Sqlite、PgSQL、 Oracle,以及PDO的支持。ThinkPHP有着丰富的文档和示例,框架的...【详细内容】
2019-08-26  Tags: php框架  点击:(600)  评论:(0)  加入收藏
PHP框架真正地发展是从PHP5开始的。其实在PHP4时代就有一些框架,但是由于使用复杂,没有纯PHP好用,所以一直到了PHP5才有大的发展。随着PHP5面向对象功能的实现。基于PHP的产品...【详细内容】
2019-08-13  Tags: php框架  点击:(214)  评论:(0)  加入收藏
首先要下载thinkphp最新版本3.2.2版本,下载地址http://www.thinkphp.cn/donate/download/id/502.html。建立一个项目,将压缩包解压后的所有文件放到项目中,然后配置apach服务...【详细内容】
2019-08-07  Tags: php框架  点击:(267)  评论:(0)  加入收藏
TP框架:ThinkPHP简单、快速,基于MVC和面向对象,易用性较高,是一款简洁实用的轻量级框架。Laravel框架:Lavavel一直秉承着优雅的原则,很好的支持了composer,实现了更丰富的扩展,社区...【详细内容】
2019-06-18  Tags: php框架  点击:(448)  评论:(0)  加入收藏
▌简易百科推荐
序言:前段时间织梦因为版权的问题在网上闹得沸沸扬扬,也提醒了众多开发者选择cms上应该谨慎使用,今天给大家展示一款自己搭建的内容管理系统,不用担心版权的问题,而且非常容易维...【详细内容】
2021-11-30  小程序软件开发    Tags:管理系统   点击:(34)  评论:(0)  加入收藏
准备安装包(PHP: Hypertext Preprocessor)下载安装包以及组件wget https://www.php.net/distributions/php-8.0.0.tar.bz2wget https://github.com/phpredis/phpredis/archive...【详细内容】
2021-11-09  mimic96    Tags:PHP   点击:(40)  评论:(0)  加入收藏
golang context 很好用,就使用php实现了github地址 : https://github.com/qq1060656096/php-go-context context使用闭坑指南1. 将一个Context参数作为第一个参数传递给传入和...【详细内容】
2021-11-05  1060656096    Tags:PHP   点击:(41)  评论:(0)  加入收藏
一段数组为例:$list = array:4 [ 0 => array:7 [ "id" => 56 "mer_id" => 7 "order_id" => "wx163265961408769974" "is_postage" => 0 "store_name" => "奇...【详细内容】
2021-09-29  七七小影视    Tags:PHP   点击:(65)  评论:(0)  加入收藏
利用JS的CryptoJS 3.x和PHP的openssl_encrypt,openssl_decrypt实现AES对称加密解密,由于需要两种语言对同一字符串的操作,而CryptoJS 的默认加密方式为“aes-256-cbc”,PHP端也...【详细内容】
2021-09-16  李老师tome    Tags:对称加密   点击:(79)  评论:(0)  加入收藏
1、checkdate()验证格利高里日期即:日期是否存在。checkdate(month,day,year);month必需。一个从 1 到 12 的数字,规定月。day必需。一个从 1 到 31 的数字,规定日。year必需。...【详细内容】
2021-08-31  七七小影视    Tags:时间函数   点击:(80)  评论:(0)  加入收藏
对于各类开发语言来说,整数都有一个最大的位数,如果超过位数就无法显示或者操作了。其实,这也是一种精度越界之后产生的精度丢失问题。在我们的 PHP 代码中,最大的整数非常大,我...【详细内容】
2021-08-26  硬核项目经理    Tags:PHP   点击:(83)  评论:(0)  加入收藏
遵从所有教材以及各类数据结构相关的书书籍,我们先从线性表开始入门。今天这篇文章更偏概念,是关于有线性表的一个知识点的汇总。上文说过,物理结构是用于确定数据以何种方式存...【详细内容】
2021-07-19  硬核项目经理    Tags:线性表   点击:(94)  评论:(0)  加入收藏
一、开启IIS全部功能。二、部署PHP1.官网下载并解压PHP: https://windows.php.net/downloads/releases/2.将php.ini-development文件改为php.ini3.修改php.ini(1)去掉注释,并修...【详细内容】
2021-07-15  炘蓝火诗  今日头条  Tags:PHP环境   点击:(129)  评论:(0)  加入收藏
一、环境说明本文中使用本地VM虚机部署测试。OS:CentOS Linux release 7.8.2003 (Core)虚机配置:2核CPU、4G内存①系统为CentOS 7.8 x64最小化安装,部署前已完成系统初始化、...【详细内容】
2021-06-25  IT运维笔记  今日头条  Tags:PHP8.0.7   点击:(141)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条