热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php框架PHPixie与Laravel的比较

版本系统这两个框架都是迭代非常快速的框架。它们都不同于symfony,后者的变化要慢得多,甚至2.7和3.0版本之间的差异也不是很大。但是,如果将其与Linux发行版进行比较,则Symfony类似于Debian,Laravel类似于Ubuntu,PHPixie类似于Arch。
版本系统

这两个框架都是迭代非常快速的框架。它们都不同于symfony,后者的变化要慢得多,甚至2.7和3.0版本之间的差异也不是很大。但是,如果将其与Linux发行版进行比较,则Symfony类似于Debian, Laravel 类似于Ubuntu,PHPixie类似于Arch。PHPixie使用滚动发布方法,所有新功能和错误的修正后立即进入主版本。

执行效率

PHPixie的速度非常快,并且会越来越快,因为它的路由代码和内核本身并没有太大变化,它的新版本仅仅是添加一些新的库,而这些库只有在您使用它们时才会影响速度。Techempower的基准测试表明,在HHVM上,laravel的速度也赶不上phpixie。我们很少听到Laravel因为他的效率而被赞美,基本都是因为它的优雅而获得赞美,在这方面,PHPixie则显得执行效率太过优异。

入门难度

Laravel框架由组件组成,但是Laravel本身将它们合并为一个整体。PHPixie是严格模块化的,因此甚至没有一个DI容器,并且所有依赖项都是通过单独的工厂构建的。PHPixie是从头开始构建的,所有组件都是根据一个范例创建的,通过了解框架的一部分,你就可以更好地理解其它部分,从而了解整个框架,从而使代码调试变得更加容易。

数据库操作

数据库和 ORM 组件发展最快,他们是框架的最佳组成部分。两者都可以轻松地和第三方orm组件配合使用,laravel默认和eloquent整合,而PHPixie更多选择propel,可以说两者在数据库操作上没有太多的差距,都是可以非常优雅且高效地操作数据库

社区

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

测试

PHPixie以其100%的测试覆盖率而闻名。它可以为单个类编写简短而快速的单元测试,而不必在每个测试上增加一堆依赖项。当然,在Laravel中也有测试,但是要复杂很多。

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

路由

Laravel的路由非常强大,你甚至可以不通过控制器,直接在路由里面操作返回数据。比如下面的代码。

$router->bind(‘user’, function ($value) { return App\User::where(‘name’, $value)->first(); });

PHPixie的路由组件显得没有那么强大,但是却显得更加专一,它所做的只是将请求解析为一组参数并将其传递给用户,允许使用嵌套规则和前缀进行更灵活的配置。

模板引擎

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

组件

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

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


推荐阅读
  • 嵌入式开发环境搭建与文件传输指南
    本文详细介绍了如何为嵌入式应用开发搭建必要的软硬件环境,并提供了通过串口和网线两种方式将文件传输到开发板的具体步骤。适合Linux开发初学者参考。 ... [详细]
  • 在编译BSP包过程中,遇到了一个与 'gets' 函数相关的编译错误。该问题通常发生在较新的编译环境中,由于 'gets' 函数已被弃用并视为安全漏洞。本文将详细介绍如何通过修改源代码和配置文件来解决这一问题。 ... [详细]
  • iTOP4412开发板QtE5.7源码编译指南
    本文详细介绍了如何在iTOP4412开发板上编译QtE5.7源码,包括所需文件的位置、编译器设置、触摸库编译以及QtE5.7的完整编译流程。 ... [详细]
  • 目录一、salt-job管理#job存放数据目录#缓存时间设置#Others二、returns模块配置job数据入库#配置returns返回值信息#mysql安全设置#创建模块相关 ... [详细]
  • 本文详细介绍了优化DB2数据库性能的多种方法,涵盖统计信息更新、缓冲池调整、日志缓冲区配置、应用程序堆大小设置、排序堆参数调整、代理程序管理、锁机制优化、活动应用程序限制、页清除程序配置、I/O服务器数量设定以及编入组提交数调整等方面。通过这些技术手段,可以显著提升数据库的运行效率和响应速度。 ... [详细]
  • 使用JS、HTML5和C3创建自定义弹出窗口
    本文介绍如何结合JavaScript、HTML5和C3.js来实现一个功能丰富的自定义弹出窗口。通过具体的代码示例,详细讲解了实现过程中的关键步骤和技术要点。 ... [详细]
  • 主调|大侠_重温C++ ... [详细]
  • 本文深入探讨了UNIX/Linux系统中的进程间通信(IPC)机制,包括消息传递、同步和共享内存等。详细介绍了管道(Pipe)、有名管道(FIFO)、Posix和System V消息队列、互斥锁与条件变量、读写锁、信号量以及共享内存的使用方法和应用场景。 ... [详细]
  • Java 中重写与重载的区别
    本文详细解析了 Java 编程语言中重写(Override)和重载(Overload)的概念及其主要区别,帮助开发者更好地理解和应用这两种多态性机制。 ... [详细]
  • 随着技术社区的发展,越来越多的技术爱好者选择通过撰写博客来分享自己的学习经验和项目进展。本文将介绍一个具体案例,即将一套原本运行于Windows平台的代码成功移植到Linux(Redhat)环境下的过程与挑战。 ... [详细]
  • Ubuntu GamePack:专为游戏爱好者打造的Linux发行版
    随着Linux系统在游戏领域的应用越来越广泛,许多Linux用户开始寻求在自己的系统上畅玩游戏的方法。UALinux,一家致力于推广GNU/Linux使用的乌克兰公司,推出了基于Ubuntu 16.04的Ubuntu GamePack,旨在为Linux用户提供一个游戏友好型的操作环境。 ... [详细]
  • C语言实现推箱子游戏的完整代码
    本文详细介绍了如何使用C语言在Linux环境下实现一个简单的推箱子游戏,包括游戏的基本规则、地图设计及代码实现。适合C语言初学者学习。 ... [详细]
  • 探讨HTML中的DIV样式难题
    本文深入分析了HTML中常见的DIV样式问题,并提供了有效的解决策略。适合所有对Web前端开发感兴趣的读者。 ... [详细]
  • 如何在Linux中实现字符设备控制
    本文详细探讨了在Linux环境下控制字符设备的方法,包括蜂鸣器和模数转换器(ADC)的实际操作案例。对于开发者来说,了解这些基础知识对于嵌入式系统的开发尤为重要。 ... [详细]
  • CentOS 转向引发争议,联合创始人推出 Rocky Linux
    CentOS 转向 CentOS Stream 引发用户不满,其联合创始人 Gregory Kurtzer 推出新的社区项目 Rocky Linux,旨在延续 CentOS 的精神。 ... [详细]
author-avatar
百变精灵_tb
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有