Laravel Nova Translatable 项目教程
1. 项目的目录结构及介绍
nova-translatable/
├── src/
│ ├── Translatable.php
│ ├── TranslatableField.php
│ └── ...
├── tests/
│ ├── TranslatableFieldTest.php
│ └── ...
├── composer.json
├── package.json
├── webpack.mix.js
├── phpunit.xml.dist
├── README.md
├── LICENSE.md
└── ...
目录结构介绍
- src/: 包含项目的主要源代码文件,如
Translatable.php
和TranslatableField.php
,这些文件实现了将 Nova 字段翻译为多语言的功能。 - tests/: 包含项目的测试文件,如
TranslatableFieldTest.php
,用于确保代码的正确性和稳定性。 - composer.json: 项目的 Composer 配置文件,定义了项目的依赖关系。
- package.json: 项目的 npm 配置文件,定义了前端依赖关系。
- webpack.mix.js: 项目的 Webpack 配置文件,用于前端资源的管理和打包。
- phpunit.xml.dist: PHPUnit 的配置文件,用于定义测试环境。
- README.md: 项目的说明文档,包含了项目的概述、安装和使用方法。
- LICENSE.md: 项目的许可证文件,定义了项目的开源许可证。
2. 项目的启动文件介绍
项目的启动文件主要是 src/Translatable.php
和 src/TranslatableField.php
。
Translatable.php
这个文件定义了 Translatable
类,提供了将 Nova 字段翻译为多语言的核心功能。通过这个类,开发者可以在 Nova 资源中轻松地将字段设置为可翻译的。
TranslatableField.php
这个文件定义了 TranslatableField
类,扩展了 Nova 的字段类,使其支持多语言翻译。开发者可以通过这个类来创建可翻译的字段,并设置相应的语言选项。
3. 项目的配置文件介绍
composer.json
{
"name": "spatie/nova-translatable",
"description": "Making Nova fields translatable",
"license": "MIT",
"require": {
"php": "^7.2|^8.0",
"laravel/nova": "^3.0"
},
"autoload": {
"psr-4": {
"Spatie\\NovaTranslatable\\": "src/"
}
},
"extra": {
"laravel": {
"providers": [
"Spatie\\NovaTranslatable\\NovaTranslatableServiceProvider"
]
}
}
}
配置文件介绍
- name: 项目的名称。
- description: 项目的描述。
- license: 项目的许可证类型。
- require: 定义了项目的依赖关系,包括 PHP 版本和 Laravel Nova 版本。
- autoload: 定义了项目的自动加载规则,指定了
src/
目录下的类文件的命名空间。 - extra: 定义了 Laravel 相关的额外配置,如服务提供者的注册。
webpack.mix.js
const mix = require('laravel-mix');
mix.js('resources/js/app.js', 'public/js')
.sass('resources/sass/app.scss', 'public/css');
配置文件介绍
- mix.js: 定义了 JavaScript 文件的打包路径。
- mix.sass: 定义了 Sass 文件的打包路径。
通过这些配置文件,开发者可以轻松地管理项目的依赖关系和前端资源,确保项目的正常运行和开发。