كيف يمكن حل الخطأ الماجنتو 1.س س على بي إتش بي 7?[مكررة]

magento.stackexchange https://magento.stackexchange.com/questions/105550

  •  29-09-2020
  •  | 
  •  

سؤال

الماجنتو 1.9.4 لا تعمل مع فب 7 ، فإنه يظهر خطأ على النحو التالي:

Fatal error: Uncaught Error: Function name must be a string in 
app\code\core\Mage\Core\Model\Layout.php:555 Stack trace: #0 
app\code\core\Mage\Core\Controller\Varien\Action.php(390): Mage_Core_Model_Layout->getOutput() #1 
app\code\core\Mage\Cms\Helper\Page.php(137): Mage_Core_Controller_Varien_Action->renderLayout() #2 
app\code\core\Mage\Cms\Helper\Page.php(52): Mage_Cms_Helper_Page->_renderPage(Object(Mage_Cms_IndexController), 'home') #3 
app\code\core\Mage\Cms\controllers\IndexController.php(45): Mage_Cms_Helper_Page->renderPage(Object(Mage_Cms_IndexController), 'home') #4 
app\code\core\Mage\Core\Controller\Varien\Action.php(418): Mage_Cms_IndexController->indexAction() #5 
app\code\core\Mage\Core\Controller\Varien\Router\Standard.php(254): Mage_Core_Controller_Varien_Action->dispatch('index') #6 
app\code\core\Mage\Core\Model\Layout.php on line 555
هل كانت مفيدة؟

المحلول

يحدث ذلك لأنه في PHP 7 تحتاج إلى توضيح أنك ذاهب لاستدعاء $callback متغير كطريقة (وظيفة).لذلك ، يبدو السطر الأصلي من التعليمات البرمجية كما يلي (ملف app/code/core/Mage/Core/Model/Layout.php):

$out .= $this->getBlock($callback[0])->$callback[1]();

من أجل جعلها تعمل على أحدث إصدار فب نحن بحاجة إلى استبدال هذه القطعة من التعليمات البرمجية من قبل هذا واحد:

$out .= $this->getBlock($callback[0])->{$callback[1]}();

الرجوع هذه المدونة لمزيد من المعلومات.

نصائح أخرى

إذا كنت ترغب في تشغيل الماجنتو الخاص بك 1.الموقع العاشر على PHP7 ، تحتاج إلى إجراء بعض التعديلات في بعض الماجنتو 1.× الملفات لجعلها تعمل بدون أي مشاكل.

معظم الماجنتو رمز لا يزال ساري المفعول في PHP 7, هناك عدد قليل من عدم التوافق المدرجة أدناه:

1.زي متغير الجملة مسائل:

1.1 التطبيق/القانون/core/ماجي/Core/نموذج/تخطيط.php:555

هذا الملف أسباب خطأ فادح التي تعطل الماجنتو.تجاوز الملف ، محل

$out .= $this->getBlock($callback[0])->$callback[1]();

مع

$out .= $this->getBlock($callback[0])->{$callback[1]}();

1.2 التطبيق\رمز\core\بركه\ImportExport\نموذج\Import\رافع.php:135

هذا الملف آثار الماجنتو CSV المستورد.تجاوز الملف ، ثم تجاوز _validateFile() وظيفة استبدال الخط 135 مع محل

$params['object']->$params['method']($filePath);

مع

$params['object']->{$params['method']}($filePath);

1.3 التطبيق\رمز\core\بركه\ImportExport\نموذج\التصدير\الكيان\Product\اكتب\مجردة.php:99

هذه المسألة تأثير تصدير وظائف الماجنتو.الماجنتو يمتد ثلاث فئات من فوق فئة مجردة ، لذلك السبب خطأ داخل تحت فئة هو خط#99 في فوق الطبقة.

Mage_ImportExport_Model_Export_Entity_product_type_configurable Mage_ImportExport_Model_Export_Entity_product_type_grouped Mage_ImportExport_Model_Export_Entity_product_type_simple

نحن بحاجة إلى تجاوز فوق ثلاث فئات في مجتمعاتنا المحلية رمز حمام سباحة تجاوز overrideAttribute (وظيفة), استبدال الخط#99

$data['filter_options'] = $this->$data['options_method']();

مع

$data['filter_options'] = $this->{$data['options_method']}();

1.4 التطبيق\رمز\core\بركه\ImportExport\نموذج\التصدير\الكيان\العملاء.php:250

هذا الملف آثار تصدير العملاء وظائف.تجاوز فوق الملف و تغيير خط#250 كما هو مبين أدناه

$data['filter_options'] = $this->$data['options_method']();

مع

$data['filter_options'] = $this->{$data['options_method']}();

1.5 lib\Varien\ملفات\رافع.php:259

تحميل الملف لن تعمل.الماجنتو يمتد Mage_Core_Model_File_Uploader من فوق الطبقة ، لذلك نحن بحاجة إلى تجاوز هذه الدرجة كتابة _validateFile() وظيفة استبدال تحت خط

$params['object']->$params['method']($this->_file['tmp_name']);

مع

$params['object']->{$params['method']}($this->_file['tmp_name']);

2.نوع الصب المسألة

2.1 التطبيق\رمز\core\بركه\Core\نموذج esource\الدورة.php:218

الماجنتو دورات لا تعمل على PHP 7 ، وذلك نتيجة تسجيل دخول المستخدم لا يعمل.قراءة($sessId) وظيفة يجب أن تعود سلسلة لذا التلبيس العائد المتغير كما يلي

return $data;

مع

return (string)$data;

3.غير صحيحة المجموع الكلي

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

<global>
    <sales>
        <quote>
            <totals>
                <msrp>
                    <before>grand_total</before>
                </msrp>
                <shipping>
                    <after>subtotal,freeshipping,tax_subtotal,msrp</after>
                </shipping>
            </totals>
        </quote>
    </sales>
</global>

هنا هو الأصل إشارة إلى ما نشر أعلاه:http://scriptbaker.com/tag/magento-1-9/

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

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