okipa / laravel-model-json-storage
此包已被弃用且不再维护。未建议替代包。
将模型存储在json文件中而不是数据库中(单行或多行记录)可能是一个不错的选择。此包可以节省您创建大量行表的麻烦,提高数据恢复性能,并允许您像在数据库中一样从json文件中存储和访问模型。
1.0.4
2018-05-30 12:14 UTC
Requires
- php: >=7.0
- illuminate/support: ~5.0
Requires (Dev)
- orchestra/testbench: ^3.6
README
⚠️ 此包已被弃用 ⚠️
如果您想让它发展并维护它,请随时与我联系。
将模型存储在json文件中而不是数据库中(单行或多行记录)可能是一个不错的选择。
此包可以节省您创建大量行表的麻烦,提高数据恢复性能,并允许您像在数据库中一样从json文件中存储和访问模型。
使用前阅读
请注意,
- 此包的目的是将您的模型实例存储在json中。
- 因此,当您访问数据时,json文件总是完全读取的
- 因此,如果您有很多实例要存储,请不要使用此包,它可能会引起性能问题而不是提高性能。
- 所有与查询相关的和与模型相关的功能均不可用(尤其是那些使用数据库的),此包是为相当简单的用例制作的。
- 此包允许您像在数据库中存储一样操作模型,但它在幕后始终使用Illuminate\Support\Collection方法。
安装
- 使用composer安装此包
composer require okipa/laravel-model-json-storage
- Laravel 5.5+使用包自动发现,因此不需要您手动添加ServiceProvider。如果您不使用自动发现或使用Laravel 5.0-版本,请在您的
app/Providers/AppServiceProvider.php
中的register()
方法中添加包服务提供者。
// laravel model json storage // https://github.com/Okipa/laravel-model-json-storage $this->app->register(Okipa\LaravelModelJsonStorage\ModelJsonStorageServiceProvider::class);
用法
首先,将ModelJsonStorage
特质添加到您的模型中。
class MyTestModel extends Illuminate\Database\Eloquent\Model { use Okipa\LaravelModelJsonStorage\ModelJsonStorage; [...] }
然后,只需像平常一样操作您的模型即可。
存储后,您将在model-json-storage
配置文件中定义的路径下看到一个名为您模型标题的json文件。
$testModel = app(MyTestModel::class)->create([ 'name' => 'John Doe', 'email' => 'john@doe.com', 'password' => Hash::make('secret'), ]);
$testModel = app(MyTestModel::class)->all();
$testModel = app(MyTestModel::class)->where('email', 'john@doe.com')->first();
$testModel->update([ 'name' => 'Gary Cook' ]);
$testModel->delete();
自定义配置
要个性化包配置,您必须首先使用以下脚本发布它
php artisan vendor:publish --tag=model-json-storage::config
然后,打开已发布的包配置文件(config/model-json-storage.php
),并通过为以下项设置自己的值来覆盖默认配置
- json存储路径
- ... 就这些了。
API
已覆盖最常用的与查询相关的和与模型相关的方法,以便您可以使用通常方式使用存储在json中的模型。
检索以下可用的方法列表。
然而,如果您想为个人需求添加方法,请不要犹豫,通过PR改进这个包。
可用的 Illuminate\Database\Eloquent\Model 方法
可用的 Illuminate\Database\Query\Builder 方法
- get()
- Select()
- addSelect()
- where()
- whereNull()
- whereNotNull()
- orderBy()
- orderByDesc()
- whereIn()
- whereNotIn()
- find()
- findOrFail()
- paginate()
- value()
- pluck()
- count()
- min()
- max()
- avg()