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.
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.
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!