سؤال

فب 7 هو الوصول إلى حالة بيتا والكثير من التجارب يجري في الوقت الراهن.وبالنظر إلى أن الماجنتو اشتعلت خلال العام الماضي من "يعمل فقط على فب 5.3" إلى "متوافقة تماما مع فب 5.6" ، وأود أن أعرف كم هم يفكرون فب 7 التوافق ل الماجنتو 1.س وكذلك الماجنتو 2.

لقد وجدت هذا المنصب من قبل آنا فيلينا حيث وجدت قضية واحدة في الماجنتو 1.9.1 (لا يزال دون تغيير في 1.9.2) ، ولكن بالنظر إلى أن الماجنتو 1 ليس لديها اختبارات وحدة ، وأنا لا أثق في أن هذه هي القضية الوحيدة.

لذا فإن السؤال هو:سوف بي إتش بي 7 التوافق لالماجنتو 1 يتم ضمان?وكما الماجنتو 2 ربما تم بالفعل اختبارها على بي إتش بي 7 (شكرا الاختبارات الآلية!), هل هناك أي مشاكل معروفة?

هل كانت مفيدة؟

المحلول

أعلن Magento رسميا في 20 يناير 2016، أن دعم CE و EE 2.0.1 رسميا PHP 7.0.2.

magento Enterprise Edition and Community Edition 2.0.1 الآن متاح وميزات أمان مهمة وتحديثات وظيفية، بما في ذلك الدعم الرسمي لشركة PHP7.0.2.

link: https://magento.com/blog/technical/new-Magento-20-Resources-Support-PHP7

نصائح أخرى

إذا كنت تستخدم أحدث إصدار، ME CE 1.9.2.2، فهناك امتداد سيجلبه إلى التوافق الكامل PHP 7: https://github.com/inchoo/inchoo_php7 .(إخلاء المسؤولية: أنا المؤلف، على الرغم من أن هناك الكثير من المساعدة من المجتمع.)

يستخدم أيضا من خلال الملحن من http://packages.firegento.com/ .

جميع عدم التوافق المذكورة هنا ثابتة.نعتقد أنه قد لا يزال هناك حالات قليلة، ولكن لا شيء تظهر.الاختبار، الإبلاغ عن الإبلاغ وطلبات السحب هي موضع ترحيب.

أي فكرة عن فب 7 ، ولكن أعتقد أن معظم الاشياء لا تزال صالحة في فب 7 ، يمكنك العثور على مزيد من المعلومات في بلوق ماتياس جينيار

  • تحويلة / الخلية: على الرغم من كونه تمديد الخلية القديمة جدا ، وكنت أعتقد أنها لا تزال تستخدم على نطاق واسع جدا ، ولكن حان الوقت انتقل الجميع إلى بدو_ميزل.
  • set_magic_quotes_runtime و magic_quotes_runtime: يبدو أنني رأيت إشعارات الإهمال هذه منذ ذلك الحين ...إلى الأبد?
  • iconv.input_encoding, iconv.output_encoding: حتى الآن ، لم يكن لدي أي استخدام لهذه...
  • # نمط التعليقات في ملفات إيني: الصيحة من أجل الاتساق, لقد فضلت دائما ;(فاصلة منقوطة) تعليقات في .ملفات إيني!
  • preg_replace() معدل التقييم: الصيحة لمسؤولي النظام ذوي العقلية الأمنية!

أعتقد أن الشيء الوحيد الذي قد يكون لدينا في الماجنتو هو preg_replace() معدل التقييم ولكن نأمل أن لا.

بجانب هذا ، الماجنتو شحنها 1.9.2 مع تاف المحدثة ، يمكنك أن تجد في ديف.مع هذا يجب أن تكون قادرا على تشغيل مجموعة من اختبارات الواجهة الأمامية على فب 7 وفحص السجل بعد ذلك

لا تعليق على Magento 1، لكن Magento 2 لم يكن لدى Magento 2 بعض المشاكل مع أسماء الفئات مثل "السلسلة".لم يستغرق الأمر وقتا طويلا لإصلاحه، لكنه لم ينجح خارج الصندوق.أتوقع أن يتم إصلاح Magento 2، لكن قد لا يتم إصلاحه بعد بسبب الأولويات الأخرى أولا.

انها جاهزة تقريبا.حاولت تشغيل الماجنتو نظيفة 1.9.2.1 مع فب 7 أرسي 1 ، مما أدى إلى تحطم فوري (خطأ فادح) من الماجنتو.بعد إصلاح هذه المشكلة ، بدا أن كل شيء يعمل ، باستثناء الواجهة الخلفية ، التي لم أتمكن من تسجيل الدخول إليها.في وقت لاحق اتضح أن تكون مشكلة تتعلق الدورة التي يمكن تصحيحها.

باختصار:

  1. يمكن إصلاح الخطأ الفادح عن طريق تجاوز Mage_Core_Model_Layout ثم تغيير الخط 555 من:
    $out .= $this->getBlock($callback[0])->$callback[1]();
    في
    $out .= $this->getBlock($callback[0])->{$callback[1]}();

  2. يمكن إصلاح مشكلة الجلسة مؤقتا عن طريق التجاوز Mage_Core_Model_Session_Abstract_Varien وإعادة كتابة getData, setData, unsetData, addFullNames الطرق ، لذلك في كل مكان حيث $this->_data تم استخدامه ، سيتم استبداله بـ $_SESSION.

إذا كان شخص ما مهتما بالحل ، فيمكن العثور عليه هنا.

magento2 جاهز للحصول على PHP 7. تم إجراء التكيف من التعليمات البرمجية إلى PHP7 وجميع التغييرات متوفرة في تطوير فرع.انظر المشكلة على github

أيضا، فإن دعم PHP 7 في Magento1 يتطلب تغييرات غير متوافقة للخلف وأعتقد أنه لن يتم دعمه رسميا.

هناك مشكلة مع كيفية الماجنتو هو حساب النظام المجموع الكلي ، وتطبيق الخصومات.هذا هو أيضا وقف باي بال اكسبرس الخروج ، والبنود خط لا تضيف ما يصل الى المجموع الكلي مع الخصم.

يبدو أن المشكلة هي أن Mage_Sales_Model_Config_Ordered::_compareTotals() لا يعمل بنفس الطريقة في بي إتش بي 7 مثل بي إتش بي 5 ، و uasort() يعتمد الآن على علاقة متعدية للطلب ، ولكن هذا لا يجب أن يكون لمجموع الطلبات.

حاول استخدام :-

protected function _getSortedCollectorCodes()
{
    if (Mage::app()->useCache('config')) {
        $cachedData = Mage::app()->loadCache($this->_collectorsCacheKey);
        if ($cachedData) {
            return unserialize($cachedData);
        }
    }
    $configArray = $this->_modelsConfig;
    // invoke simple sorting if the first element contains the "sort_order" key
    reset($configArray);
    $element = current($configArray);
    if (isset($element['sort_order'])) {
        uasort($configArray, array($this, '_compareSortOrder'));
    } else {
        foreach ($configArray as $code => $data) {
            foreach ($data['before'] as $beforeCode) {
                if (!isset($configArray[$beforeCode])) {
                    continue;
                }
                $configArray[$code]['before'] = array_unique(array_merge(
                    $configArray[$code]['before'], $configArray[$beforeCode]['before']
                ));
                $configArray[$beforeCode]['after'] = array_merge(
                    $configArray[$beforeCode]['after'], array($code), $data['after']
                );
                $configArray[$beforeCode]['after'] = array_unique($configArray[$beforeCode]['after']);
            }
            foreach ($data['after'] as $afterCode) {
                if (!isset($configArray[$afterCode])) {
                    continue;
                }
                $configArray[$code]['after'] = array_unique(array_merge(
                    $configArray[$code]['after'], $configArray[$afterCode]['after']
                ));
                $configArray[$afterCode]['before'] = array_merge(
                    $configArray[$afterCode]['before'], array($code), $data['before']
                );
                $configArray[$afterCode]['before'] = array_unique($configArray[$afterCode]['before']);
            }
        }
        foreach ($configArray as $code => $data) {
           $largest_small = $smallest_large = 0;
           foreach ($data['after'] as $afterCode) {
              if(isset($configArray[$afterCode]['sort_order']) && $largest_small < $configArray[$afterCode]['sort_order'])
                 $largest_small = $configArray[$afterCode]['sort_order'];
           }
           foreach ($data['before'] as $beforeCode) {
              if(isset($configArray[$beforeCode]['sort_order']) && ($smallest_large == 0 || $configArray[$beforeCode]['sort_order'] < $smallest_large)) 
                 $smallest_large = $configArray[$beforeCode]['sort_order'];
           }
           if($smallest_large <= $largest_small+1){
              if($smallest_large == 0) $smallest_large = $largest_small+1;
              $add = $largest_small+2-$smallest_large;
              foreach ($configArray as $code1 => $data1) {
                 if(!isset($data1['sort_order'])) break;
                 if($smallest_large <= $data1['sort_order'])
                    $configArray[$code1]['sort_order'] += $add;
               }
           }
           $configArray[$code]['sort_order'] = $largest_small+1;
        }
        uasort($configArray, array($this, '_compareSortOrder'));
    }
    $sortedCollectors = array_keys($configArray);
    if (Mage::app()->useCache('config')) {
        Mage::app()->saveCache(serialize($sortedCollectors), $this->_collectorsCacheKey, array(
                Mage_Core_Model_Config::CACHE_TAG
            )
        );
    }
    return $sortedCollectors;
}

هذا هو بحثي أريد مشاركتها معك حول عدم توافق Magento PHP7. حاليا لقد وجدت بعض الأماكن التي يجب أن تفشل فيها الكود بسبب بناء جملة متغير موحدة.

الملف: App / Code / core / mage / importexport / النموذج / الصادرات / الكيان / المنتج / النوع / absract.php

الطريقة: تجاوز التجاوز

giveacodicetagpre.

الملف: التطبيق / الكود / core / mage / importexport / النموذج / الصادرات / الكيان / customer.php

الأسلوب: filterattributtrectecollection

giveacodicetagpre.

ملف: التطبيق / الرمز / core / mage / importexport / نموذج / استيراد / Uploader.php

الطريقة: _validatefile

giveacodicetagpre.

الملف: التطبيق / الرمز / core / mage / الكتالوج / النموذج / المنتج / الرابط / API / v2.php

الطريقة: تعيين

giveacodicetagpre.

الملف: التطبيق / الرمز / core / mage / الكتالوج / النموذج / المنتج / الرابط / API / v2.php

الطريقة: التحديث

giveacodicetagpre.

ملف: lib / varien / file / uploader.php

الطريقة: _validatefile

giveacodicetagpre.

ملف: التطبيق / الرمز / core / mage / core / model / layout.php

الطريقة: getoutput

giveacodicetagpre.

بالإضافة إلى إجابات أخرى تتعلق الماجنتو 1:

بي إتش بي 7 عدم التوافق في Zend_XmlRpc_Server وقد تم إصلاح في إطار زند 1.12.12

جميع الإصدارات السابقة سي 1.9.2.2 / إي 1.14.2.2 استخدام نسخة قديمة من إطار زند ، وبالتالي قد يكون لديك مشاكل إذا كنت تستخدم شمل-ريك أبي من الماجنتو.

تحقق من الملفات من Inchoo والتي تم تغييرها إلى M1 متوافقة مع PHP 7، تلك تغييرات طفيفة في عدد قليل من الملفات ولكن العمل الذكي من Inchoo. https://github.com/inchoo/inchoo_php7/tree/ ماجستير / التطبيق / رمز / محلي / inchoo / php7

أنا أستخدم Magento 2 CE الإصدار 2.1.4 ويعمل بشكل جيد.

magento \ app \ bootstrap.php

giveacodicetagpre.

إجابة قصيرة لا، لا.Magento CE 1.9.2.4 يدعم فقط PHP 5.4 و 5.5 رسميا.وعلى الرغم من أن PHP 5.6 يعمل على ما يرام، فإنه يشبع ملفات السجل مع تعددية من رسائل التحذير.

الإجابة الطويلة هي أنه من السهل نسبيا تعديلها لتشغيل دعم PHP7.لكن العديد من الإضافات لا تزال غير متوافقة PHP7 لذلك أنت إلى حد كبير بنفسك.

فب 7.0 هو نهاية الحياة اعتبارا من الأسبوع الأول من ديسمبر 2018.

اعتبارا من هذا المنصب ، الإصدار الحالي من الماجنتو 2.2.3 (20 فبراير 2018 الإصدار) لا يدعم فب 7.1 ، أو فب 7.2.

يمكنك تأكيد الإصدارات المدعومة عن طريق التحقق app/bootstrap.php في مجلد تثبيت الماجنتو الخاص بك ، وابحث عن رمز مشابه لما يلي:

/* PHP version validation */
if (!defined('PHP_VERSION_ID') || !(PHP_VERSION_ID === 70002 || PHP_VERSION_ID === 70004 || PHP_VERSION_ID >= 70006)) {
    if (PHP_SAPI == 'cli') {
        echo 'Magento supports 7.0.2, 7.0.4, and 7.0.6 or later. ' .
            'Please read http://devdocs.magento.com/guides/v1.0/install-gde/system-requirements.html';
    } else {
        echo <<<HTML
<div style="font:12px/1.35em arial, helvetica, sans-serif;">
    <p>Magento supports PHP 7.0.2, 7.0.4, and 7.0.6 or later. Please read
    <a target="_blank" href="http://devdocs.magento.com/guides/v1.0/install-gde/system-requirements.html">
    Magento System Requirements</a>.
</div>
HTML;
    }
    exit(1);
}

ويبدو أيضا أن هناك قضايا في .htaccess التي تسبب 500 أخطاء مع أباتشي 2.4.

بالإضافة إلى ذلك ، يحتوي ملف الملحن المضمن فقط على تبعيات لـ 5.5 بيزو فلبيني

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى magento.stackexchange
scroll top