Magento2 DateTime: createFromFormat не найден и код тормоза - PullRequest
0 голосов
/ 06 сентября 2018

Я использую следующую строку в модуле

    $firstNextMonth = date("Y-m-d H:i:s", strtotime(date('m', strtotime('+1 month')).'/01/'.date('Y').' 00:00:00'));
    $d = DateTime::createFromFormat('Y-m-d H:i:s', $firstNextMonth);
    $firstNextMonthTs = $d->getTimestamp();

Но когда я запускаю код на промежуточном сервере, я получаю сообщение об ошибке, так как magento это

"Fatal Error: 'Uncaught Error: Class 'Magenest\\Stripe\\Model\\DateTime' not found in \/var\/www\/html\/magento2-theme-videx\/htdocs\/app\/code\/Magenest\/Stripe\/Model\/StripePaymentMethod.php:480\nStack trace:\n#0 \/var\/www\/html\/magento2-theme-videx\/htdocs\/app\/code\/Magenest\/Stripe\/Model\/StripePaymentMethod.php(829): Magenest\\Stripe\\Model\\StripePaymentMethod->authorize(Object(Magento\\Sales\\Model\\Order\\Payment\\Interceptor), '4.8')\n#1 \/var\/www\/html\/magento2-theme-videx\/htdocs\/vendor\/magento\/module-sales\/Model\/Order\/Payment\/Operations\/CaptureOperation.php(82): Magenest\\Stripe\\Model\\StripePaymentMethod->capture(Object(Magento\\Sales\\Model\\Order\\Payment\\Interceptor), '4.8')\n#2 \/var\/www\/html\/magento2-theme-videx\/htdocs\/vendor\/magento\/module-sales\/Model\/Order\/Payment\/Processor.php(85): Magento\\Sales\\Model\\Order\\Payment\\Operations\\CaptureOperation->capture(Object(Magento\\Sales\\Model\\Order\\Payment\\Interceptor), Object(Magento\\Sales\\Model\\Order\\Invoice))\n#3 \/var\/www\/html\/magento2-theme-videx\/htdocs\/vendor\/magento\/module-sales\/Model\/Order\/Payment.php(' in '\/var\/www\/html\/magento2-theme-videx\/htdocs\/app\/code\/Magenest\/Stripe\/Model\/StripePaymentMethod.php' on line 480"

Похоже, что magento или php пытается найти класс DateTime вместо того, чтобы запустить команду

Версия php - PHP 7.0.27 (cli) (сборка: 25 января 2018 22:40:53) (NTS)

есть идеи?

1 Ответ

0 голосов
/ 07 сентября 2018

Добавить "use Magento \ Framework \ Stdlib \ DateTime;" строка перед объявлением класса, чем использовать код класса DateTime, как показано ниже:

$firstNextMonth = date("Y-m-d H:i:s", strtotime(date('m', strtotime('+1 month')).'/01/'.date('Y').' 00:00:00'));
$d = \DateTime::createFromFormat('Y-m-d H:i:s', $firstNextMonth);
$firstNextMonthTs = $d->getTimestamp();
...