7ute / directavel
使用 Directus 作为 Laravel 的后台管理工具
Requires
- php: >=8.1
- laravel/framework: ^10.0
Requires (Dev)
- graham-campbell/testbench: ^6.0
- guzzlehttp/guzzle: ^7.7
- mockery/mockery: ^1.6
- orchestra/testbench: ^8.5
- pestphp/pest: ^2.6
- pestphp/pest-plugin-laravel: ^2.0
- phpunit/phpunit: ^10.2
This package is auto-updated.
Last update: 2024-09-12 11:05:28 UTC
README
Directavel 帮助使用 Directus 作为 Laravel 的管理后端。它提供了一些命令,可以编程定义和版本控制 Directus 集合,并同步它们而无需修改您的数据表。
安装
Directavel 需要 PHP 8.0+、Laravel 10.x+ 和 Directus 9.x+。要获取最新版本,只需使用 Composer 需求项目即可。
composer require 7ute/directavel
安装完成后,如果您没有使用自动包发现,则需要将 SevenUte\Directavel\DirectavelServiceProvider
服务提供者在您的 config/app.php
文件中注册。您还可以为外观指定别名
'Directavel' => SevenUte\Directavel\Facades\Directavel::class,
Directus 必须安装并引导,并且迁移必须已经运行。您可以通过在 directus 项目目录中 运行以下命令来引导它
npx directus bootstrap npx directus database migrate:latest
配置
为了自定义 directus 配置,您首先必须发布配置。
$ php artisan vendor:publish
这将在您的应用中创建一个 config/directavel.php
文件,您可以根据需要修改它来设置配置。请确保检查此包中原始配置文件在版本之间的更改。
集合
每个集合都由一个名为我们想要配置的表的 PHP 文件定义。集合位于 directavel.collections_path_pattern
配置条目中设置的路径。
配置文件如下所示
// database/directus/collections/some_table.php /** * That file will help generating a `some_table` * entry in the `directus_collections` table * with only the collection column filled. **/ return [ /** The other columns of this `directus_collection` entry. */ 'attributes' => [], /** Each field will be its own row in the `directus_fields` table */ 'fields' => [], /** * The relationships that are not set in the fields * can be defined here. They will be inserted at * the end of the `directus_relations` table. **/ 'relations' => [], ]
要查看示例,请查看此包中的 sample.php 文件。您还可以参考 DirectusFields 模型以获取可用字段列表以及一些为您的 IDE 提供的类型,以及 DirectusCollections 和 DirectusRelations 以获取可用列。
预设
一般预设可以在 directavel.presets_path
配置条目中设置的路径的文件中定义。此项目的 presets.php 文件中包含了对 directus_activity
、directus_presets
和 directus_users
视图的默认配置。
使用方法
一旦配置了集合,您就可以在迁移中使用外观,或者使用命令触发 Directus 集合/字段的全量刷新,而不会触及您的非 Directus 数据表。
警告 根据您在配置文件中的设置,您可能需要删除现有的活动集合、字段、预设、关系和修订。
命令
php artisan directavel:sync
:更新管理员用户、设置和预设,并同步集合和字段php artisan directavel:cache:clear
:清除 Directus 内部缓存
外观
use SevenUte\Directavel\Facades\Directavel; Directavel::updateProjectAdmin() ->updateProjectPresets() ->updateThemeCss() ->synchronizeDatabase() ->clearCache();
updateProjectAdmin
:更新 Directus 管理员用户updateProjectLog
:更新 Directus 徽标updateProjectPresets
:从在directus.presets_path
配置中定义的文件中重新加载非用户预设updateThemeCss
:应用主题颜色和额外 CSS同步数据库
:将集合、字段和关系加载到Directus表中,在之前设置在directus.wipe
配置中的内容将被清除;清除缓存
:清除Directus集合缓存,以防止出现“不存在的字段”错误;加载Tailwind主题颜色
:重新加载Tailwind主题颜色;加载当前管理员ID
:重新加载Directus管理员用户ID。
测试
此包使用Pest进行测试。要运行测试,请使用composer tests
。
贡献
欢迎提交拉取请求。带有测试的拉取请求更是受欢迎。
安全
如果您在此包中发现安全漏洞,请向Julien Cauvin发送电子邮件至contact@7ute.fr。所有安全漏洞都将得到及时处理。
许可证
Directavel遵循MIT许可证(MIT)。