5

最初の magento モジュールの構築を開始しようとしていますが、コア内のローカル フォルダーとコミュニティ フォルダーの違いに関する文献が見つかりません。一部の人々はモジュールをローカルで構築し、他の人々はコミュニティで構築していることに気付きました。違いは何ですか?なぜどちらかを使用する必要があるのですか?

ありがとう

4

4 に答える 4

3

モジュールを一般に配布する予定がある場合は、 を使用communityして、他の Magento 開発者が自分の Magento プロジェクトでもモジュールを使用できるようにする必要があります。

それが Varien がMagento Extensionと呼んでいるものです。

local一般に配布したくないが、主に特定のショップ (または個人的な使用) のみのためにモジュールを開発している場合は、代わりに使用する必要があります。

localとフォルダーの違いをよりよく理解するにはcommunity、Magento Autoloader の仕組みを知っておくと役立ちます。

classが Magento でインスタンス化されようとしているとき、Autoloader は PHPs によって指定された順序で一致するクラスを検索しinclude_pathます。

Magento は、最初に起動時に設定include_pathします。app/Mage.php

:

define('DS', DIRECTORY_SEPARATOR);
define('PS', PATH_SEPARATOR);
define('BP', dirname(dirname(__FILE__)));

Mage::register('original_include_path', get_include_path());

:

$paths[] = BP . DS . 'app' . DS . 'code' . DS . 'local';
$paths[] = BP . DS . 'app' . DS . 'code' . DS . 'community';
$paths[] = BP . DS . 'app' . DS . 'code' . DS . 'core';
$paths[] = BP . DS . 'lib';

$app_path = implode(PS, $paths);
set_include_path($app_path . PS . Mage::registry('original_include_path'));

:

Magento Autoloader は、次のように表示される順序でパスを検索ますinclude_path

1st /app/code/local/
2nd /app/code/community/
3rd /app/code/core/
4th /lib/
:

たとえば、次の名前のクラスをインスタンス化しようとしていると仮定すると、Namespace_Module_Block_HelloMagentos Autoloader が指定されたパスを検索して*include_pathという名前のファイルを検索することになります。Namespace/Module/Block/Hello.php

1st /app/code/local/Namespace/Module/Block/Hello.php
2nd /app/code/community/Namespace/Module/Block/Hello.php
3rd /app/code/core/Namespace/Module/Block/Hello.php
4th /lib/Namespace/Module/Block/Hello.php
:

最初に見つかったファイルが優先されます。つまり、インスタンス化されます。たとえば、同じファイルがlocalANDに存在する場合、そのファイルはインスタンス化されます。communitylocal

これにより、開発者はクラスを自由に拡張/オーバーライド/オーバーロード/無視できます。


*名前変換規則については、を参照してくださいlib/Varien/Autoload.php::autoload()

于 2011-04-13T15:44:15.750 に答える
2

ローカルフォルダは、自分だけが使用するモジュール用です。コミュニティフォルダは、最終的にパッケージ化され、magentoコミュニティで利用できるようになる(または販売される)モジュール用です。ダウンロードしてインストールするモジュールはすべて、コミュニティフォルダーに配置されます。Magentoはモジュールがどこにあるかを実際には気にしません。違いは、主にモジュールを整理するためです。いずれにせよ、あるものから別のものに切り替えるのは簡単なので、それほど気にする必要はありません。

モジュールがどのカテゴリに属しているかわからない場合は、ローカルフォルダーから開始できます。公開する場合は、後でコミュニティフォルダーに移動できます。

于 2009-06-17T08:56:00.680 に答える
0

モジュールの分類には 2 つのタイプがあります。

  1. コミュニティと商用 コミュニティ - コミュニティは無料 商用 - コミュニティは有料

  2. ローカルおよびコア コア - 拡張機能は、magento コア ファイルを使用して開発されています。ローカル - 拡張機能は、コア ファイルをローカルにコピーすることによって開発されます。実際の変更はローカルで行われます

地元のものがよりお勧めです...

于 2010-06-28T13:09:06.477 に答える