首页  >  文章  >  php框架  >  laravel有什么缺点

laravel有什么缺点

青灯夜游
青灯夜游原创
2022-02-14 13:58:284623浏览

laravel框架的缺点有:1、基于组件式的框架,比较臃肿;2、框架大,比yaf等小型框架的效率会低一些;3、框架较复杂,上手比一般框架要慢,学习成本高。

laravel有什么缺点

本教程操作环境:windows7系统、Laravel6版、Dell G3电脑。

laravel框架

Laravel是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁、富于表达力。

优点

  • 文档丰富

  • 大量的第三方开源库

  • 安全机制齐全(表单验证等)

  • 中间件和路由对访问进行过滤及控制,避免非法请求

  • 错误处理机制友好

  • 支持composer包管理工具

  • 集合了php比较新的特性及各种设计模式。

缺点:

  • 基于组件式的框架,比较臃肿

  • 性能比yaf等小型框架的效率会低一些

  • 较复杂,上手比一般框架要慢,学习成本高

使用 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 框架就可以为下面这些数据库提供开箱即用的支持:

MySQLPostgreSQLSQLiteSQL 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 框架之一。

相关推荐:最新的五个Laravel视频教程

以上是laravel有什么缺点的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn