Skip to content

Omgitslock/relation-parser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Relation Parser

ΠŸΠ°Ρ€ΡΠ΅Ρ€ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ для 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

About

Relation Parser for Eloquent Models

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages