Osticket: Предупреждения о декларации AssignmentForm и TransferForm в php 7

Созданный на 13 апр. 2016  ·  30Комментарии  ·  Источник: osTicket/osTicket

Использование последней версии для разработки на php 7 дает следующие предупреждения:
Предупреждение: Объявление AssignmentForm :: render ($ options) должно быть совместимо с Form :: render ($ staff = true, $ title = false, $ options = Array) в / opt / osticket / osTicket-develop / include / class. forms.php в строке 4144

Предупреждение: Объявление TransferForm :: render ($ options) должно быть совместимо с Form :: render ($ staff = true, $ title = false, $ options = Array) в / opt / osticket / osTicket-develop / include / class. forms.php в строке 4264

Эти предупреждения мешают отображению всплывающих диалоговых окон, а также сбрасывают интервалы в шаблонах.

Прилагаемый патч diff исправляет эти предупреждения

class.forms.php.zip

Самый полезный комментарий

Я также столкнулся с этой проблемой в текущей стабильной версии osTicket 1.10. Он предотвращает отображение диалоговых окон «Передача» и «Назначение» в виде чего-либо, кроме белого квадрата, а также предотвращает проверку электронной почты api/cron.php . Когда я запускаю cron.php , появляются следующие сообщения об ошибках:

PHP Warning:  Declaration of AssignmentForm::render($options) should be compatible with Form::render($staff = true, $title = false, $options = Array) in /var/www/helpdesk/include/class.forms.php on line 4150
PHP Warning:  Declaration of TransferForm::render($options) should be compatible with Form::render($staff = true, $title = false, $options = Array) in /var/www/helpdesk/include/class.forms.php on line 4270

Вот информация о сервере из панели администратора:

osTicket Version     v1.10 (901e5ea) —  Up to date
Web Server Software  Apache/2.4.18 (Ubuntu)
MySQL Version        5.7.17
PHP Version          7.0.15-0ubuntu0.16.04.4

Сервер работает под управлением Ubuntu 16.04.2 LTS и полностью обновлен.

Модификации, представленные в запросе на перенос # 3349, решили проблему для меня.

Все 30 Комментарий

Есть ли причина, по которой вы не включили изменения в запрос на перенос?

извините, у меня нет репозитория git, я только что отредактировал файл в своей системе Linux с помощью vi ..


От: ntozier [email protected]
Отправлено: среда, 13 апреля 2016 г., 10:52
Кому: osTicket / osTicket
Копия: Билл Ричи
Тема: Re: [osTicket / osTicket] Предупреждения об объявлении AssignmentForm и TransferForm в php 7 (# 3033)

Есть ли причина, по которой вы не включили изменения в запрос на перенос?

Вы получаете это, потому что вы являетесь автором темы.
Ответьте на это письмо напрямую или просмотрите его на Gi tHubhttps: //github.com/osTicket/osTicket/issues/3033#issuecomment -209487139

Говорят, изображение стоит 1000 слов.

capture

При использовании osTicket 1.10 RC3 с PHP7 я заметил то же самое.
С нетерпением жду исправления в более новой версии.

См. # 3349 для другого исправления

Это предупреждение все еще появляется в стабильной версии v1.10: http://osticket.com/forum/discussion/89095/v1-10-php-7-warning

Подтверждено сегодня: на моем тестовом сайте 1.10 работает IIS 8.5 и недавно обновленный PHP 7.0.14.

Та же проблема с PHP 7.1, поэтому мне нужно перейти на более раннюю версию PHP 7, потому что у OsTicket есть проблемы. Aòso не удалось войти в систему в области администратора сообщение: Token CSRF valido richiesto

Эта проблема все еще сохраняется в стабильном выпуске 1.10. Исправление, упомянутое @ martin-rueegg, помогло.

Я также столкнулся с этой проблемой в текущей стабильной версии osTicket 1.10. Он предотвращает отображение диалоговых окон «Передача» и «Назначение» в виде чего-либо, кроме белого квадрата, а также предотвращает проверку электронной почты api/cron.php . Когда я запускаю cron.php , появляются следующие сообщения об ошибках:

PHP Warning:  Declaration of AssignmentForm::render($options) should be compatible with Form::render($staff = true, $title = false, $options = Array) in /var/www/helpdesk/include/class.forms.php on line 4150
PHP Warning:  Declaration of TransferForm::render($options) should be compatible with Form::render($staff = true, $title = false, $options = Array) in /var/www/helpdesk/include/class.forms.php on line 4270

Вот информация о сервере из панели администратора:

osTicket Version     v1.10 (901e5ea) —  Up to date
Web Server Software  Apache/2.4.18 (Ubuntu)
MySQL Version        5.7.17
PHP Version          7.0.15-0ubuntu0.16.04.4

Сервер работает под управлением Ubuntu 16.04.2 LTS и полностью обновлен.

Модификации, представленные в запросе на перенос # 3349, решили проблему для меня.

@ peterson-dane Можете ли вы поделиться своим решением?

У меня такая же проблема с почти такой же конфигурацией, как и у вас.

@PrajapatiChirag В файле include / class.forms.php измените:
function render($options) {
к
function render($staff = true, $title = false, $options = Array()) {

Должно быть три вхождения.

@solsticesurfer , спасибо, исправил мою проблему и на debian Stretch (9.2).

Что здесь происходит ? У меня тоже есть эта ошибка, но первые комментарии по этому поводу сделаны полуторагодовалой давности?

osTicket Core, версия 1.10.1
Последний стабильный выпуск, выпущенный 14 сентября 2017 г.

Это то, что я установил. Как может случиться, что ошибки не будут исправлены по прошествии полутора лет? Тем более, что решение простое, и кто-то уже написал исправление здесь ...

Как вы сказали: "Последний стабильный выпуск, выпущен 14 сентября 2017 г."

"Исправление" опубликовано:
2017oct03

Спасибо, что сделали это, поэтому мне не пришлось покидать эту тему, чтобы ответить на вопрос.

@ntozier

Это исправление было опубликовано уже в 2016 году. Первые комментарии об этой ошибке от полуторагодичной давности. Я нашел исправление, написанное в сентябре 2016 года на https://github.com/osTicket/osTicket/pull/3349/commit/bde15e2acec29a26c73918ae17aa0774fb5048c4

«Последний стабильный выпуск, выпущен 14 сентября 2017 г.»

Через полтора года после обнаружения ошибки и через год после публикации решения «Стабильный выпуск» все еще содержит ошибку.

И это не ошибка, которую трудно найти. osTicket на PHP 7 (стандарт в настоящее время) просто не работает без этого исправления.

Может быть, было бы лучше оставить тему, чтобы ответить на вопрос.

Проще говоря, нового релиза не было. 1.10 тогда, 1.10.1 (обновление безопасности) сейчас. 1.11 до сих пор не выпущена.

Нет никакой гарантии, что исправление в этом потоке будет тем, которое будет использоваться, когда выйдет 1.11, и маловероятно, что это произойдет, поскольку только в этом потоке есть несколько исправлений, и он еще не был объединен.

@ntozier

С каждым твоим ответом я все больше волнуюсь. И это тоже об отношении.

PHP 7 на данный момент является стандартом.

Это ошибка, впервые обнаруженная полтора года назад. Это мешает работе os Ticket на PHP 7.

И спустя 1 1/2 года это все еще не исправлено ???

Поэтому в первом посте я спросил: «Что здесь происходит?»

Можно ли сейчас потратить время на установку этой программы, ее использование и т. Д.? Можно ли советовать клиентам использовать это?

PHP 7 на данный момент является стандартом.

Это утверждение полностью субъективно. Люди, которых я знаю, по-прежнему предпочитают PHP 5.6, а не PHP 7 ...

Это ошибка, впервые обнаруженная полтора года назад. Это мешает работе os Ticket на PHP 7.

Это не мешает osTicket работать для _все_, поскольку я знаю людей, у которых он отлично работает с PHP 7 в их производственной среде.

И спустя 1 1/2 года это все еще не исправлено ???

Как заявил @ntozier, в этом потоке есть несколько исправлений этой проблемы, и требуется время, чтобы просмотреть их и найти лучшее, которое не нарушает ничего другого, и убедиться, что оно соответствует нашему стилю кодирования. К тому же это не единственная проблема на нашей странице Github ... там 1177. Надо их все просмотреть.

Можно ли сейчас потратить время на установку этой программы, ее использование и т. Д.? Можно ли советовать клиентам использовать это?

Конечно, ничего страшного! Если вас это беспокоит или ваш скомпилированный PHP 7 не поддерживает v1.10.1, просто перейдите на PHP 5.6, пока он не станет полностью совместимым. 👍

@JediKev

Люди, которых я знаю, по-прежнему предпочитают PHP 5.6, а не PHP 7 ...

Я также знаю людей, которые катаются на лошадях. Поддержка PHP 5.6 была завершена в январе, обновления безопасности завершатся в следующем году.

Приложил патчи, теперь вроде все работает. Но меня это беспокоит :)

Вы не должны волноваться. Дела становятся лучше. Последние два года были непростыми для пользователей osticket (и, я думаю, особенно для тех, кто пользовался osticket). Один из основных разработчиков (greezybacon, очень дружелюбный, всегда готовый помочь и умелый кодер!) Покинул проект, и потребовалось некоторое время, чтобы найти новых разработчиков, которые могли бы хорошо поддержать проект и заполнить оставшийся у него большой пробел. Это на какое-то время замедлило развитие. Но когда вы смотрите на общую картину, вы видите на github, что скорость разработки растет. И грядут большие изменения (например, полное обновление api, функция настраиваемых очередей -> доступна как альфа).

Также новые умелые участники сообщества, такие как clonemeagain https://github.com/clonemeagain или Micke1101 https://github.com/Micke1101 , внесли много интересных вещей для сообщества с помощью своих плагинов. Они также помогают многим пользователям форума своими хорошими знаниями. ntozier модератор форума помог (и помогает) очень многим людям за все годы. Но людям нелегко помочь им. Они не читают инструкции, забывают важную информацию, иногда не умеют хорошо общаться или очень невежливо.

Это непросто увидеть, если вы сосредоточены только на мелких деталях, например, на одном отчете о проблеме. Есть так много отчетов о проблемах. Многие из них старые, плохо написанные, дублированные и так далее. В этих джунглях сложно уследить за вещами.

У многих есть много желаний, и не так много людей помогают проекту. Большинство из них видят только свою точку зрения и не заинтересованы в помощи другим. Но это мешает такой небольшой команде выполнить все желания в сроки, которых они ожидают. Я не знаю ни одного проекта службы поддержки с открытым исходным кодом, который был бы столь же мощным и над которым работало бы столько хороших людей!

Всего два цента ;-)

Если что-то звучит странно, то вот мое оправдание:
Я не являюсь носителем английского языка и в основном использую инструменты глубокого обучения, подобные этому https://www.deepl.com/translator . Привет из Кельна (Да, это большой город в Германии со всеми беженцами. Большинство из них милые, не верьте своему президенту. Он сплиттер).

Когда я вношу изменения, отмеченные solsticesurfer 3 октября, всплывающее окно «Назначить» становится белой пустой полосой / окном. Смотри приложение.

Debian Buster x64
4.13.13-1

2017-12-05 12_48_01-osticket __ staff control panel

@jonshado Они работали раньше? Если да, то я бы сказал, что вы сделали это неправильно. Я запустил этот патч в своей производственной системе и не получил вашего результата. Если нет, то у вас проблема с AJAX, которая не имеет ничего общего с этим патчем.

@ntozier
Интересно. Я вернулся прямо сейчас, так как дважды проверил и правильно заменил строки в предыдущем сообщении, показывающие разницу. Я включил сюда файлы.

Мы вышли в эфир в пятницу, поэтому многие из этих элементов появляются только сейчас, как моя команда подозревает в системе.

У меня нет других проблем с системой, о которых я знаю функционально. Однако, глядя на мою системную информацию, он не верит, что я установил cgi.fix_pathinfo в 1, хотя я сделал это в php.ini.

Я включил системную информацию, файлы php.ini и forms.php, которые я пытался редактировать. Я все еще ищу причину, по которой ost не распознает изменения php.ini.

Информация о сервере

Версия osTicket | v1.10.1 (9ae093d) - Актуально
Программное обеспечение веб-сервера | Apache / 2.4.29 (Debian)
Версия MySQL | 10.1.29
Версия PHP | 7.0.25-1

gdlib | Используется для обработки изображений и печати PDF
imap | Используется для получения электронной почты
xml | XML API
xml-dom | Используется для обработки электронной почты HTML
json | Повышает производительность создания и обработки JSON
mbstring | Настоятельно рекомендуется для контента на языках, отличных от западноевропейских.
фар | Настоятельно рекомендуется для плагинов и языковых пакетов.
международный | Настоятельно рекомендуется для контента на языках, отличных от западноевропейских.
fileinfo | Используется для определения типов файлов для загрузки
APCu | Повышает общую производительность
Zend Opcache | Повышает общую производительность

cgi.fix_pathinfo |
date.timezone | Америка / Нью-Йорк

Схема | osticket_db (локальный)
Используемое пространство | 5,14 МБ
Место для вложений | 0,00 МБ
Часовой пояс | EST (интерпретируется как Америка / Нью-Йорк)

shared.zip

после внесения изменений в php.ini необходимо перезапустить Apache. Ты сделал это?

@ntozier Да, есть. Я также полностью перезапустил систему. Судя по другим сообщениям сообщества, поскольку установка php выполняется как модуль apache, предупреждение в разделе информации не исчезнет, ​​поэтому я не думаю, что это повлияет.

Остальная часть установки выглядит работоспособной. Меня беспокоит то, что эти ошибки мешают правильной работе cron. В моем журнале cron ничего нет. Я собираюсь отключить загрузку через панель администратора (так что это должна быть только проверка cron для почты) и, надеюсь, я увижу, что электронные письма загружаются.

Здесь та же проблема. Не могу понять, что это. Но так можно снова работать с системой.

/var/www/html/include/class.forms. php: 4339

 function render($staff=true, $title=false, $options=array()) {

//        switch(strtolower($options['template'])) {
//        case 'simple':
            $inc = STAFFINC_DIR . 'templates/dynamic-form-simple.tmpl.php';
//            break;
//        default:
//            throw new Exception(sprintf(__('%s: Unknown template style %s'),
//                        'FormUtils', $options['template']));
//        }

        $form = $this;
        include $inc;
    }

@ossd для меня перевод отдела также имел ту же проблему, что и пустое окно агента. Похоже, в нем использовался тот же код, что и в окне агента, поэтому я применил ваше исправление к разделу передачи, и оно сработало.

Я просто надеюсь, что это больше ничего не сломает!

включить / class.forms. php: 4462

function render($staff = true, $title = false, $options = Array()) {

//        switch(strtolower($options['template'])) {
//        case 'simple':
            $inc = STAFFINC_DIR . 'templates/dynamic-form-simple.tmpl.php';
//            break;
//        default:
//            throw new Exception(sprintf(__('%s: Unknown template style %s'),
//                        'FormUtils', $options['template']));
//        }

        $form = $this;
        include $inc;

}

Какие-нибудь окончательные исправления для этого предупреждения? Или может кто-нибудь поделится рабочим патчем?

@iprok

Проблема должна быть устранена с помощью этого запроса на перенос, но только для серии 1.11.x . Вы можете попробовать его на 1.10.x но он _может_ что-нибудь сломать (не знаю; не тестировал).

Ваше здоровье.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги