daynnnnn/statamic-database

该包已被废弃,不再维护。未建议替代包。
该包最新版本(v1.7.2)的许可证信息不可用。

允许您将所有Statamic数据存储在数据库中。

v1.7.2 2022-08-29 10:08 UTC

README

Statamic V3的高效驱动程序,支持以下功能:

  • 资产容器
  • 蓝图
  • 集合
  • 条目
  • 字段集
  • 表单/表单提交
  • 全局设置
  • 导航
  • 分类/术语

安装

从标准Statamic V3站点,您可以运行:composer require daynnnnn/statamic-database

添加配置文件:php artisan vendor:publish --tag="statamic-database-config"

运行迁移:php please migrate

然后在您的AppServiceProvider的register函数中添加

public function register()
{
    if (config('statamic.database.blueprints')) {
        $this->app->singleton(
            'Statamic\Fields\BlueprintRepository',
            'Daynnnnn\StatamicDatabase\Blueprints\BlueprintRepository'
        );
    }

    if (config('statamic.database.fieldsets')) {
        $this->app->singleton(
            'Statamic\Fields\FieldsetRepository',
            'Daynnnnn\StatamicDatabase\Fieldsets\FieldsetRepository'
        );
    }
}

然后就可以了!

自定义数据库中存储的数据

如果您想自定义数据库中存储的数据,可以通过修改配置文件来覆盖默认行为。

例如,如果您想将一些结构化数据作为yaml存储,以便可以轻松地将其插入版本控制中,您可以这样操作

return [
    'assets_containers' => true,
    'asset_metas' => true,
    'blueprints' => false, // Default true
    'collections' => false, // Default true
    'collection_trees' => true,
    'entries' => true,
    'fieldsets' => false, // Default true
    'forms' => false, // Default true
    'form_submissions' => true,
    'globals' => true,
    'navigation' => true,
    'navigation_trees' => true,
    'taxonomies' => true,
    'terms' => true,
];

这将确保蓝图、集合、字段集和表单存储在yaml文件中,但仍然将提交和条目存储在数据库中。

问题/待解决的问题

  • 没有测试。
  • 仍然需要添加用户角色/组。
  • 尚未进行实际测试,所以可能还需要添加更多。

鸣谢

感谢@statamicstatamic/eloquent-driver中创建条目部分,本项目的许多内容都是基于此开发的。