コードでEEバージョンまたはCEかどうかを確認する


7

EEとCEの間で賢明な違いのあるコードを作成するクリーンな方法はありますか?
問題。
拡張機能を更新しているので、ce-1.9でも問題なく動作します。
拡張機能はEE向けではありませんが、それでも動作するように縫い合わせています。
更新のために、CE-1.9(またはEE 1.14)にインストールされている場合にのみ実行されるアップグレードスクリプトを作成する必要があります。
簡単に確認できない

version_compare(Mage::getVersion, '1.9', '>=');

これはEE 1.9以降でトリガーされますが、私はそれを望まないからです。

今私はこれを使っています:

$isEE = Mage::helper('core')->isModuleEnabled('Enterprise_Enterprise');

しかし、それは一種の醜い継ぎ目です。

チェックする他の方法は?


これは以前に行った方法ですが、ProfessionalにいくつかのEnterprise要素が含まれていることを覚えているようですが、バージョンもチェックしている場合は、そこに移動することをお勧めします。これは私が当時使用していたリファレンスでした:gist.github.com/jayelkaake/1541793
Douglas Radburn

@DouglasRadburn廃止されたので、もうプロのことは気にしません。誰かが同じことをするのを知ってうれしい。あなたのコメントを回答として入力してください。今後2日間に他に何も起こらない場合は、それを受け入れます。
マリウス

回答:


15

CE 1.7以降、この情報を提供するMage :: getEdition()があります。

/**
 * Magento edition constants
 */
const EDITION_COMMUNITY    = 'Community';
const EDITION_ENTERPRISE   = 'Enterprise';
const EDITION_PROFESSIONAL = 'Professional';
const EDITION_GO           = 'Go';

/**
 * Current Magento edition.
 *
 * @var string
 * @static
 */
static private $_currentEdition = self::EDITION_COMMUNITY;



/**
 * Get current Magento edition
 *
 * @static
 * @return string
 */
public static function getEdition()
{
   return self::$_currentEdition;
}

1
ありがとう。それを探していました。今日で2回目の検索スキルが失敗します。「今日は科学にとって良い日ではありません」。
マリウス

したがって、最初にメソッドが存在するかどうかを確認してから呼び出す必要があります。CE 1.6に
関心がある

@Amasty。うん。それは本当だ。しかし、私は1.7未満のバージョンでは私の拡張機能のサポートを提供していないので、これで問題ありません。
マリウス

0

もう1つの可能な方法は、magento 1インストールのルートフォルダーに移動し、CLIで次のコマンドを実行することです。

php -r "require 'app/Mage.php'; echo Mage::getEdition(); "

あるいは、バージョンも取得したい場合

php -r "require 'app/Mage.php'; echo Mage::getEdition(); echo Mage::getVersion();"

正常に動作します。


多分それはうまくいきますが、これは私が尋ねたものではありません。
マリウス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.