Laravel シリーズ入門チュートリアル (1) の 2016 年版を参照してください。ここに一段落があります:
Eloquent は Laravel の ORM であり、間違いなく Laravel システムの中で最も強力な場所です。元の Laravel 作者が最初のバージョンを開発していたとき、Eloquent を思いつくのに 3 分の 1 の時間がかかりました。もちろん、「このスキルを練習したい場合は、まず宮殿に行かなければなりません。」 Eloquent は Laravel で最も遅い場所でもあり、今のところ解決できません。 (ルーティング、自動読み込み、分散した構成、ビューによって引き起こされるパフォーマンスの問題は、キャッシュによってほぼ完全に解決されます)
これは本当ですか? Eloquent ORMを除いて、キャッシュ(redisなど)を使用するとLaravelのパフォーマンスの問題を解決できますか?
Eloquent ORM の代わりに DB ファサードを使用する場合、モデルを作成する必要はありませんか?つまりMVCがVCになったということでしょうか?
Laravel シリーズ入門チュートリアル (1) の 2016 年版を参照してください。ここに一段落があります:
Eloquent は Laravel の ORM であり、間違いなく Laravel システムの中で最も強力な場所です。元の Laravel 作者が最初のバージョンを開発していたとき、Eloquent を思いつくのに 3 分の 1 の時間がかかりました。もちろん、「このスキルを練習したい場合は、まず宮殿に行かなければなりません。」Eloquent は Laravel で最も遅い場所でもあり、今のところ解決できません。 (ルーティング、自動読み込み、分散した構成、ビューによって引き起こされるパフォーマンスの問題は、キャッシュによってほぼ完全に解決されます)
これは本当ですか? Eloquent ORMを除いて、キャッシュ(redisなど)を使用するとLaravelのパフォーマンスの問題を解決できますか?
Eloquent ORM の代わりに DB ファサードを使用する場合、モデルを作成する必要はありませんか?つまりMVCがVCになったということでしょうか?
まず第一に、Laravel
の多くのドキュメントは、上記の段落、Eloquent
の 、およびその他の <code>PHP フレームワーク ORM
はすべて同様のフレーバーを持っていますが、特に素晴らしい点はありません。さらに、ORM
の開発にはかなりの時間がかかります。主な理由は、ORM
のロジックが他のコンポーネントよりもはるかに複雑であるためですが、どのくらいの時間がかかるかはわかりません。移動には時間がかかります...Laravel
的很多文档都喜欢过度扩张,例如上面这段,Eloquent
和其他PHP
框架中的ORM
都是相似的味道,没有什么特别牛的地方。另外开发ORM
确实花时间不少,主要是因为ORM
中逻辑相对其他组件复杂很多,但你不能说花时间多久感天动地吧……
其次,ORM
不等于Model
,没有ORM
一样可以做Model
,例如我的框架Beaver
(https://github.com/funcuter/beaver)中是设计了Model
的,但至今没上ORM
(如上面说的,ORM
好用,但是性能差,我性能差的东西比较反感)。我设计中是Model
直接操作DB
,绕过ORM
次に、ORM
は Model
と等しくありません。ORM
がなくても Model
を作成できます。 code> の場合、たとえば、私のフレームワーク Beaver
(https://github.com/funcuter/beaver) は Model
を設計しましたが、まだ には組み込まれていません。 >ORM
(前述したように、ORM
は使いやすいですが、パフォーマンスが悪いです。パフォーマンスが悪いものは嫌いです)。私の設計では、Model
は ORM
層をバイパスして DB
を直接操作しますが、通常の操作は引き続き実現できます。
Model は、分割した SQL クエリのモジュールのセットに似ています。したがって、このように理解すると、初期の頃、SQL ステートメントがページに直接記述されていたのと同じように、実際には M を使用するかどうかはユーザーの選択になります。パフォーマンスをそれほど重視する場合は、前述のように DB を直接使用してネイティブ SQL を実行することもできます。
それは Laravel の設計思想を改善するものではなく、それは単に PHP が実際に設計パターンを使用できることを証明するためのものです。実際、デザインパターンに関しては、zf の方が強いです
技術的な問題について議論するためです。