omgitslock/relation-parser

There is no license information available for the latest version (v0.1.0) of this package.

Парсер отношений eloquent моделей для Laravel 5.5 и выше

v0.1.0 2018-12-01 18:45 UTC

This package is auto-updated.

Last update: 2024-05-10 04:10:05 UTC


README

Парсер отношений для Eloquent моделей

О пакете

Пакет создан исключительно в показательных целях. Язык использован русский умышленно. Автор не рекомендует использовать данный пакет в проде.

Вступление

Relation Parser предоставляет вам удобный способ для получения информации по отношениям в ваших Eloquent моделях.

Вы можете использовать это для решения конфликтов при сохранении нескольких взаимозависимых сущностей.

Установка

Для установки используйте

composer require omgitslock/relation-parser

Пример использования

Предположим мы имеем модель Post

use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    public function comments()
    {
        return $this->hasMany('App\Comment');
    }

    public function user()
    {
        return $this->belongsTo('App\User');
    }
}

Тогда где-то в нашем приложении мы можем использовать

use Omgitslock\RelationParser\Parser;

$parser = new Parser();

$relationBag = $parser->parse(new Post); //instanceof Omgitslock\RelationParser\Entities\RelationBag

$relationBag->getRelationNamesList(); //return ['user', 'comments'];

Также RelationBag содержит в себе массив Relation, которые содержат метаинформацию по каждому отношению

$relations = $relationBag->getRelations();

//получим имя и вид каждого отношения
foreach($relations as $relation){
    echo 'Метод ' . $relation->getMethod(). ', тип ' . $relation->getType() . PHP_EOL;
}

Тогда результатом будет что-то подобное

Метод user, тип HasMany
Метод comments, тип BelongsTo