# laravel チュートリアル列によって以下が紹介されています! , 困っている友達のお役に立てれば幸いです!
今日は、Laravel 固有のコンポーネントをお勧めします: Sight
Laravel の開発速度は最速と言えます。ただし、ここで Sight を追加すると、開発スピードがさらに速くなります。
Sight は何をしましたか?
Sight はサーバー側にプレゼンター層を実装しました。これにより、サーバーから取得したデータを表示可能なデータに簡単に変換できます。 Sightの導入以来、LaravelはサーバーサイドのMVPモデルをサポートする唯一のフレームワークになりました。
Sight を使用する理由?
まず、開発をスピードアップするためです。
2. 国内の Phpers は皆、大手メーカーが 3 つ以上のテーブルの SQL 結合を禁止していることを知っています。初心者の場合は、FOR ループでデータベースにクエリを実行します。禁止した場合、関連IDを抜き取った可能性があります。結果を確認し、FOR ループ内に FOR ループをネストして、関連する関連データを確認します。
Sight は非常に優れた Pluck 機能を提供しており、ID を見つけた後、関連するデータをリクエストして Sight に渡すと、Sight がデータを結合してくれます。 ID と KEY を関連付けてデータを整理します。これにより、プログラムの効率が大幅に向上します。
3. Sight の使用は非常に簡単です。
たとえば、次の例は 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); } }
上の例では、コードは created_at を int から time に変換し、created_by をユーザー ID からユーザー名に変換します。
created_at は MappingTypeEnum::METHOD_NAME を使用していることがわかります。このメソッドはどこにありますか? PresenterTrait にあります。したがって、独自の特性を定義することもできます。
created_by は、MappingTypeEnum::JOIN_FIELD が使用されているため、連想配列内の user_name を直接読み取ります。
上記のコードは少し長いように見えますが、onRelationByObject() は代わりに onRelation() パラメータ渡しメソッドを使用できるため、コードは短くなります。
addFieldMappingByObject() と同じですが、代わりに addFieldMappingList() を使用して配列を渡します。コードは短くなります。
Sight は単なるこの機能ではなく、MySQL によって取得されるデータだけでなく、ElasticSearch によって取得されるデータもサポートします。
これは純粋な配列操作ですが、innerJoin と externalJoin もあり、hasOne、hasMany...
もちろん、他にも関数があります。ドキュメントを注意深く読む必要があります。
Sight は、データを見つけた後、そのデータを表示可能なデータに変換するという問題を解決しようとします。これはうまく機能し、コーディングをより楽しく、より迅速にコーディングできるようになります。
Github アドレス: https://github.com/BardoQi/Sight
Sight - Laravel 開発をスピードアップするキラーコンポーネントがオープンソースになりました。急いでFORK、急いでSTAR!
以上が視力! Laravel 開発をスピードアップするキラーコンポーネントがオープンソースになりました。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。