adelf/ventriloquist
8,062
1
| Install | |
|---|---|
composer require adelf/ventriloquist |
|
| Latest Version: | 2.0.0 |
| PHP: | >=7.1 |
| Laravel: | 7 |
| Older releases: | 5 |
| License: | MIT |
| Last Updated: | Aug 17, 2020 |
| Links: | GitHub · Packagist |
Maintainer: AmadeusDelfino
Ventriloquist
Suporte para fornecer uma interface única para consultas no banco de dados que utilizam ORMs com suporte a dotnotation (como o Eloquent)
Exemplo de uso
{
"values": [
{
"name": "name"
},
{
"name": "last_name"
},
{
"name": "salary"
},
{
"name": "email"
},
{
"name": "vacation",
"select": [
"id",
"start_date",
{
"name": "allowance",
"select": [
"id"
]
}
]
}
]
}
Como o Ventriloquist foi desenvolvido orientado a microserviços que utilizam mensageria (de forma reativa), eis um exemplo de utilização em JSON, considerando que o padrão de mensagens utilizado seja JSON.
Um array PHP que vai gerar um JSON dessa forma é o seguinte:
array (
0 =>
array (
'name' => 'name',
),
1 =>
array (
'name' => 'last_name',
),
2 =>
array (
'name' => 'salary',
),
3 =>
array (
'name' => 'email',
),
4 =>
array (
'name' => 'vacation',
'select' =>
array (
0 => 'id',
1 => 'start_date',
2 =>
array (
'name' => 'allowance',
'select' =>
array (
0 => 'id',
),
),
),
)
Implementação
$parser = new Generator();
$parser->query($arrayQuery);
$parser->rootModel(new \My\Root\Model());
$parsed = $parser->parse();
return $parsed->eloquentBuilder()->limit(10)->get();
Related Packages
doctrine/dbal
Powerful PHP database abstraction layer (DBAL) with many features for database s...
644,549,754
9,698
laravel/serializable-closure
Laravel Serializable Closure provides an easy and secure way to serialize closur...
423,477,751
607
nunomaduro/collision
Cli error handling for console/command-line PHP applications.
403,217,078
4,664
Version History
| Version | Released | PHP | Laravel | License |
|---|---|---|---|---|
| 2.0.0 | >=7.1 | ^7.5 | MIT | |
| 1.2.0 | >=7.1 | ^5.5 | MIT | |
| 1.1.1 | >=7.1 | >=5.5 | MIT | |
| 1.1.0 | >=7.1 | MIT | ||
| 1.0.3 | >=7.1 | MIT | ||
| 1.0.2 | >=7.1 | MIT | ||
| 1.0.1 | >=7.1 | MIT | ||
| 1.0.0 | >=7.1 | MIT |