Laravel Ardent 开源项目教程
1. 项目的目录结构及介绍
Laravel Ardent 是一个用于简化 Laravel 模型验证的开源包。以下是其主要目录结构及其功能介绍:
laravel-ardent/
├── src/
│ ├── Ardent/
│ │ ├── Traits/
│ │ │ └── Purgeable.php
│ │ ├── Transforms/
│ │ │ └── Transformer.php
│ │ ├── Exceptions/
│ │ │ └── EloquentValidationException.php
│ │ ├── Concerns/
│ │ │ └── HasArdent.php
│ │ ├── ArdentServiceProvider.php
│ │ ├── Builder.php
│ │ ├── Model.php
│ │ └── Validator.php
│ ├── config/
│ │ └── ardent.php
│ └── helpers.php
├── tests/
│ ├── Integration/
│ │ └── ArdentTest.php
│ └── Unit/
│ └── ArdentUnitTest.php
├── composer.json
├── LICENSE
└── README.md
src/Ardent/
: 包含 Ardent 的核心类和功能。Traits/
: 包含 Ardent 使用的各种 trait。Transforms/
: 包含数据转换相关的类。Exceptions/
: 包含 Ardent 抛出的异常类。Concerns/
: 包含 Ardent 的核心功能 trait。ArdentServiceProvider.php
: 服务提供者,用于注册 Ardent 服务。Builder.php
: 自定义查询构建器。Model.php
: 自定义模型类,集成 Ardent 功能。Validator.php
: 自定义验证器类。
src/config/
: 包含配置文件。ardent.php
: Ardent 的配置文件。
tests/
: 包含单元测试和集成测试。Integration/
: 集成测试。Unit/
: 单元测试。
composer.json
: 项目的 Composer 配置文件。LICENSE
: 项目的许可证。README.md
: 项目的说明文档。
2. 项目的启动文件介绍
Laravel Ardent 的启动文件主要是 ArdentServiceProvider.php
,它位于 src/Ardent/
目录下。该文件负责注册 Ardent 的服务和绑定相关类到 Laravel 的服务容器中。
namespace LaravelArdent\Ardent;
use Illuminate\Support\ServiceProvider;
class ArdentServiceProvider extends ServiceProvider
{
public function boot()
{
$this->publishes([
__DIR__.'/../config/ardent.php' => config_path('ardent.php'),
]);
}
public function register()
{
$this->mergeConfigFrom(
__DIR__.'/../config/ardent.php', 'ardent'
);
}
}
boot()
方法用于发布配置文件到 Laravel 的配置目录。register()
方法用于合并默认配置文件到应用程序的配置中。
3. 项目的配置文件介绍
Laravel Ardent 的配置文件是 ardent.php
,位于 src/config/
目录下。该文件包含了 Ardent 的默认配置选项。
return [
'purge' => [
'attributes' => [],
],
'convertEmptyStringsToNull' => true,
'forceEntityHydrationFromInput' => false,
'autoHydrateEntityFromInput' => true,
'autoPurgeNonFillableAttributes' => true,
];
purge
: 定义需要清除的属性。convertEmptyStringsToNull
: 是否将空字符串转换为 null。forceEntityHydrationFromInput
: 是否强制从输入中填充实体。autoHydrateEntityFromInput
: 是否自动从输入中填充实体。autoPurgeNonFillableAttributes
: 是否自动清除不可填充的属性。
通过这些配置选项,可以灵活地调整 Ardent 的行为以适应不同的应用需求。