0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

LaravelでオープンソースのECパッケージを作成してみよう

Posted at

はじめに

普段はECCUBEでECサイトを主に作成しています。
と言っても私は普段プログラムは書かないですが。
ロートルなんで、Laravel分かりません。触った事ないです。
ただ、filamentphpみてると、結構簡単にできそう!!
ECパッケージ作ってみるかって成りました。
開発日記として、書いていくようにします。

とりあえずの目標

  • スケーラブル
    ・100万商品、100万会員、100万受注でも普通に動いてほしい
    → N+1問題の解決(ECCUBEは結構起こしてるよね)
     ・ECCUBEでも出来るのですが、簡単に水平スケールできるように
  • 多言語、多通貨対応
  • レイアウト管理
  • バリエーション管理
    ECCUBEの規格管理は少し使いにくくないかな
  • カスタマイズが簡単
    ECCUBEはSymfonyを使っているのですが、Doctrine面倒
  • 出来れば
    ・多店舗管理もしたいなあ

FilamentPHP について

Laravel 用の 管理画面(Admin Panel)構築フレームワーク。
開発者が CRUD(作成・閲覧・更新・削除)操作を簡単に作れる。
ちょっと触ってみたけど、すげーなあ。簡単な事はサクサク。
難しいことは知らん。
Livewire をベースにしているため、リアルタイム UI の構築が簡単。
TailwindCSS による レスポンシブでモダンなデザイン を標準提供。
ってことらしい。

Livewire について

Livewire は Laravel 向けのフルスタックフレームワークで、JavaScript をほとんど書かずに動的なインタラクティブUIを構築できるライブラリらしい。

要はPHP開発者が普段している事ベースで、フロントにデータを送れてしまう。らくちん。

こんな感じ

[ブラウザリクエスト]
  |
  v
[Laravel PHP サーバー]
  |
  |-- 1. Eloquent で Blog + Comments + User 取得 (1000件)
  |
  |-- 2. Blade で HTML レンダリング (1000行)
  |
[生成 HTML を JSON に変換]
  |
  v
[ブラウザ: Livewire JS]
  |
  |-- 3. DOM 差分計算
  |
  v
[ブラウザ画面更新: 1000件テーブル表示]

比較表はこんな感じ
重いらしい。
でも簡単。なのでOK。

項目 Livewire Vue SPA
サーバー負荷 高い(HTMLレンダリング) 低い(JSON生成のみ)
通信量 大きい(HTML含む JSON) 小さい(データのみ)
ブラウザ負荷 DOM差分計算が重い 仮想DOMで効率的
操作レスポンス 遅くなる可能性あり 高速
実装コスト 低(Bladeで簡単) やや高(API + Vueコンポーネント)
大規模データ向き △ 1000件以上は要工夫 ◎ 数万件でも工夫可能(Virtual Scroll等)
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?