松露 , 经过 你是主人。 是一个 Laravel 扩展包,它允许 Eloquent 模型使用内存中的 SQLite 数据库,而不是主数据库。这种方法适用于处理静态数据和引用表(例如国家/地区、货币或角色),您可以利用 Eloquent 查询这些数据,而无需进行数据库迁移或在主数据库中存储数据。
通过使用
Truffle
特性允许您直接在模型中定义数据,或从外部文件加载数据,同时仍然可以使用 Eloquent 的查询构建器、关系和属性。
定义内存记录
使用 Truffle 的最简单方法是定义一个
$records
数组直接存储在模型中。Truffle 会创建一个临时 SQLite 表,并在首次访问模型时填充该表:
使用
你\松露\松露
;使用
照亮\数据库\雄辩\模型
;班级
国家
延伸
模型{
使用
松露
;
受保护
记录
=
[[
'ID'
=>
1
,
'姓名'
=>
'美国'
,
'代码'
=>
'我们'
],[
'ID'
=>
2
,
'姓名'
=>
'加拿大'
,
'代码'
=>
'那'
],[
'ID'
=>
3
,
'姓名'
=>
'英国'
,
'代码'
=>
“GB”
],[
'ID'
=>
4
,
'姓名'
=>
“牙买加”
,
'代码'
=>
'JM'
],[
'ID'
=>
5
,
'姓名'
=>
'希腊'
,
'代码'
=>
'GR'
],];}
然后,您可以像查询任何其他 Eloquent 模型一样查询此模型:
北美
=
国家
::
其中
(
'代码'
,[
'我们'
,
'JM'
])
->
得到
();
从文件中加载数据
随着数据集的增长,Truffle 支持将这些记录移动到 CSV、JSON 或 XML 文件中。您可以使用以下方式指定文件路径:
$truffleFile
财产:
班级
国家
延伸
模型{
使用
松露
;
受保护
$truffleFile
=
__你__
。
'/data/countries.csv'
;}
这样既可以保持数据与模型逻辑的分离,又能对其进行版本控制。
显式模式定义
虽然 Truffle 通常可以推断列类型,但您可以使用以下方式显式定义模式:
DataType
使用枚举来确保数据库完整性和参考数据的正确类型转换:
使用
你\松露\枚举\数据类型
;班级
国家
延伸
模型{
使用
松露
;
受保护
$schema
=
[
'ID'
=>
数据类型
::
ID
,
'姓名'
=>
数据类型
::
细绳
,
'代码'
=>
数据类型
::
细绳
,
'积极的'
=>
数据类型
::
布尔值
,];}
性能和缓存
Truffle 包含缓存功能,有助于提升请求性能。启用此功能后,即可启用缓存。
$truffleCache
该软件包会缓存生成的 SQLite 表结构和数据:
受保护
$truffleCache
=
真的
;受保护
$truffleCacheTtl
=
3600
;
// 1 小时
此外,如果您希望将“内存中”的数据库持久化到特定文件而不是使用内存,您可以定义一个
$truffleSqliteFile
。
安装
您可以通过 Composer 安装该软件包:
作曲家
要求
你/松露
将特性添加到模型后,该软件包即可直接使用。它需要 PHP 7.4 或更高版本,并支持 Laravel 5.5 及更高版本。
您可以访问以下网址了解更多关于此软件包的信息、获取完整的安装说明并查看源代码: GitHub 。







