Laravel-Mediable 项目教程
1、项目的目录结构及介绍
Laravel-Mediable 项目的目录结构如下:
laravel-mediable/
├── config/
│ └── mediable.php
├── database/
│ └── migrations/
├── src/
│ ├── Commands/
│ ├── Exceptions/
│ ├── Media/
│ ├── MediaUploader.php
│ ├── Mediable.php
│ ├── MediableServiceProvider.php
│ ├── MediaUploaderFacade.php
│ └── Support/
├── tests/
├── .editorconfig
├── .gitignore
├── .readthedocs.yml
├── CHANGELOG.md
├── CONTRIBUTING.md
├── LICENSE.md
├── README.md
├── UPGRADING.md
├── composer.json
├── infection.json.dist
├── phpstan.neon
└── phpunit.xml
目录介绍
config/
: 包含项目的配置文件。database/migrations/
: 包含数据库迁移文件。src/
: 包含项目的源代码,包括命令、异常处理、媒体处理、服务提供者等。tests/
: 包含项目的测试文件。.editorconfig
,.gitignore
,.readthedocs.yml
: 项目配置文件。CHANGELOG.md
,CONTRIBUTING.md
,LICENSE.md
,README.md
,UPGRADING.md
: 项目文档文件。composer.json
,infection.json.dist
,phpstan.neon
,phpunit.xml
: 项目依赖和配置文件。
2、项目的启动文件介绍
Laravel-Mediable 项目的启动文件主要包括:
src/MediableServiceProvider.php
: 服务提供者文件,用于注册和启动项目的服务。src/MediaUploaderFacade.php
: 门面文件,提供对媒体上传器的访问。
服务提供者
MediableServiceProvider.php
文件负责注册和启动项目的服务,包括配置文件的发布和数据库迁移的运行。
门面
MediaUploaderFacade.php
文件提供了一个门面,用于简化对媒体上传器的访问。
3、项目的配置文件介绍
Laravel-Mediable 项目的主要配置文件是 config/mediable.php
。
配置文件内容
mediable.php
文件包含了项目的各种配置选项,例如上传目录、MIME 类型限制、聚合类型等。
return [
'disk' => 'public',
'allowed_disks' => ['public'],
'strict_types' => false,
'aggregate_types' => [
'image' => [
'image/jpeg',
'image/png',
'image/gif',
],
// 其他聚合类型
],
'max_size' => 1024 * 1024,
'unique_filename' => true,
'strict_extension' => false,
'strict_mime' => false,
'allow_unrecognized_types' => false,
'allowed_extensions' => [],
'allowed_mime_types' => [],
'model' => Plank\Mediable\Media::class,
'default_tag' => 'default',
'unattached_media_expiration_days' => 1,
'allow_unattached' => true,
];
配置项介绍
disk
: 默认的文件系统磁盘。allowed_disks
: 允许的文件系统磁盘列表。strict_types
: 是否严格限制文件类型。aggregate_types
: 聚合类型配置。max_size
: 文件最大大小。unique_filename
: 是否生成唯一的文件名。strict_extension
: 是否严格限制文件扩展名。strict_mime
: 是否严格限制 MIME 类型。allow_unrecognized_types
: 是否允许未识别的文件类型。allowed_extensions
: 允许的文件扩展名列表。allowed_mime_types
: 允许的 MIME 类型列表。model
: 媒体模型类。default_tag
: 默认标签。unattached_media_expiration_days
: 未附加媒体的有效期天数