Laravelでの車両画像、HTTPクライアントで解決し、Cacheファサードでキャッシュし、Bladeコンポーネントでレンダリングします。

Laravelには必要な三つの要素がすでに揃っています: HTTPクライアント、キャッシュ、キュー。サービスクラスで車両を解決し、URLを記憶して、Bladeコンポーネントを通じてレンダリングします。アプリケーションの他の部分は気にする必要はありません。

LP laravel: hero1
LP laravel: hero2
LP laravel: s1

デフォルトでキャッシュされた一つのサービスクラス

サービスにラップし、Cache::rememberをその周りに置き、コンテナにバインドします。その時点で、コードベースの残りの部分はメソッドを呼び出し、APIが関与しているかどうかを知らずにURLを受け取ります。

  • 設定とキーはconfigと.envにあります
  • Cache::rememberはAPI呼び出しを稀にします
  • Http::fakeでテストが簡単に偽装できます

Laravel版の統合

サービス、キャッシュ呼び出し、Bladeコンポーネント、そしてバックグラウンド処理のキュージョブ。すべてが退屈なバージョンです。

01
設定とキーを追加

.envからのキーを含む設定ファイルで、機密情報がバージョン管理に達しないようにします。

02
サービスを作成します。

HTTPクライアントがVINまたは仕様でAPIを呼び出し、メソッドがビューに必要なURLを返します。

03
結果をキャッシュ

車両識別子から構築されたキーを使用したCache::remember。リストはキャッシュから完全にレンダリングされます。

04
バッチ処理をキューに入れる

完全なカタログパスの場合、車両ごとにジョブをディスパッチして、インポートがバックグラウンドで実行され、再試行できるようにします。

LP laravel: s2

Bladeコンポーネントはビューから外します

単一のx-vehicle-imageコンポーネントは車両と幅を取得し、アプリケーション内のすべてのビューがそれを使用します。角度やフォーマットが後で変更された場合、1つのファイルを編集します。

  • リスト、詳細ページ、PDF用の一つのコンポーネント
  • プロップとしての幅、各ビューがレンダリングするものをリクエストします
  • テーマ付きレイアウトの透明なバリアント

Laravelでの車両画像、実践編

Laravelアプリケーションは通常、インポートスクリプトを通じて車両画像に到達します。誰かが、写真をストレージにダウンロードするコマンドを書き、その後、アプリケーションは車両の画像が満載のファイルシステム、それを最新に保つキュー、モデルイヤーが欠けているたびにバグ報告を抱えることになります。

オンデマンドで解決することで、ストレージ層を完全に削除します。既に持っている車両識別子が画像になり、キャッシュがコストを抑え、Bladeコンポーネントがそれを見えなくします。以前は独自の失敗モードを持つインポートパイプラインだったものが、文字列を返すメソッド呼び出しに変わります。

Laravelチームが尋ねること

Laravelパッケージはありますか?

専用のものではありません。APIは単純なRESTエンドポイントで、HTTPクライアントとサービスクラスを使う方が、パッケージの設定よりもコードが少ないことが多いです。

検索をどうやってキャッシュしますか?

VINまたは仕様から構築されたキーを使用したCache::remember。長いTTLが問題ありません、なぜなら答えはカタログが変更されるまで変わらないからです。

画像をファイルシステムに保存すべきですか?

必要ありません。URLはCDNを指していますので、ストレージ、バックアップ、ディスク使用量はそのままで大丈夫です。

APIを呼び出すコードをどうやってテストしますか?

テストケースでHttp::fakeを使用します。サービスがURLを返すため、ほとんどのテストは戻り値の形状をアサートするだけで済みます。

完全なカタログのインポートはどうですか?

車両ごとにキュージョブをディスパッチします。失敗したジョブは自動的に再試行され、インポートはリクエストサイクルから外れます。

LivewireやInertiaと連携しますか?

はい。どちらもサーバーから通常の文字列としてURLを受け取るため、統合に関しては何も変わりません。

ローカルブランチで試してみてください

車両がスキーマにどのように保存されているか、画像がどのようにレンダリングされるかを教えてください。URLとサービスの概要を返します。

  • リストビューと詳細ビューのサイズ変更バリアント
  • トラフィックに合わせたキャッシュパターン
  • トライアルは完全な統合ブランチをカバーします
ありがとうございます。メッセージを受け取りましたので、設定に合わせた画像のURLをお返しします。
問題が発生しました。もう一度お試しいただくか、info@vehicleimagery.com までご連絡ください。

サービスクラスに追加します

データベースからいくつかのVINや仕様、ビューのレンダリング幅を送信してください。今日中にテスト用のURLを取得できます。

通常、同じ営業日中