Überprüfen Sie anhand des Codes, ob die EE-Version oder CE vorliegt

7

Gibt es eine saubere Möglichkeit, einen Unterschied zwischen EE und CE zu machen?
Das Problem.
Ich aktualisiere eine Erweiterung, damit sie unter ce-1.9 gut funktioniert.
Die Erweiterung ist nicht für EE, aber es scheint auch daran zu arbeiten.
Für das Update muss ein Upgrade-Skript erstellt werden, das nur ausgeführt werden sollte, wenn es auf CE-1.9 (oder EE 1.14) installiert ist.
Ich kann nicht einfach überprüfen

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

weil dies in EE 1.9+ ausgelöst wird und ich das nicht will.

Im Moment benutze ich Folgendes:

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

aber es scheint irgendwie hässlich.

Gibt es noch andere Möglichkeiten, dies zu überprüfen?

Marius
quelle
So habe ich es zuvor gemacht, obwohl ich mich anscheinend daran erinnere, dass Professional einige Enterprise-Elemente enthalten hat - aber wenn Sie auch die Version überprüfen, sind Sie wahrscheinlich gut darin, dorthin zu gehen. Dies war die Referenz, die ich damals verwendete: gist.github.com/jayelkaake/1541793
Douglas Radburn
@DouglasRadburn Ich interessiere mich nicht mehr für professionelle, weil es eingestellt wird. Ich bin froh zu wissen, dass jemand es genauso macht. Bitte geben Sie Ihren Kommentar als Antwort ein. Wenn in den nächsten 2 Tagen nichts anderes auftaucht, werde ich ihn akzeptieren.
Marius

Antworten:

15

Seit CE 1.7 haben Sie Mage :: getEdition (), das diese Informationen enthält:

/**
 * 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;
}
Vladimir Kerkhoff
quelle
1
Vielen Dank. Ich habe danach gesucht. Das ist heute das zweite Mal, dass meine Suchfähigkeiten versagen. "Heute ist kein guter Tag für die Wissenschaft".
Marius
Sie müssen also zuerst prüfen, ob die Methode vorhanden ist, und sie dann aufrufen. Wenn Sie sich für CE 1.6
Amasty
@ Amasty. Ja. das stimmt. Ich biete jedoch keine Unterstützung für meine Erweiterung für Versionen unter 1.7 an, daher sollte dies in Ordnung sein.
Marius
0

Eine andere Möglichkeit besteht darin, zum Stammordner der Magento 1-Installation zu navigieren und den folgenden Befehl in der CLI auszuführen.

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

Alternativ, wenn Sie auch die Version erhalten möchten

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

funktioniert gut.

Edgars Patmalnieks
quelle
Vielleicht funktioniert es, aber das habe ich nicht gefragt.
Marius