Code前端首页关于Code前端联系我们

Laravel 这个宇宙中最强大的语言、PHP“全栈”框架有什么特别之处?它是如何工作的?

terry 2年前 (2023-09-25) 阅读数 55 #后端开发

在动态网页开发的早期,编写Web应用程序的方法与今天有很大不同。

开发人员不仅负责编写应用程序的独特业务逻辑,还负责编写整个站点的各种通用组件,包括用户身份验证、输入验证、数据库访问和模板等。

当今有数十种可用的应用程序开发框架,以及数千个可用的组件和库。 程序员经常面临的一个问题是:学习一个框架时,出现了一些新的框架(据说是更好的框架),可以取代将来正在学习的框架。

“因为山在那里”可能是爬山的一个理由,但可能有更好的理由选择使用特定的框架。 值得思考:为什么要使用框架?更准确地说,为什么使用 Laravel 作为框架?

PART.01 为什么使用框架

看看 PHP 开发人员可以使用的一些组件和软件包(又名包),实际上很容易看出为什么使用这些组件和包有很多好处。使用包可以让其他人负责开发和维护具有特定功能的独立代码块。理论上,开发人员可能有更多的时间对这些单独的组件进行深入的了解和研究。

Laravel、Symfony、Lumen 和 Slim 等框架附带预安装的第三方组件和自定义框架,例如配置文件、服务提供程序、规定的目录结构和应用程序引导。

所以总的来说,使用框架的优点在于它不仅为开发人员提供了对各个组件的良好选择,而且还帮助开发人员决定如何组合这些组件。

▊“自己动手”

我们来分析一下没有框架带来的不便。如果您想创建一个 Web 应用程序,您会从哪里开始?

也许从 HTTP 请求开始,所以现在您需要评估所有可用的 HTTP 请求库和 HTTP 响应库,并从中选择一个。接下来,需要建立路由并且可能需要设置某种路由配置文件。

使用哪种语法?如何制作一个好的控制器?我应该把它们放在哪里以及如何加载它们?您可能需要一个依赖项注入容器来处理控制器及其依赖项,但您应该选择哪一个?

另外,这会对下一个花时间解决上述所有问题并成功创建应用程序的开发人员产生什么影响?而当有多个这样的基于自定义框架的应用时,你还需要记住每个应用中控制器的位置,以及路由的语法等。

▊ 一致性和灵活性

“哪个组件我们应该在这里使用吗?”框架解决了这个问题。

它提供了一个经过深思熟虑的答案,并确保您选择的特定组件能够很好地协同工作。

此外,框架还提供了一些约定,可以减少代码开发人员在创建新项目时需要了解。例如,如果您了解路由在一个 Laravel 项目中的工作原理,那么您也就了解路由在所有 Laravel 项目中的工作原理。

当有人为每个新项目开发自己的框架时,他们真正关心的是在不改变应用程序基础部分的情况下他们可以控制什么。这意味着一个好的框架不仅可以提供稳定的基础内容,还可以个性化核心内容。正如本书的其余部分所示,这Laravel 框架如此特别的原因之一。

DEL。

02

Laravel 有什么特别之处

Laravel 有何特别之处?为什么在任何给定时间都应该有多个 PHP 框架?他们都使用 Symfony 组件,对吗? 让我们来谈谈 Laravel 的特别之处。

▊ Laravel 的哲学

只需阅读 Laravel 的营销材料和 README 即可了解其价值。

Taylor 使用了一些与光相关的词,比如 Illuminate、Spark,还有一些词:Artisan、Elegant。另外,还有一些短语:新鲜空气,新鲜开始。最后还有一句话:快、异常的速度(Warp speed)。

该框架提供了两个强大的价值:提高开发人员的开发速度和开发人员的幸福感。

泰勒将“工匠语言”描述为一种更具实用价值的语言。

这个想法的起源可以在 2011 年提出的 StackExchange 问题中看到。Taylor 说:“有时我花了很多时间只是让代码看起来更好,这更烦人。而且这只是为了更好地阅读代码。” ”他经常谈论如何让开发人员更轻松、更快速地实现他们的想法,消除不必要的障碍来创造出色的产品。

Laravel 的核心是为开发人员提供装备和支持。 其目标是提供清晰、简单、美观的代码和功能,帮助开发者快速学习和开发,编写出简单、清晰、耐用的代码。

开发者的概念在 Laravel 材料中非常明确。该文档明确指出:快乐的开发人员创造出最好的代码。同时,“让开发者从下载到部署都快乐”也是一句非正式的口号。

当然,任何工具或框架都会说它会让开发人员高兴。但是,将开发人员的幸福感作为首要考虑因素而不是次要考虑因素,对 Laravel 的风格和决策过程产生了巨大影响。

在其他框架中,维护架构的纯粹性可能是首要目标,也可能需要与企业开发团队的目标和价值观保持一致,而Laravel的主要目标是服务开发者。这并不意味着您不能使用 Laravel 编写设计良好的或企业级应用程序,而是意味着您可以使用 Laravel 编写应用程序,而无需牺牲代码库的可读性和可理解性。

▊ Laravel 如何让开发者快乐

光说你希望开发者快乐是一回事,但真正做到又是另一回事,这需要你猜​​测,你最有可能在框架中的哪些地方做出开发者快乐 人们不快乐,他们最有可能快乐的地方在哪里?

Laravel 尝试通过多种方式让开发人员的生活变得更轻松。

首先,Laravel 是一个快速应用程序开发框架。这意味着它专注于简单的学习过程,并最大限度地减少新应用程序从启动到发布所需的步骤。构建 Web 应用程序的所有最常见的任务,从数据库交互到身份验证,从排队到电子邮件到缓存,都通过 Laravel 提供的组件进行了简化。然而,Laravel 组件的作用远不止于此,它们在整个框架中提供了统一的 API 和稳定的结构。这意味着开发者在 Laravel 中做新实验时很可能会做出积极评价:“它太容易使用了!”

Laravel 的好处还不止于此,它还提供了一个完整的、易于使用的工具生态系统,用于构建和发布应用程序。您可以使用 Laravel 的 Homestead 和 Valet 工具进行本地开发,使用 Forge 工具进行服务器管理,以及使用 Envoyer 工具进行高级部署。此外,还有一组附加组件:Cashier(用于支付和订购)、Echo(用于 WebSocket 编程)、Scout(用于搜索功能)、Passport(用于 API 身份验证)、Dusk(用于前端测试)、Socialite (用于社交登录)、Horizo​​n(用于监控队列)、Nova(用于构建管理面板)、Spark(用于 SaaS 引导)等。Laravel 试图将重复性工作从开发人员的工作中剔除,以便开发人员可以做一些独特的事情。

接下来要说的是,Laravel 注重“约定优于配置”,这意味着如果你愿意使用 Laravel 的默认设置,相比其他框架可以减少很多工作。在其他框架中,即使使用推荐的配置,也必须声明所有设置。因此,使用 Laravel 构建的项目比大多数其他 PHP 框架花费的时间更少。

Laravel 也注重简单性。如果需要,您可以使用依赖注入、模拟、数据映射器模式、存储库模式、命令查询职责分离和其他更复杂的架构模式。

虽然其他框架可能建议在任何项目中使用这些工具和结构,但 Laravel、其文档和社区更喜欢从最简单的开始,例如全局函数、facade 或 ActiveRecord。这使得开发人员能够创建最简单的应用程序来解决他们的需求,并且不会限制他们在复杂环境中的使用。

有趣的是,Laravel 及其社区的创建者与 Ruby、Rails 和函数式编程语言的联系较多,而与 Java 的联系较少。现代 PHP 有一个强烈的趋势,即框架趋于变得更加复杂并包含更多 Java 风格的 PHP 代码。但 Laravel 不同。它将追求更具表现力、动态和简单的编码实践和语言特征。

▊ Laravel 社区

如果这是您第一次接触 Laravel 社区,有一些值得期待的事情。 Laravel 的标志之一是它的成长和成功与其受欢迎的教师社区密不可分。

Laravel 拥有一个丰富且充满活力的社区,其中包括从第一天就来到这里的人和第一次来到这里的人。一个成功的开源项目需要良好的文档和热情的社区,这两者现在都是 Laravel 的标志。

分享。

03

Laravel 的工作原理

到目前为止我在这里分享的所有内容都是抽象的。你可能会问,Laravel 代码是什么样的?让我们深入研究一个简单的应用程序(参见示例 1),以便您可以了解 Laravel 在日常工作中的实际情况。

示例1:在routes/web.php中实现“Hello, World”

在Laravel应用程序中可能最简单的事情就是定义一个路径并在访问该路径时返回一个结果。如果您在计算机上初始化一个新的 Laravel 应用程序,定义示例 1-1 中的路由,然后使用公共目录中的站点,您将拥有一个功能齐全的“Hello, World”示例应用程序(参见图 1)。 l aravel 可以帮助您将想法变为现实,而不会浪费代码(即用极其精简的代码实现强大的功能),使用现代编码标准,并拥有充满活力的社区和强大的工具生态系统。

因为有你,亲爱的开发者,使用 Laravel 会让你快乐!

本文摘自新博客(第二版)

。本书第一版获得了众多读者的好评。第二版进行了Laravel版本升级,涵盖更多前沿内容!

2。问题完全涵盖了 Laravel 5.8 版本。系统介绍Laravel框架,包括Laravel的背景、建立Laravel开发环境、路由和控制器、Leaf模板、数据库和Eloquent、前端组件、收集和处理用户数据、Artisan和Tinker、用户认证和授权,请求、响应以及中间件、容器、测试等知识。

通过阅读本书,读者可以全面学习和掌握Laravel开发的相关理论知识。此外,书中还包含大量实例,有利于读者在学习理论知识的同时进行实践。

宇宙最强语言PHP“全栈”框架——Laravel有什么特别之处?如何工作的?

▊《Laravel入门与实战(第2版):构建主流PHP应用开发框架》

【美】作者:Matt Stauffer(马特·斯托弗)

伟译《❿❿最强框架》语言PHP Lavaral迎来升级版本 切割-前沿、主流、高效、全面!包含新版本全面知识点

这是一本实用的Laravel技术指南,第二版全面涵盖了Laravel 5.8版本的内容,本书提供了系统的介绍Laravel框架,包括Laravel的背景、建立Laravel开发环境、路由和控制器、Leaf模板、数据库和Eloquent、前端组件、收集和处理用户数据、Artisan和Tinker、用户认证和授权知识,请求、响应和中间件、容器、测试等,通过阅读本书,读者可以全面学习和掌握Laravel开发的相关理论知识,此外,书中涵盖了大量的示例,有利于读者实践同时学习理论知识。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门