Kiểm tra xem phiên bản EE hoặc CE theo mã


7

Có cách nào rõ ràng để tạo mã khác biệt khôn ngoan giữa EE và CE không?
Vấn đề.
Tôi đang cập nhật một tiện ích mở rộng để nó hoạt động tốt trên ce-1.9.
Phần mở rộng không dành cho EE, nhưng nó cũng hoạt động trên đó.
Để cập nhật, tôi cần tạo một kịch bản nâng cấp chỉ nên được thực thi nếu được cài đặt trên CE-1.9 (hoặc EE 1.14).
Tôi không thể đơn giản kiểm tra

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

bởi vì điều này sẽ được kích hoạt trong EE 1.9+ và tôi không muốn điều đó.

Ngay bây giờ tôi đang sử dụng cái này:

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

Nhưng nó là loại xấu xí.

Bất kỳ cách nào khác để kiểm tra?


Đây là cách tôi đã thực hiện trước đây, mặc dù tôi có vẻ nhớ Professional bao gồm một số yếu tố Doanh nghiệp - nhưng nếu bạn cũng đang kiểm tra phiên bản, có lẽ bạn rất tốt để đến đó. Đây là tài liệu tham khảo tôi đã sử dụng vào thời điểm đó: gist.github.com/jayelkaake/1541793
Douglas Radburn

@DoumundRadburn Tôi không quan tâm đến chuyên môn nữa vì nó đã ngừng. Vui mừng khi biết ai đó làm điều tương tự. Vui lòng đặt nhận xét của bạn làm câu trả lời và nếu không có gì khác xuất hiện trong 2 ngày tới tôi sẽ chấp nhận.
Marius

Câu trả lời:


15

Vì CE 1.7, bạn có Mage :: getEdition () cung cấp thông tin này:

/**
 * 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
Cảm ơn. Tôi đã tìm kiếm điều đó. Đó là lần thứ hai hôm nay kỹ năng tìm kiếm của tôi thất bại. "Hôm nay không phải là một ngày tốt cho khoa học".
Marius

Vì vậy, bạn cần phải kiểm tra nếu phương thức tồn tại đầu tiên và sau đó gọi nó. Nếu bạn quan tâm đến CE 1.6
Amasty

@Amasty. Vâng. đúng. Nhưng tôi không cung cấp hỗ trợ cho tiện ích mở rộng của mình trên các phiên bản dưới 1.7 vì vậy điều này sẽ ổn.
Marius

0

Một cách khác có thể là điều hướng đến thư mục gốc của cài đặt magento 1 và chạy lệnh sau trong CLI.

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

Alternativelly nếu bạn muốn nhận phiên bản

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

hoạt động tốt


có thể nó hoạt động, nhưng đây không phải là những gì tôi yêu cầu.
Marius
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.