Heim  >  Artikel  >  PHP-Framework  >  Sicht! Eine Killerkomponente, die die Laravel-Entwicklung beschleunigt, ist jetzt Open Source!

Sicht! Eine Killerkomponente, die die Laravel-Entwicklung beschleunigt, ist jetzt Open Source!

藏色散人
藏色散人nach vorne
2020-10-13 10:23:012114Durchsuche

Heute empfehle ich eine Laravel-spezifische Komponente: SightLaravel kann als die am schnellsten entwickelte Komponente angesehen werden. Wenn Sie jedoch jetzt Sight hinzufügen, wird Ihre Entwicklungsgeschwindigkeit noch schneller.

Was hat Sight getan?

Sight hat eine Presenter-Ebene auf der Serverseite implementiert. Dadurch können Sie die vom Server abgerufenen Daten einfach in anzeigbare Daten umwandeln. Seit der Einführung von Sight ist Laravel das einzige Framework, das das MVP-Modell der Serverseite unterstützt. Sicht! Eine Killerkomponente, die die Laravel-Entwicklung beschleunigt, ist jetzt Open Source!Warum Sight verwenden?

Erstens beschleunigt es die Entwicklung.

2. Inländische PHPer wissen alle, dass große Hersteller SQL-Verbindungstabellen mit mehr als drei Tabellen verbieten. Wenn Sie ein Anfänger sind, fragen Sie die Datenbank in einer FOR-Schleife ab. Wenn Sie es verbieten, ist es auch möglich, dass sie den entsprechenden Ausweis herausziehen. Suchen Sie das Ergebnis und verschachteln Sie dann eine FOR-Schleife innerhalb der FOR-Schleife, um die zugehörigen zugehörigen Daten zu überprüfen.
Sight bietet eine sehr gute Pluck-Funktion. Nachdem Sie die ID gefunden haben, fordern Sie die relevanten Daten an und übergeben Sie sie an Sight, und Sight wird die Daten für Sie zusammenfügen. Es organisiert die Daten, indem es die ID mit dem SCHLÜSSEL verknüpft. Dadurch wird die Programmeffizienz erheblich verbessert.
3. Die Verwendung von Sight ist recht einfach.
Zum Beispiel ähnelt das folgende Beispiel fast der Verwendung von 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);
   }
}

Im obigen Beispiel konvertiert der Code „created_at“ von „int“ in „time“ und „created_by“ von der Benutzer-ID in den Benutzernamen.
Wir sehen, dass „created_at“ MappingTypeEnum::METHOD_NAME verwendet. Wo ist diese Methode in PresenterTrait? Daher können Sie auch Ihre eigenen Eigenschaften definieren.
created_by liest den Benutzernamen direkt im assoziativen Array, da MappingTypeEnum::JOIN_FIELD verwendet wird.
Der obige Code scheint etwas lang zu sein, aber onRelationByObject() kann geändert werden, um die Parameterübergabemethode onRelation() zu verwenden, und der Code wird kürzer.
Verwenden Sie ähnlich wie addFieldMappingByObject() stattdessen addFieldMappingList(), um ein Array zu übergeben, und der Code ist kürzer.

Sight ist weit mehr als nur diese Funktion. Es unterstützt nicht nur die von MySQL abgerufenen Daten, sondern auch die von ElasticSearch abgerufenen Daten.
Obwohl es sich um eine reine Array-Operation handelt, verfügt sie auch über innerJoin und OuterJoin sowie hasOne, hasMany ...
Natürlich gibt es noch mehr Funktionen, Sie müssen die Dokumentation sorgfältig lesen.

Sight versucht, das Problem der Konvertierung von Daten in anzeigbare Daten zu lösen, nachdem Sie sie gefunden haben. Es macht einen guten Job und kann Sie beim Codieren wirklich glücklicher machen.

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

Sight – die Killerkomponente, die die Laravel-Entwicklung beschleunigt, ist jetzt Open Source! Beeil dich, GABEL, beeil dich, STERN!

Das obige ist der detaillierte Inhalt vonSicht! Eine Killerkomponente, die die Laravel-Entwicklung beschleunigt, ist jetzt Open Source!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:learnku.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen