背景
私がウェブ開発に携わっている間ずっと、どういうわけか、おそらく、ほとんどの場合、フリーランスの取引所、つまりオンラインストアで注文の最も一般的なバージョンを書く必要はありませんでした。 そのような必要性は、実際には、フリーランスの離脱によってのみ生じました。 どのエンジンを選ぶべきかという永遠の疑問がありました。 かなり長い間、ネットワークはひどく、このテーマに関するさまざまなコメント、レビュー、比較を満たし、最終的には吐き出され、かなり人気のあるものの1つを取りましたが、より有名で洗練された競合他社のためにしばしば気づかれませんでしたが、ソリューションはOpenCartです。 彼はそれを取り、後悔しませんでした。 通常、私は消費者に優しいさまざまなCMSを本当に好きではなく、消化しませんが、OpenCartは例外であることが判明しました。 私の説明が専門家にとって非常に役立つとは思わない-ミニ分析は、何を書くかを同じ方法で決定しようとしている人、またはまだ試したことがない人にとってより可能性が高い。
物語
それで、私は最初に私がエンジンについて最も好きだったことについてお話します。
1.最大かつ大胆なプラス:MVCの適切で健全な実装。 Wordpress、Joomla、Drupalにはそのような原則はありません。 私はさらに嘘をつくことを恐れていますが(もし正しいなら)、しかし、私の意見ではMagentoとPrestashopでさえありません。 はい、はい、今、彼らは私に投げるでしょう、彼らは言う、ヤギのボタンのアコーディオンのために。 必要な、同志。 テンプレート、コントローラー、およびデータを操作するロジックを分離するための適切なシステムは、成功の鍵であり、プロジェクトおよび一般に機能を構築する便利さです。 ことわざにあるように、猫が嫌いなら、どうやって調理するのかわからないだけです。 同時に、管理パネルで適切なテンプレートを選択するオプションを備えたマッピングを持つフォルダーに、いくつかのデザインテンプレートがある場合があります。
2.便利な管理パネル-これ以上何もありませんが、必要なのはそこだけです。 管理パネルからcssやテンプレートを埋め込む必要はありません(これを発明した人は誰でも禁煙してください)。 最後に重要なことですが、セクション1のおかげで、エディターの簡単な動きでどのセクションもねじれ、ねじれ、カスタマイズできます(さて、Wordpressの管理パネルのカスタマイズ方法を教えてください)。 あらゆるフィールドに、簡単にネジ止め/ネジ止め解除されたフィルターとバリデーターがあります。 その結果、コミュニティでさえ必要ありません-エンジンは実際には、古典的な伝統のフレームワークであり、それ自体の例があります。 ところで、OpenCartコミュニティはかなり大きいので、もしあなたが志を同じくする人々であるなら、それを見つけることはかなり可能です。
3.すぐに使えるCNCがあります(WordPressの場合でも、この拡張機能をインストールする必要があります)。 しかし、それらを使用しない場合、基本的な機能が機能するための過剰な修正によってプロジェクトが混乱することはありません。 誰にもわからないが、喜んでいた。パスのロジックが透明である場合、新しいツールを学ぶ方が簡単だ。
4.ストアのシャープ化により、登録および個人アカウント、検証付きの複雑なフォーム(注文用)、フィルターと並べ替え、レビューなど、必要なものがすぐに利用できるようになります。 はい、他のフレームワークと同じように、これはすべてそのままで、モジュール内で、同じYiiで使用できますが、すべてがすでに実装されており、ほんの少しファイルされていると魅了されます。
5.ちょっといいことですが、店主にとって重要なポイントは、注文ステータスがたくさんあることです。新しいステータスを追加するのは簡単です。
Total-優れた高速エンジン。実際には、古典的なフレームワークと古典的なCMSのハイブリッドです。
そして今、これまでに気づかれたマイナスについて少し。
1.優れたクラシックMVCでは、モデルの健全な実装はありません。 抽象化のレイヤーであるActiveRecordは、すべてOpenCartから遠く離れています。 モデルには、$ this-> db-> query( "SELECT * FROM customer")などの単純なクエリが含まれます。
2.既存の詰め物にいくら必要であっても、最も不適切な瞬間に、そこに重大な何かがあることがわかります。 たとえば、コールバック関数。 または、コードを使用してメールでアクティベーションを行います。 他の些細なことは、原則としてそれほど難しいことではありませんが、エンジン自体がこれを行うことができるように思われますが、改善に手を出すでしょう。 それにはかなりの数の異なるモジュール(上記のものを含む)がありますが、ほとんどすべてが支払われますが、通常価格は10ドルの制限を超えません。 しかし、私は自分でそれを書いたので、今度はこの機能をその後のケースに備えます。
3. トースターで記述された問題:エンジンは言語をCookieに保存し、リンクで送信しないため、リンクの交換で問題が発生し、SEOに障害が発生します。
4.購入プロセスは非常に厳格に事前に決められていますが、過剰に多く含まれています。 たとえば、登録せずに注文すると、ユーザーは住所、配送先住所、請求先住所の3回だけ住所を求められます。 3つの店のうち、3つすべてで、私はたくさんの場所で手を掃除しなければなりませんでした。 別の例は、製品を作成するときに必須の「モデル」フィールドです。 まあ、人はモデルを持っていません、それは起こります-あなたも手でそれをきれいにしなければなりません。 つまり、この点を要約すると、余分なものをカットしたり、新しいものを追加したりする必要がある場合は、多数のコードの場所で多くのジェスチャーを行う必要があります。
これで、おそらく、私は終了します。 エンジンについてのコメントを書いてください。私は間違いを犯したかもしれないし、考慮していないかもしれませんが、あなたの仕事の経験について書いてください。
ご清聴ありがとうございました。
UPD。 コメントの私の間違いと非自明性を明確にしてくれてありがとう。
1. CNCについて:OpenCartの場合、手でスラッグを登録するか、モジュール(無料ではない)をインストールする必要があります。 VP自体の場合、CNCはボックスからオンになりますが、音訳にはプラグインが必要です(実際、音訳について話しているので、音訳のためにWordPressプラグインを追加で仕上げる必要がありました)。
2.前述のオンラインストアのエンジンにもMVCがあります。
3.もちろん、この記事の目的は、MVCをそのように説明することではありませんでしたが、「健全なMVC実装」というフレーズを明確にする必要があります。 まず、エンジン内のMVCは一般に原則として、他のソリューションと比較してすでに重要です。 第二に、一般的なフレームワークで作業した人が見ることに慣れている方法で作成されます。これには、ディレクトリ構造、命名ロジックとコントローラー機能、変数転送ロジックなど、さまざまな側面が含まれます。 つまり、通常どおり、コードを開いて記述します。 唯一のコメントはモデルです。最初の「マイナス」でそれについて書きました。