Magento 1.9.4.0 na PHP 7.2 nelze spouštět přes Mage::app()

Upgradoval jsem jednu instanci Magento 1.9.3.9 pomocí patchů na úroveň 1.9.4.0, jež má v sobě už compatibility patche na PHP 7.2. Magento po přepnutí na 7.2 v rámci frontendu i backendu běží, ale pokud bokem chci pustit svoje starý skripty, kde Magento inicializuju pomocí tradiční metody:

require_once $basefolder . 'app/Mage.php';
umask(0);
Mage::app(1);

tak mi to hodí jedno upozornění na Deprecated: __autoload() is deprecated, use spl_autoload_register() instead in /app/code/core/Mage/Core/functions.php on line 60 a hlavně Fatal Error Uncaught Mage_Core_Model_Store_Exception in /mnt/data/accounts/f/foltynwine/data/www/foltynwine.cz/app/code/core/Mage/Core/Model/App.php:1377. Na PHP 7 a 7.1 to běhá. Napadá někoho co s tím?

Odpovím si tak trochu sám. Panové z NDR tam nasekali mnohem víc chyb a přechod na PHP 7.2 byť s oficiálními patches není až tak snadný a možný. Mají ještě hromadu práce a dotahování, než to fakt bude možné. A ne, není to problém modulů třetích stran, ale jádra.

Tak ta tradiční metoda je dobrá :smiley: :wink:

Jaro, jakože ironicky? Nějak jsem nepochopil, jde si myslim o standard - viz. třeba https://fishpig.co.uk/magento/tutorials/run-magento-code-externally/

Jsem netušil, že fishpig je správce standardů. V Magento 1.9 jsou shell skripty implementovány drobínek jinak. Dobrý příklad je shell/log.php.

Cokoliv jiného bych považoval spíše za experimentální přístup zakončený frustrací.

:sunny:

Šmarja, nechytejte mě za slovo. Nejde o shell skript, prostě PHP skript mimo Magento. Ten přístup co jsem popsal jsem viděl na miliardě míst a mě dosud taky fungoval bez problémů. Už jsem to vyřešil, ale díky za tip.

Stando, v pohodě. Hlavně, že ti to funguje. Ať se daří.

1 Like