Searching...
简体中文
English
Español
简体中文
Français
Deutsch
日本語
Português
Italiano
한국어
Русский
Nederlands
العربية
Polski
हिन्दी
Tiếng Việt
Svenska
Ελληνικά
Türkçe
ไทย
Čeština
Română
Magyar
Українська
Bahasa Indonesia
Dansk
Suomi
Български
עברית
Norsk
Hrvatski
Català
Slovenčina
Lietuvių
Slovenščina
Српски
Eesti
Latviešu
فارسی
മലയാളം
தமிழ்
اردو
Laravel

Laravel

Up and Running: A Framework for Building Modern PHP Apps
by Matt Stauffer 2016 452 pages
Programming
Technology
Computer Science
8 minutes

重点摘要

1. Laravel通过优雅的语法和强大的功能简化了Web应用程序开发

“Laravel的核心在于为开发者提供装备和支持。它的目标是提供清晰、简单和美观的代码和功能,帮助开发者快速学习、启动和开发,并编写简单、清晰且持久的代码。”

框架哲学。 Laravel专注于开发者的幸福感和生产力。它通过约定优于配置来实现这一点,使开发者无需过多的样板代码即可快速入门。该框架提供了一套强大的工具和库,涵盖了从路由和数据库访问到身份验证和缓存的常见Web开发任务。

优雅的语法。 Laravel的语法设计得非常富有表现力且直观。这在框架的各个方面都很明显:

  • 流畅的数据库查询:User::where('active', true)->orderBy('name')->get()
  • 简单的路由定义:Route::get('/users', [UserController::class, 'index'])
  • 富有表现力的验证规则:'email' => 'required|email|unique:users'

强大的功能。 Laravel包含一系列内置功能,加速开发进程:

  • 用于数据库交互的Eloquent ORM
  • 用于视图的Blade模板引擎
  • 用于常见任务的Artisan命令行工具
  • 内置的身份验证和授权系统
  • 用于后台作业处理的队列系统
  • 事件广播和WebSocket集成

2. 路由和控制器构成了Laravel请求处理的骨干

“控制器本质上是负责将用户请求路由到应用程序的服务和数据,并返回某种有用响应的类。”

路由系统。 Laravel的路由系统允许开发者定义应用程序如何响应HTTP请求。可以为不同的HTTP方法(GET、POST、PUT、DELETE等)定义路由,并可以包含URL的动态段参数。

控制器组织。 Laravel中的控制器提供了一种结构化的方式来分组相关的请求处理逻辑。它们可以组织成:

  • 用于RESTful API的资源控制器
  • 用于专注功能的单一操作控制器
  • 用于简单、单一目的操作的可调用控制器

中间件。 Laravel的中间件提供了一种方便的机制来过滤进入应用程序的HTTP请求:

  • 身份验证检查
  • CSRF保护
  • API速率限制
  • 自定义业务逻辑

3. Blade模板引擎提供了一种清晰且富有表现力的方式来创建视图

“Blade是Laravel的模板引擎。它的主要关注点是清晰、简洁和富有表现力的语法,具有强大的继承性和可扩展性。”

模板继承。 Blade允许开发者创建可重用的布局:

  • 使用@yield指令定义主布局
  • 在子视图中使用@extends扩展布局
  • 使用@section@endsection覆盖部分

指令和控制结构。 Blade为常见的PHP控制结构提供了清晰的语法:

  • 条件语句:@if@else@elseif@unless
  • 循环:@foreach@for@while
  • 包含子视图:@include
  • 用于扩展功能的自定义指令

数据展示和转义。 Blade使显示数据变得容易,同时防止XSS攻击:

  • 自动转义数据:{{ $variable }}
  • 显示未转义的数据(谨慎使用):{!! $variable !!}
  • 轻松访问嵌套数据:{{ $user->profile->name }}

4. Eloquent ORM通过直观的ActiveRecord实现简化了数据库交互

“Eloquent是Laravel的ActiveRecord ORM,它使得将Post类(模型)与posts数据库表关联变得容易,并通过调用Post::all()获取所有记录。”

模型定义。 Eloquent模型代表数据库表,并提供了一个直观的接口来与数据交互:

  • 定义模型之间的关系(hasMany、belongsTo等)
  • 设置访问器和修改器进行数据转换
  • 实现模型事件以挂钩生命周期

查询构建。 Eloquent提供了一个流畅的接口来构建数据库查询:

  • 检索数据:User::where('active', true)->get()
  • 插入记录:User::create(['name' => 'John', 'email' => 'john@example.com'])
  • 更新记录:$user->update(['status' => 'active'])
  • 删除记录:$user->delete()

高级功能。 Eloquent包含用于复杂数据库操作的强大功能:

  • 预加载解决N+1查询问题
  • 软删除用于归档记录
  • 模型工厂和种子用于测试和开发
  • 查询作用域用于可重用的查询逻辑

5. Laravel提供了开箱即用的强大身份验证和授权

“Laravel带有默认的User模型、create_users_table迁移、auth控制器和auth脚手架,Laravel提供了一个完整的用户身份验证系统。”

身份验证系统。 Laravel提供了一个完整的身份验证系统,几乎无需配置即可设置:

  • 用户注册和登录
  • 密码重置功能
  • 记住我功能
  • 电子邮件验证

授权。 该框架包含一个强大的授权系统:

  • 为模型特定的授权逻辑定义策略
  • 使用Gates进行简单的闭包以确定用户是否被授权
  • 实现中间件进行路由级别的授权

自定义。 虽然默认的身份验证系统已经很全面,但Laravel允许轻松自定义:

  • 修改身份验证视图和逻辑
  • 使用守卫实现多重身份验证
  • 集成第三方身份验证提供商

6. Artisan命令行工具提高了生产力并简化了常见任务

“Artisan是使得从命令行与Laravel应用程序交互成为可能的工具。”

内置命令。 Artisan带有一系列有用的命令:

  • 为模型、控制器、迁移等生成样板代码
  • 运行数据库迁移和种子
  • 清除各种应用程序缓存
  • 管理队列系统

自定义命令。 开发者可以创建自己的Artisan命令:

  • 使用php artisan make:command生成命令文件
  • 定义命令签名和描述
  • handle方法中实现命令逻辑

任务调度。 Artisan包含一个任务调度器,允许轻松管理定期任务:

  • app/Console/Kernel.php文件中定义调度
  • 使用富有表现力的语法定义任务频率
  • 在服务器上运行单个Cron条目以管理所有计划任务

7. Laravel的生态系统包括用于测试、队列和事件广播的强大工具

“Laravel提供了一系列工具来实现队列、队列作业、事件和WebSocket事件发布。我们还将介绍Laravel的调度器,它使得cron成为过去。”

测试。 Laravel包含用于单元测试和功能测试的工具:

  • 开箱即用的PHPUnit集成
  • 用于数据库测试的DatabaseMigrations和DatabaseTransactions特性
  • 模拟外观和服务以进行隔离的单元测试
  • 使用Laravel Dusk进行浏览器测试

队列系统。 Laravel的队列系统允许推迟耗时的任务:

  • 多个队列驱动程序(数据库、Redis、Amazon SQS等)
  • 用于封装队列逻辑的作业类
  • 失败作业处理和重试机制

事件广播。 Laravel使实现实时功能变得容易:

  • 在应用程序中定义和触发事件
  • 通过WebSockets广播事件
  • 与Pusher等服务集成或使用Laravel Echo进行客户端监听

生态系统工具。 Laravel的生态系统包括扩展其功能的附加工具:

  • 用于服务器管理和部署的Laravel Forge
  • 用于快速管理面板开发的Laravel Nova
  • 用于在AWS Lambda上无服务器部署的Laravel Vapor

通过利用这些强大的功能和工具,开发者可以使用Laravel构建健壮、可扩展和可维护的Web应用程序。该框架对开发者体验的关注,加上其广泛的功能,使其成为各种规模项目的绝佳选择。

Last updated:

评论

4.47 out of 5
Average of 100+ ratings from Goodreads and Amazon.

Laravel由Matt Stauffer撰写,深受读者好评,总评分为4.47/5。许多评论者认为它内容全面,涵盖了基础和高级主题。无论是初学者还是有经验的开发者,都推荐阅读。读者们赞赏其详细的解释、实用的例子和测试环节。一些人认为这是一本优秀的参考指南。少数读者指出,它没有采用项目引导的方式,且可能对最新的Laravel版本来说有些过时。总体而言,它被视为学习和掌握Laravel框架的宝贵资源。

关于作者

Matt Stauffer 是一位备受尊敬的作者和Laravel框架专家。他关于Laravel的书因其详尽和清晰而广受好评。Stauffer的写作风格因对初学者友好而受到赞誉,同时也为有经验的开发者提供了宝贵的见解。他对Laravel的架构和最佳实践有深刻的理解,并在作品中有效地传达了这些知识。Stauffer的专业知识不仅限于解释框架,他还强调正确的编码技术和测试方法。他通过写作对Laravel社区的贡献,帮助了许多开发者提高他们的技能和对框架的理解。

0:00
-0:00
1x
Create a free account to unlock:
Bookmarks – save your favorite books
History – revisit books later
Ratings – rate books & see your ratings
Listening – audio summariesListen to the first takeaway of every book for free, upgrade to Pro for unlimited listening.
Unlock unlimited listening
Your first week's on us
Today: Get Instant Access
Listen to full summaries of 73,530 books. That's 12,000+ hours of audio!
Day 5: Trial Reminder
We'll send you a notification that your trial is ending soon.
Day 7: Your subscription begins
You'll be charged on Sep 26,
cancel anytime before.
What our users say
“...I can 10x the number of books I can read...”
“...exceptionally accurate, engaging, and beautifully presented...”
“...better than any amazon review when I'm making a book-buying decision...”
Compare Features
Free Pro
Read full text summaries
Listen to full summaries
Unlimited Bookmarks
Unlimited History
Benefits
Get Ahead in Your Career
People who read at least 7 business books per year earn 2.3 times more on average than those who only read one book per year.
Unlock Knowledge Faster (or Read any book in 10 hours minutes)
How would your life change if we gave you the superpower to read 10 books per month?
Access 12,000+ hours of audio
Access almost unlimited content—if you listen to 1 hour daily, it’ll take you 33 years to listen to all of it.
Priority 24/7 AI-powered and human support
If you have any questions or issues, our AI can resolve 90% of the issues, and we respond in 2 hours during office hours: Mon-Fri 9 AM - 9 PM PT.
New features and books every week
We are a fast-paced company and continuously add more books and features on a weekly basis.
Fun Fact
2.8x
Pro users consume 2.8x more books than free users.
Interesting Stats
Reduced Stress: Reading for just 6 minutes can reduce stress levels by 68%
Reading can boost emotional development and career prospects by 50% to 100%
Vocabulary Expansion: Reading for 20 minutes a day are exposed to about 1.8 million words per year
Improved Cognitive Function: Reading can help reduce mental decline in old age by up to 32%.
Better Sleep: 50% of people who read before bed report better sleep.
Can I switch plans later?
Yes, you can easily switch between plans.
Is it easy to cancel?
Yes, it's just a couple of clicks. Simply go to Manage Subscription in the upper-right menu.
Save 62%
Yearly
$119.88 $44.99/yr
$3.75/mo
Monthly
$9.99/mo
Try Free & Unlock
7 days free, then $44.99/year. Cancel anytime.