oxygencms / oxy-nova
一套用于Laravel Nova的工具体和样板代码。
Requires
- php: >=7.3.0
- codezero/laravel-unique-translation: ^3.0
- ebess/advanced-nova-media-library: ^3.0
- laravel/nova: ^3.0
- mrmonat/nova-translatable: ^2.0
- spatie/laravel-medialibrary: ^9.0
- spatie/laravel-translatable: ^4.2
- dev-master
- v2.0
- v1.0.4
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0
- v0.5.1
- v0.5.0
- v0.4.1
- v0.4.0
- v0.3.6
- v0.3.5
- v0.3.4
- v0.3.3
- v0.3.2
- v0.3.1
- v0.3.0
- v0.2.4
- v0.2.3
- v0.2.2
- v0.2.1
- v0.2.0
- v0.1.9
- v0.1.8
- v0.1.7
- v0.1.6
- v0.1.5
- v0.1.4
- v0.1.3
- v0.1.2
- v0.1.1
- v0.1.0
- dev-dependabot/composer/guzzlehttp/psr7-1.9.1
- dev-dependabot/composer/symfony/http-kernel-5.4.20
This package is auto-updated.
Last update: 2024-09-20 00:16:53 UTC
README
安装
在您的 composer.json
中添加 "oxygencms/oxy-nova": "@dev"
来获取此包。
composer require oxygencms/oxy-nova
由于此包需要 spatie/laravel-medialibrary 来处理上传和媒体文件,请确保您已发布并运行了它的迁移。
php artisan vendor:publish --provider="Spatie\MediaLibrary\MediaLibraryServiceProvider" --tag="migrations"
默认情况下,文件转换将被排队。建议在您的 .env
文件中设置 QUEUE_CONNECTION=redis
。如果这样做,请确保也创建了 failed_jobs
表。然后像往常一样运行队列工作进程。
php artisan queue:failed-table
配置
发布 oxygen.php
配置文件。
php artisan vendor:publish --provider='Oxygencms\OxyNova\ServiceProvider' --tag=config
在 config/filesystem.php
文件中定义媒体库的 'media' 磁盘。
'media_disk' => [
'driver' => 'local',
'root' => storage_path('app/public/media'),
'url' => env('APP_URL').'/media',
'visibility' => 'public',
]
发布媒体库的配置。
php artisan vendor:publish --provider="Spatie\MediaLibrary\MediaLibraryServiceProvider" --tag=config
在 config/medialibrary.php
中设置默认的 disk_name
和 可选的 image_driver
'disk_name' => 'media',
'image_driver' => 'imagick'
翻译文件
使用 translations
标签发布每个配置语言环境的语言文件。(目前有 BG 和 NL)。
php artisan vendor:publish --provider='Oxygencms\OxyNova\ServiceProvider' --tag=translations
视图
可以使用 views
标签发布视图。
php artisan vendor:publish --provider='Oxygencms\OxyNova\ServiceProvider' --tag=views
迁移、种子和工厂
要发布此包的工厂,可以使用 factories
标签
php artisan vendor:publish --provider='Oxygencms\OxyNova\ServiceProvider' --tag=factories
要发布此包的迁移,可以使用 migrations
标签
php artisan vendor:publish --provider='Oxygencms\OxyNova\ServiceProvider' --tag=migrations
要发布此包的种子,可以使用 seeds
标签
php artisan vendor:publish --provider='Oxygencms\OxyNova\ServiceProvider' --tag=seeds
要一次性发布所有上述内容,可以使用 database
标签
php artisan vendor:publish --provider='Oxygencms\OxyNova\ServiceProvider' --tag=database
要将一些测试数据添加到包的实体中,请将 SEED_TEST_DATA=true
添加到 .env
文件中,并使用 php artisan migrate:fresh --seed
命令对数据库进行初始化。
控制台
有一个 artisan 命令,可以快速使用默认配置进行设置。
php artisan oxy-nova:setup
测试
要运行测试,请在项目的 phpunit.php
文件中包含一个 <testsuite>
标签,并将其指向测试目录。
<testsuite name="OxyNova">
<directory suffix="Test.php">./vendor/oxygencms/oxy-nova/tests</directory>
</testsuite>
功能
短语
短语是一种将翻译存储在数据库中的整洁方式,以便可以编辑。为了使用它们,我们需要在 config/app.php
中将默认的 TranslationServiceProvider
与 PhraseServiceProvider
交换。
// Illuminate\Translation\TranslationServiceProvider::class,
Oxygencms\OxyNova\Providers\PhraseServiceProvider::class,
短语缓存需要支持标签的缓存驱动器!predis/predis
已经在包的 composer 文件中要求,因此我们还需要配置 laravel 使用它。在 .env
文件中设置。
CACHE_DRIVER=redis
然后短语和翻译都可以通过标准的 Laravel 辅助函数 @lang()
、__()
、trans()
和 trans_choice()
访问。如果数据库中存在具有给定组/键的短语,则将返回并缓存它。如果不存在,则返回翻译文件中的内容。如果两者都存在,则 DB 中的内容将优先。
页面
使用页面可以更轻松地管理应用程序的内容和 SEO。如果页面在给定的语言环境中具有不同的 slug,则访问该 slug 将更改应用程序的语言环境。在页面上,通过按 setLocale
路由来更改应用程序的语言环境时,将重定向到所选语言环境中的页面 slug。页面可以通过 $page->sections(): HasMany
关系具有许多部分。在 $page->delete()
上,将软删除属于页面的所有部分,并在 $page->resotre()
上自动恢复。
页面部分
页面部分提供了一个简单的方法来向页面添加额外的内容。拥有页面的访问可以通过$pageSection->page(): BelongsTo
关系进行。当更新页面部分时,如果APP_ENV=production
,则名称将不再是可以编辑的字段,因为它可能在视图或控制器中使用,以访问给定页面的一部分。