В чем может быть причина? Не первый сайт который обновил до 8 PHP и с таким еще не встречался?!
Да же нет кнопки и фильтра по свойствам!
Да же нет кнопки и фильтра по свойствам!
Здесь подпись...
|
В чем может быть причина? Не первый сайт который обновил до 8 PHP и с таким еще не встречался?!
Да же нет кнопки и фильтра по свойствам!
Здесь подпись...
|
|
|
|
|
|
Php 8 тут не при чем. Методы вашего класса должны быть объявлены как public static
Не надо сверлить зубы через задний проход дрелью от Сваровски
|
|
|
|
|
|
Спасибо, помогло!
Здесь подпись...
|
|
|
|
|
В чем может быть дело? (функция битрикса в CUserTypeEnum идёт с такими параметрами: function getAdminListViewHtml($userField, $additionalParameters)) |
|||||||
|
|
|
Не надо сверлить зубы через задний проход дрелью от Сваровски
|
|||
|
|
|
![]() |
|||
|
|
|
В функции GetEditFormHTMLMulty пробовали добавить запись в лог - ничего не записывается, как будто эта функция даже не срабатывает
|
|||||
|
|
|
|
Методы вызываются как статические. Я бы выкинул CUserTypeEnum, отнаследовался от \Bitrix\Main\UserField\Types\EnumType и изменил методы.
Не надо сверлить зубы через задний проход дрелью от Сваровски
|
|
|
|
|
|
|||
|
|
|
Используем на сайте под управлением битрикса стороннюю доработку и вот какую ошибку выдает: [ErrorException] E_COMPILE_ERROR Declaration of Acat_ggbm::MakeData($id_site, $idtypeauto, $idmark, $model) must be compatible with Acat::MakeData() (0) /acat/classes/acat_ggbm_class.php:8
|
|||||
|
|
|
Не надо сверлить зубы через задний проход дрелью от Сваровски
|
|||
|
|
|
|
Добрый день!
Столкнулась с похожей проблемой, за одним исключением: набор параметров метода класса и интерфейса абсолютно идентичны, это видно даже из самого сообщения об ошибке: Declaration of Bitrix\Main\Diag\Logger::log($level, Stringable|string $message, array $context = []): void must be compatible with Psr\Log\LoggerInterface::log($level, $message, array $context = []) Спрашивается, что этому интерпретатору нужно??? Есть у кого-то идеи? Вот ещё код объявления методов на всякий случай: public function log($level, string|\Stringable $message, array $context = []): void //bitrix/modules/main/lib/diag/logger.php public function log($level, string|\Stringable $message, array $context = []): void; //bitrix/modules/main/vendor/psr/log/src/LoggerInterface.php |
|
|
|
|
Не надо сверлить зубы через задний проход дрелью от Сваровски
|
|||
|
|
|
Теперь такая проблема:
Искала на форуме в других темах, но подходящего для себя решения не нашла. Композер обновляли, зависимости обновляли, ничего не помогает(( |
|||||||
|
|
|
Не надо сверлить зубы через задний проход дрелью от Сваровски
|
|||
|
|
|
|
Вот полный трейс.
home/bitrix/www/local/modules/iarga.exchange/cron.php - это мой скрипт, который подключает prolog_before.php чтобы дальше работать с функциями ядра. Но в /home/bitrix/www/bitrix/modules/main/start.php на стр. 32 что-то идёт не так. Честно говоря, я вообще не понимаю, как это раньше работало. Как это вообще может работать? Класс Main/Application - он же всегда был абстрактным, и в php никогда нельзя было создавать объекты абстрактных классов... Array ( [0] => Array ( [file] => /home/bitrix/www/bitrix/modules/main/lib/application.php [line] => 744 [function] => getInstance [class] => Bitrix\Main\Application [type] => :: ) [1] => Array ( [file] => /home/bitrix/www/bitrix/modules/main/lib/diag/fileexceptionh [line] => 28 [function] => getDocumentRoot [class] => Bitrix\Main\Application [type] => :: ) [2] => Array ( [file] => /home/bitrix/www/bitrix/modules/main/lib/application.php [line] => 512 [function] => initialize [class] => Bitrix\Main\Diag\FileExceptionHandlerLog [type] => -> ) [3] => Array ( [function] => createExceptionHandlerLog [class] => Bitrix\Main\Application [type] => -> ) [4] => Array ( [file] => /home/bitrix/www/bitrix/modules/main/lib/diag/exceptionhandl [line] => 208 [function] => call_user_func_array ) [5] => Array ( [file] => /home/bitrix/www/bitrix/modules/main/lib/diag/exceptionhandl [line] => 407 [function] => getHandlerLog [class] => Bitrix\Main\Diag\ExceptionHandler [type] => -> ) [6] => Array ( [file] => /home/bitrix/www/bitrix/modules/main/lib/diag/exceptionhandl [line] => 321 [function] => writeToLog [class] => Bitrix\Main\Diag\ExceptionHandler [type] => -> ) [7] => Array ( [file] => /home/bitrix/www/bitrix/modules/main/lib/diag/exceptionhandl [line] => 247 [function] => handleError [class] => Bitrix\Main\Diag\ExceptionHandler [type] => -> ) [8] => Array ( [file] => /home/bitrix/www/bitrix/modules/main/lib/application.php [line] => 462 [function] => initialize [class] => Bitrix\Main\Diag\ExceptionHandler [type] => -> ) [9] => Array ( [file] => /home/bitrix/www/bitrix/modules/main/lib/application.php [line] => 87 [function] => initializeExceptionHandler [class] => Bitrix\Main\Application [type] => -> ) [10] => Array ( [file] => /home/bitrix/www/bitrix/modules/main/lib/application.php [line] => 102 [function] => __construct [class] => Bitrix\Main\Application [type] => -> ) [11] => Array ( [file] => /home/bitrix/www/bitrix/modules/main/start.php [line] => 32 [function] => getInstance [class] => Bitrix\Main\Application [type] => :: ) [12] => Array ( [file] => /home/bitrix/www/bitrix/modules/main/include.php [line] => 14 [args] => Array ( [0] => /home/bitrix/www/bitrix/modules/main/start.php ) [function] => require_once ) [13] => Array ( [file] => /home/bitrix/www/bitrix/modules/main/include/prolog_before.php [line] => 19 [args] => Array ( [0] => /home/bitrix/www/bitrix/modules/main/include.php ) [function] => require_once ) [14] => Array ( [file] => /home/bitrix/www/local/modules/iarga.exchange/cron.php [line] => 7 [args] => Array ( [0] => /home/bitrix/www/bitrix/modules/main/include/prolog_before.php ) [function] => require ) ) |
|
|
|
|
|
Для теста написала ещё один скрипт (test/cron.php), текст:
PHP Fatal error: Uncaught Error: Failed opening required '/bitrix/modules/main/lib/localization/loc.php' (include_path='.:/usr/share/pear:/usr/share/php') in /home/bitrix/www/bitrix/modules/main/lib/loader.php:369 Stack trace: #0 /home/bitrix/www/bitrix/modules/main/lib/orm/fields/validato #1 /home/bitrix/www/bitrix/modules/main/lib/loader.php(433): require_once('...') #2 [internal function]: Bitrix\Main\Loader::autoLoad() #3 /home/bitrix/www/bitrix/modules/main/include/compatibility.php(28): class_alias() #4 /home/bitrix/www/bitrix/modules/main/include/autoload.php(369): require_once('...') #5 /home/bitrix/www/bitrix/modules/main/start.php(21): require_once('...') #6 /home/bitrix/www/bitrix/modules/main/include.php(14): require_once('...') #7 /home/bitrix/www/bitrix/modules/main/include/prolog_before.php(19): require_once('...') #8 /home/bitrix/www/test/cron.php(2): require('...') #9 {main} thrown in /home/bitrix/www/bitrix/modules/main/lib/loader.php on line 369 На другом проекте, который тоже на php8 - такого нет. Всё нормально подключается, что при обработке через браузер, что через консоль. На этом - если запросить cron.php через браузер, то отрабатывает, а если через консоль - одни ошибки. |
|||
|
|
|
|
У нас регулярное резервное копирование настроено через крон (он запускает /bitrix/modules/main/tools/backup.php) - тоже не работает.
|
|
|
|
|
Не надо сверлить зубы через задний проход дрелью от Сваровски
|
|||
|
|
|
|
Решилось!
Вот какие параметры нужны ядру, чтобы нормально отрабатывать: $_SERVER['DOCUMENT_ROOT'] = '/...'; $_SERVER['HTTP_HOST'] = 'ваш.домен'; // важно для некоторых модулей Битрикс $_SERVER['REQUEST_URI'] = '/'; $_SERVER['SCRIPT_FILENAME'] = __FILE__; Задала их жёстко в начале скрипта, который вызывается через крон, и с ними заработало. С бэкапом пока непонятно, что делать... |
|
|
|
|
|
|||||
|
|
|
|
Добрый день. После перехода на php8.2 перестал работать режим правки. Причем на всех страницах. В какую сторону смотреть?
|
||||
|
|
|
|||