热门标签 | 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目前被过度夸大了,我们不应该也不可能只有一个框架一家独大,我相信百花齐放的编程世界才更美好。


推荐阅读
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • 本文介绍了一种图片处理应用,通过固定容器来实现缩略图的功能。该方法可以实现等比例缩略、扩容填充和裁剪等操作。详细的实现步骤和代码示例在正文中给出。 ... [详细]
  • C++语言入门:数组的基本知识和应用领域
    本文介绍了C++语言的基本知识和应用领域,包括C++语言与Python语言的区别、C++语言的结构化特点、关键字和控制语句的使用、运算符的种类和表达式的灵活性、各种数据类型的运算以及指针概念的引入。同时,还探讨了C++语言在代码效率方面的优势和与汇编语言的比较。对于想要学习C++语言的初学者来说,本文提供了一个简洁而全面的入门指南。 ... [详细]
  • 我们在之前的文章中已经初步介绍了Cloudera。hadoop基础----hadoop实战(零)-----hadoop的平台版本选择从版本选择这篇文章中我们了解到除了hadoop官方版本外很多 ... [详细]
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社区 版权所有