9 个 Laravel 最佳实践来构建更好的网站
Larval 是最流行的 PHP 框架之一,专门用于帮助开发人员快速构建 Web 应用程序。 据 builtwith.com
统计,超过 2750 万个网站使用 PHP 框架,占全球网站的 14%。 但是,我们应该始终坚持以下 Laravel 最佳实践,从而使 Laravel 开发变得轻而易举并获得最大收益。
Laravel 开发的 9 个最佳实践
1. 始终使用最新版本
每次升级,Laravel 都会变得更安全、更快速。 通过使用最新的 Laravel 版本,我们可以构建功能更强大、更安全的网站。 例如,2022 年 2 月发布的 Laravel 最新版本 Laravel 9.x 提供以下功能:
- 匿名类迁移是默认行为,因此在尝试从头重新创建数据库时,具有相同类名的多个迁移将不再产生问题
- 默认包含刷新的点火错误页面
- 包含一个用于类型提示、重构和静态分析的新查询构建器界面,对开发人员非常有帮助
- 路由列表设计已经过全面修改,以提高易用性和功能
这就是为什么最好升级到最新的 Laravel 版本。 如果我们还没有这样做,现在是时候了!
2. 遵守编码标准
Laravel 在编码方面非常灵活。 如果我们的变量与 composer
兼容,那很好。 遵守 PSR-2 和 PSR-4 编码标准将使您的代码保持整洁和无混淆。
以下是 PSR-2 和 PSR-4 编码标准的含义:
- PSR-2 :为您的 PHP 代码提供单一的样式指南以保持统一的格式
- PSR-4 :从文件路径指定自动加载类,以确保文件在我们的代码中自动加载到我们希望它们加载的位置
GrumPHP 有助于提高 Laravel 编码标准。
3. 使用辅助函数
一些开发人员试图通过创建他们的 PHP 助手来重新发明轮子。 这是一种雄心勃勃的做法,但不安全且可能任务繁重。 另一种方法是使用 Illuminate/Support/Str
中提供的辅助方法。 它们很简单,我们可以在任何地方调用它们。
这是一个例子:
public function newId()
{
....
$id = Str::random(24);
....
}
4. 遵循单一职责原则
单一职责原则确保一个类和方法一次只有一个职责。 这个原则使软件实现变得容易,并确保在未来的变化中不会发生冲突。
以下是如何在代码中遵循单一职责原则的示例:
public function getTransactionAttribute(): bool
{
return $this->isVerified() ? $this->getReference() : $this->getPaymentLink();
}
public function isVerified(): bool
{
return $this->transaction && ($transaction->type == 'withdrawal') && $this->transaction->isVerified();
}
public function getReference(): string
{
return ['reference'=>$this->transaction->reference, 'status'=>'verified'];
}
public function getPaymentLink(): string
{
return ['link'=>$this->transaction->paymentLink, 'status'=>'not verified'];
}
5. 使用 Artisan CLI
使用 Laravel 的 Artisan CLI 是在 Laravel 中进行 ace web 开发的另一种最佳方法。 它使用 Symfony 控制台组件帮助我们使 Web 开发过程顺利进行。 此外,如果发生任何事件,Artisan 命令有助于任务调度和触发操作。
这是一个如何从 HTTP 路由触发 Artisan 命令的示例:
Route::get(‘/foo’, function()
{
$exitCode = Artisan::call(‘command:name), [‘==option’ => ‘foo’]);
//
});
下面是一些有用的 Artisan CLI 命令来加速整个开发过程:
- php artisan config:clear 然后 php artisan config:cache – 此命令限制 IO 请求并通过将应用程序的所有配置选项组合到一个文件中来加快加载速度
- php artisan route:clear 然后 php artisan route:cache – 这个命令减少了整体计算时间。 如果你有基于闭包的路由,不要使用它
- php artisan optimize - 此命令编译所有视图并优化自动加载器
6. 使用 Request 类进行验证
始终在 Request 类中执行验证,因为它具有诸如表单请求(包含验证逻辑的单独请求类)之类的选项。 我们可以使用其他方法,但最好的方法是这样做:
public function store(CreateArticleRequest $request)
{
....
}
class CreateArticleRequest extends Request
{
public function rules(): array
{
return [
'slug' => 'required',
'title' => 'required|unique:posts|max:255',
'body' => 'required',
'flImage' => ['image', 'required', 'mimes:png,jpg,jpeg,gif']
];
}
}
最好不要像下面似的
public function store(Request $request)
{
$request->validate([
'slug' => 'required',
'title' => 'required|unique:posts|max:255',
'body' => 'required',
'flImage' => ['image', 'required', 'mimes:png,jpg,jpeg,gif']
]);
}
7. 使用超时 HTTP 请求
超时 HTTP 请求将帮助我们防止超时错误。 这很重要,因为 Laravel 会在 30 秒后超时,而且网络通常不可靠。 如果不使用超时 HTTP 请求,请求中的任何长时间延迟都会无限期地挂起应用程序。 因此,请确保在需要的地方使用超时,长时间的延迟只会产生错误。
这是一个完美实例的示例:
public function makeRequest(CreateArticleRequest $request)
{
....
$response = Http::timeout(120)->get(...);
....
}
8. 使用 chunk() 函数分解繁重的任务
chunk()
函数通过分解耗时的任务来帮助我们提高效率。 因此,使用它总是明智的。
以下是如何在 Laravel 代码中使用 chunk()
函数:
$this->chunk(100, function ($articles) {
foreach ($articles as $article) {
...
}
});
9. 避免在代码中直接使用环境 (.env) 变量
环境变量是影响正在运行的进程在计算机中的行为方式的值。 虽然我们可能想直接在代码中使用它们,但最好使用 config()
辅助函数来访问它们。 否则,外部变量(如服务器级或系统级环境变量)可以轻松覆盖我们的 .env
文件。
例如,推荐使用config中的配置文件
// config/api.php
'key' => env('API_KEY'),
// Use the data
$apiKey = config('api.key');
不要像下面一样直接在代码中shying
$apiKey = env('API_KEY');
总结
Web 开发框架与我们遵循的实践一样好。 框架确保我们不会犯拖累我们开发进度的错误,并使应用程序朝着正确的方向前进。 希望我们上面分享的 Laravel 实践能让你清楚地知道应该如何在 Laravel 中更快地开发高质量的网站。 在下一个网站上遵循这些做法,它将脱颖而出。
相关文章
在 Laravel 中验证数组和嵌套值
发布时间:2022/04/16 浏览次数:231 分类:编程语言
-
随着前端架构的复杂性增加,开发人员能够向后端提交更复杂的数据比以往任何时候都更加重要。因为我们正在构建更复杂的表单,所以我们需要更有效的方法来验证和处理来自这些表
Laravel artisan 命令 结合 phpstorm 使用详解
发布时间:2022/01/17 浏览次数:131 分类:学无止境
-
Laravel 框架是当下最流行的PHP框架之一。而其中的命令 artisan 又为该框架增添了不少的色彩。而对于 phpstorm , 它可以说是当下最流行的一款PHP IDE了。使用 phpstorm 来开发Laravel的项目,那
PHP坑 之 关联数组未定义键的使用
发布时间:2018/10/18 浏览次数:505 分类:PHP
-
因为 laravel框架对异常的处理非常全面,类似于上面的notice异常它也会捕获到然后抛出一个ErrorException,从而终止整个程序的运行。