CSDN 潜水
  • 33发帖数
  • 33主题数
  • 0关注数
  • 0粉丝
开启左侧

Laravel 成为最佳 PHP 框架的 14 个来由

[复制链接]
CSDN 发表于 2019-9-11 08:01:23 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

                               
登录/注册后可看大图
作者 | Manik
译者 | 苏本如,责编 | 屠敏
出品 | CSDN(ID:CSDNnews)
以下为译文:
在开发应用步伐时选择使用哪个框架,这将取决于很多因素。和别的任何应用步伐框架一样,Laravel框架也有其优缺点。撇开那些令人憎恶的缺点不谈,这篇文章我们将把重点放在使用Laravel框架的优点上。在我开始讨论Laravel的神奇之处之前,我想先花点时间讨论一下为什么我们要使用框架来开发应用步伐。而不使用已有的框架,自己开发构建一个应用步伐所需统统的潜伏风险是什么?

                               
登录/注册后可看大图
不使用框架来构建应用步伐有什么题目?
为了明白在不使用框架的情况下开发一个应用步伐的潜伏风险,让我们假设,我们必须构建一个使用MVC(模子-视图-控制器)架构模式的应用步伐。当你开始设置架构时,我们需要根据应用步伐的布局,从很多种架构模式中做出合适的选择。当我想到如果我自己需要开发一套完备的应用步伐体系架构时,我马上想到了几个题目。
首先,我应该从应用步伐的哪个组件开始着手处理呢?是先安装所有的第三方依赖项和库吗?从应用步伐的可扩展性来思量,我应该使用什么样的模子类(model class)库来和数据库进行交互?是使用PDO类呢,还是有更好的选择?我将怎样管理依赖注入?思量到后期会有更多的开发人员在同一个应用步伐上工作,我应该怎样对这个体系布局做一个完备的记录?
这些题目看起来很难回答,但是我想告诉你这些仅仅是个开始。很明显,如果你不是一个认识MVC体系架构的编程者,那么这些题目自己对你来说都是新题目。如果你从前没有使用过任何框架,你可能从来没有问过这些题目。如果是如许的话,那么这个理由自己就足以让你采用Laravel框架进行应用步伐开发。Laravel框架将为你处理所有这些低级的细节,并为你提供一个简洁和实用的架构模式。同时,Laravel框架将为你处理模子、视图和控制器之间的无缝交互。并且还将为你提供很多内置在框架中的不同功能,以便你可以专注于编写应用步伐的业务逻辑。终极,你因为不必花费时间寻找这些低级题目标解决方法,而节省大量的时间和精神。

                               
登录/注册后可看大图
框架提供了一致性和灵活性
让我们试着想象一下如许一种情况:你正在开发一个巨大的应用步伐,但是没有使用任何现成的框架或者使用自己构建的框架。当用户数目增加或需要添加更多功能时,你将需要更多的开发人员来开发和维护这个应用步伐。在新开发人员入职期间,你除了向他们介绍你的开发团队需要遵照的软件开发的所有流程步调和方法之外,你还必须向他们解说你所构建的整个应用步伐布局。
由于这个原因,新的开发人员必须通过一个高的学习曲线来明白你开发的新体系布局。但是如果你使用Laravel框架,这类题目将不复存在,因为这个框架会带给你应用步伐开发的一致性。Laravel框架有详细的文档,新开发人员不必经历使用新框架的学习过程。因为你可以很容易地聘请到一个认识Laravel框架的开发人员,并能让他很快开始工作。
当一个团队使用尺度化框架(好比Laravel)来构建应用步伐时,向团队中添加其他开发人员就会变得很容易。这是因为:当你雇佣了一个认识Laravel框架的开发人员,他能够明白这些代码,因为所有代码都遵照相同的模式。

                               
登录/注册后可看大图
使用Laravel框架的好处
如果上面这些听起来已经很有趣,并且足以鼓励你在你开发下一个应用步伐时使用框架,那么接下来让我分享一下Laravel框架相对于别的PHP框架所具有的一些上风。这些上风无疑使Laravel框架成为最佳PHP框架的主要竞争者之一。
1.开箱即用的用户身份验证
Laravel框架提供了开箱即用的用户身份验证功能。任何现代的web应用步伐都需要用户身份验证,使用Laravel框架,你几乎不需要做任何事变就可以将它设置好。当你设置用户身份验证时,Laravel框架会创建所有重要的组件,如用户模子、注册和登录控制器,以及相应的视图。而且在将来,根据应用步伐所需的业务逻辑,将这些组件扩展到新添加的功能上也黑白常容易的。
除此之外,Laravel框架还提供了Socialite package(扩展包),它使你的应用步伐能够使用各种社交网络(如Facebook, Google Plus和Twitter)对用户进行身份验证。要使它工作正常,你只需进行最低限度的配置。
2. 约定优于配置(也称作按约定编程)
Laravel框架同样采用“约定优于配置”的方法。这基本上意味着,如果遵照了不同组件的命名约定,就几乎不必关注配置工作。如果你遵照了命名约定,Laravel框架自身就会帮你处理很多低级的细节,而且统统都会神奇地开始工作。如果你不停使用传统的PHP编程,这在一开始可能会让您感到难以忍受。但一旦你尝到了优点,你就再也不想回头了。
3.轻松使用的电子邮件功能
很难想象一个现代的应用步伐会没有电子邮件功能。使用Laravel框架,实现电子邮件发送功能非常容易。除了SMTP和Php邮件功能外,Laravel框架还支持各种各样的电子邮件关照服务,如Mailgun,Mandrill,SparkPost,Amazon SES,SendMail等等。这些服务可以使你能够快速开始通过本地或基于云的服务发送邮件。你还可以使用Nexmo通过Slack和SMS发送关照。所有这些服务在Laravel框架中都是开箱即用的。
Laravel框架还在电子邮件模板中支持Markdown(译者注:Markdown是一个文本到HTML(text-to-HTML)的转换工具),它能够使你在很少的时间内完成电子邮件的创建工作。
4.Artisan下令
对我个人而言,Artisan下令行是Laravel框架提供的最简练和最有用的功能。Artisan是Laravel框架的下令行接口,它帮助开发人员使用下令行自己主动化很多任务。Artisan下令可以在应用步伐自己中使用,开发人员也可以创建额外的Artisan下令。
你能够想到的所有常见任务,都能找到一个Artisan下令与之对应。例如,创建一个模子、创建一个控制器、创建一个数据库种子、迁移数据库等等。这个列表是无穷无尽的。我之所以说它“简练”,是因为你所要做的就是传递下令,剩下的工作全交给Laravel框架来处理。
5.“测试驱动开发”的测试主动化
Laravel框架自带对PHPUnit的支持,使得采用“测试驱动开发”模式的PHP应用步伐的测试变得非常容易。为应用步伐编写单元测试变得很简单,而且确保事变按照你希望的方式进行。
6.简洁的依赖注入
一旦你开始使用Laravel框架工作,你很快就会意识到Laravel框架是从Ruby on Rails和更多的函数式语言中得到的灵感,而不是从Java。这一点从Laravel框架处理依赖注入的方式就可以轻易地看出这一点。尽管实现依赖注入可以采取复杂的模式,但Laravel框架采取的做法与之相反,它提供了创建全局助手函数的简单方法。借助于全局函数和Faade静态署理,我们就可以在任何需要的地方轻松地实现依赖注入。
7.业务逻辑和显示代码的分离
Laravel遵照模子-视图-控制器(MVC)架构模式,将业务逻辑与视图分离。这种方法有很多优点。而要真正了解它优点,你需要了解什么是MVC模式,以及你的应用步伐是否需要如许的体系架构。
8. Eloquent ORM(对象关系映射)实现
Eloquent是Laravel提供的ORM(对象关系映射)实现。更多信息可以参考维基百科中的链接(https://en.wikipedia.org/wiki/Object-relational_mapping)。Eloquent使得从数据库中获取数据变得非常容易。创建表之间的关系并从这些表中获取数据也变得很简单。Eloquent还答应你在表中创建各种毗连,并提供很多帮助函数,使与数据库的交互变得非常简单。你几乎不必编写SQL查询语句或函数。因为有了Eloquent ORM,Laravel框架就可以为下面这些数据库提供开箱即用的支持:

  • MySQL
  • PostgreSQL
  • SQLite
  • SQL Server
你真是说对了,这基本上意味着只要你使用Eloquent,你就不必担心与上述任何数据库的兼容性。从一个数据库切换到另一个数据库也非常容易。如今试着想象一下这给你的应用步伐带来的可扩展性,不妨让我用一个例子来表明这一点。假设你有一个应用步伐,这个应用步伐在开始时有一个很小的用户群。由于用户数目较小且应用步伐处于初始阶段,因此你决定使用MySQL作为数据库。一段时间过后,你的应用步伐的用户数目增长到了相当高的级别,如今你可能需要切换到SQL Server数据库。因为使用了Eloquent,这个切换如今变得非常简单,就像更改Laravel框架中的特定配置详细信息一样容易。
9.队列(Queue)和调治器(Scheduler)
在开发应用步伐时,通常会有一些耗时的任务。这些任务需要推迟到稍后的时间实行,如许它们就不会给用户的流程造成壅闭。这类任务的一个完美例子可能是生成一个统计用户请求创建CSV文件的PDF报告。Laravel框架的队列服务提供了一个同一的API,用于将这些任务推迟到应用步伐的稍后时间处理。
谈到Laravel框架的下令调治器,它是那些繁琐的定时任务(Cronjob)的完美替换品。在很多时候,开发人员必须为特定的任务设置定时作业。这种任务的一个完美例子是向所有订阅用户发送他们订阅的每周简讯(Newsletter)。为了设置这个定时作业,开发人员必须使用SSH下令登录到服务器并在操作系统级别设置这个定时作业。这在一段时间内会成为一个麻烦,因为这些定时作业不能成为GIT和别的版本控制系统管理的一部分。但是Laravel框架的下令调治器使用内置函数提供了一个干净的API来调治各种各样的任务。如许,你就不必使用SSH下令登录到服务器的终端,并且所有这些被调治的作业都成为代码的一部分而纳入版本控制系统管理的范围。
10.简洁的路由
Laravel框架处理路由的方式简单直观。有一个单一的web.php文件来处理所有的web路由。如果某些路由需要公共中间件,它们可以很容易地在Laravel中分组。
路由的一个完美的应用场景是:应用步伐中的某些页面,在用户可以查看它们之前,这些页面需要用户身份验证。Laravel框架可以将所有这些页面分组,并且颠末Auth中间件检查,以确保只有登录到系统的用户才能查看这些页面。Laravel框架还提供了一个简洁的路由模子绑定(route model binding),其中模子(model)可以绑定到路由。有了这个帮助,视图可以直接从路由自己返回,甚至不需要访问控制器。
11. Composer管理依赖关系
Laravel框架使用Composer管理依赖关系和主动加载。Composer可以帮助你安装Laravel扩展包,这使得依赖管理变得轻而易举。在任何时候,你都可以检查package.json文件来查看你的应用步伐正在使用的所有依赖项。Composer还让你能够使用单个Composer下令更新依赖项。
12.Blade模板引擎
Blade是Laravel框架的模板引擎。Blade可以让你在分离视图和业务逻辑上领先一步。它能让你的视图代码保持非常干净。一旦你对MVC架构模式和Laravel对它的实现有了清楚的了解,你就会更加清楚地认识到Blade模板引擎的重要性。Blade还提供了模板继续,因此你可以将迩来使用的模板分别为多个部分,并让别的视图文件继续这些部分。有了Blade的帮助,你就可以创建一些逻辑较小的视图部分,然后可以包含这些小的部分以形成完备的视图。
13.文档
这是一个有点灰色的地区。当我最初开始使用Laravel框架的时候,我在查找文档时确实遇到了题目。当时所有的统统都没有文档,但是在某个时候我突然发现有些事变开始神奇地工作,那就是大家始遵照命名规范的那个时候。如今,有一些API文档列出了Laravel框架中声明的每个类和方法。一旦你把握了怎样使用它,并且知道怎样使用Laravel文档来为你的利益服务,我包管你不会再有任何抱怨。
14.活跃社区
Laravel确实有一个活跃的社区。当你遇到任何题目时,你都可以搜索,而且肯定会查到很多针对你的题目标StackOverflow帖子。除了在StackOverflow上有一个活跃的社区外,还有一个叫做Laracast的讨论论坛。你可以免费注册成为Laracast论坛和社区的一部分,那个社区如今非常活跃。
我认为这些上风足以让你对Laravel框架感到兴奋。尽管把它定义为完美肯定是夸大其词了,但我可以肯定的是,Laravel框架绝对是最好的PHP框架之一。
原文: https://hackernoon.com/14-reasons-why-Laravel-is-a-contender-for-the-best-php-framework-6h5f31rp
本文为 CSDN 翻译,转载请注明来源出处。
【END】
随着智能物联迅速的兴起,场景联动越来越普遍,作为敲门砖的毗连服务该怎样实现?
360 资深工程师深度揭秘 360 IoT 云平台毗连服务的技术框架实现细节、物联网协议应用和多协议,多网络的落地实践以及毗连服务未来的演进方向。

精彩评论20

mwk金雕 发表于 2019-9-11 08:33:50 | 显示全部楼层
就是太慢。slim 加 medoo 也不错。上手最容易还是 thinkphp
祖传杠精 发表于 2019-9-11 16:04:40 | 显示全部楼层
很好,大版本不兼容,做业务体量大了无法升级变成祖传代码,最后招不到新人维护,延长了程序猿的职业生涯,35岁再也不淘汰了
海涛144863362 发表于 2019-9-11 09:03:09 | 显示全部楼层
现在框架都大同小异,你有我也有,应该着重研究下swoole,异步,协程,连接池啥的
赚了就跑出货就卖 发表于 2019-11-13 23:15:37 | 显示全部楼层
没人支持yii吗。。
素材屋 发表于 2019-9-18 10:02:56 | 显示全部楼层
框架大同小异 能不能研究研究异步 协程 swoole集成下也好啊 不然老被鄙视
ami28375076 发表于 2019-9-12 06:04:47 | 显示全部楼层
laravel 容器是精华,也被其他框架抄去了
杨呀 发表于 2019-9-11 15:24:57 | 显示全部楼层
这破框架…
dsky500 发表于 2019-11-25 08:24:10 | 显示全部楼层
新手学这个,就等于一辈子毁了
逗比大表哥777 发表于 2019-11-9 21:13:26 | 显示全部楼层
swoft路过
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

猜你喜欢
在线客服邮箱
wxcy#wkgb.net

邮箱地址#换为@

Powered by 创意电子 ©2018-现在 专注资源实战分享源码下载站联盟商城