Maison  >  Article  >  cadre php  >  Vue! Un composant génial qui accélère le développement de Laravel est désormais open source !

Vue! Un composant génial qui accélère le développement de Laravel est désormais open source !

藏色散人
藏色散人avant
2020-10-13 10:23:012053parcourir
Ce qui suit est introduit par

Laravel La colonne tutoriel présentera à tout le monde ! , j'espère que cela sera utile aux amis dans le besoin !

Vue! Un composant génial qui accélère le développement de Laravel est désormais open source !

Aujourd'hui, je recommande un composant spécial pour Laravel : Sight

Laravel peut être considéré comme le plus rapide en développement. Cependant, si vous ajoutez Sight maintenant, votre vitesse de développement sera encore plus rapide.
Que fait Sight ?
Sight implémente une couche Presenter côté serveur. Cela vous permet de convertir facilement les données récupérées du serveur en données affichables. Depuis l'introduction de Sight, Laravel est devenu le seul framework prenant en charge le modèle MVP côté serveur.
Pourquoi utiliser Sight ?
Premièrement, c'est pour accélérer le développement.
2. Les Phpers nationaux savent tous que les grands fabricants interdisent les jointures SQL de plus de trois tables. Si vous êtes débutant, vous interrogerez la base de données dans une boucle FOR. Si vous l’avez banni, il est possible qu’ils aient récupéré l’identifiant correspondant. Recherchez le résultat, puis imbriquez une boucle FOR dans la boucle FOR pour vérifier les données associées associées.
Sight fournit une très bonne fonction Pluck. Après avoir trouvé l'identifiant, demandez les données pertinentes et donnez-les à Sight, et Sight regroupera les données pour vous. Ce qu'il fait, c'est organiser les données en associant l'ID à la CLÉ. Cela améliore considérablement l’efficacité du programme.
3. L’utilisation de Sight est assez simple.
Par exemple, l'exemple suivant est presque similaire à l'utilisation de Model.

namespace App\Presenter

use Bardoqi\Sight\Presenter;
use Bardoqi\Sight\Traits\PresenterTrait;
use Bardoqi\Sight\Enums\MappingTypeEnum 
use Bardoqi\Sight\Enums\PaginateTypeEnum 
use App\Repositories\ArticleRepository;
use App\Repositories\UserRepository; 

class ArticlePresenter extents Presenter
{
   use PresenterTrait;

   public function getArticleList($where)
   {
       $articleArray = ArticleRepository::getList($where);
       $user_ids = $this->selectFields('id','title','created_at','created_by')
            ->fromLocal($articleArray,'articles')
            ->pluck('created_by');
       $users = UserRepository::getUsersWithIds($user_ids);
       $this->innerJoinForeign($users,'userss')
            ->onRelationByObject(Relation::of()
                ->localAlias('articles')
                ->localField('created_by')
                ->foreignAlias('users')
                ->foreighField('id')) 
            ->addFieldMappingByObject(FieldMapping::of()
                ->key('created_at')
                ->src('created_at')
                ->type(MappingTypeEnum::METHOD_NAME))
            ->addFieldMappingByObject(FieldMapping::of()
                ->key('created_by')
                ->src('user_name')
                ->type(MappingTypeEnum::JOIN_FIELD));         
       return $this->toPaginateArray(PaginateTypeEnum::PAGINATE_API);
   }
}

Dans l'exemple ci-dessus, le code convertit Created_at de int en time et convertit Create_by de l'identifiant d'utilisateur en nom d'utilisateur.

Nous voyons que : create_at utilise MappingTypeEnum::METHOD_NAME Où se trouve cette méthode ? Elle se trouve dans PresenterTrait. Par conséquent, vous pouvez également définir vos propres traits.
created_by lit directement le nom d'utilisateur dans le tableau associatif car MappingTypeEnum::JOIN_FIELD est utilisé.
Le code ci-dessus semble un peu long, mais onRelationByObject() peut utiliser la méthode de passage de paramètre onRelation() à la place, et le code sera plus court.
Semblable à addFieldMappingByObject(), utilisez plutôt addFieldMappingList() pour transmettre un tableau, et le code est plus court.

Sight est bien plus que cette fonctionnalité. Il prend non seulement en charge les données récupérées par MySQL, mais prend également en charge les données récupérées par ElasticSearch.

Bien qu'il s'agisse d'une opération de tableau pur, elle a aussi innerJoin et externalJoin, et il y a hasOne, hasMany...
Bien sûr, il y a plus de fonctions, vous devez lire attentivement la documentation.

Sight essaie de résoudre le problème de la conversion des données en données affichables une fois que vous les avez trouvées. Il fait du bon travail et peut vraiment vous rendre plus heureux de coder plus rapidement !

Adresse Github ; : https://github.com/BardoQi/Sight

Sight - le composant tueur qui accélère le développement de Laravel est désormais open source ! Dépêchez-vous FORK, Dépêchez-vous à STAR !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer