Osticket: Peringatan tentang Deklarasi AssignmentForm dan TransferForm di php 7

Dibuat pada 13 Apr 2016  ·  30Komentar  ·  Sumber: osTicket/osTicket

Menggunakan versi pengembangan terbaru di php 7 memberikan peringatan berikut:
Peringatan: Deklarasi AssignmentForm::render($options) harus kompatibel dengan Form::render($staff = true, $title = false, $options = Array) di /opt/osticket/osTicket-develop/include/class. form.php online 4144

Peringatan: Deklarasi TransferForm::render($options) harus kompatibel dengan Form::render($staff = true, $title = false, $options = Array) di /opt/osticket/osTicket-develop/include/class. form.php online 4264

Peringatan ini mengganggu kotak dialog pop-up serta membuang spasi pada template

Diff tambalan terlampir memperbaiki peringatan ini

class.forms.php.zip

bug php

Komentar yang paling membantu

Saya juga mengalami masalah ini pada rilis stabil osTicket 1.10 saat ini. Ini mencegah kotak dialog Transfer and Assign dari rendering sebagai apa pun selain kotak putih, dan juga mencegah api/cron.php memeriksa email. Ketika saya menjalankan cron.php , itu menghasilkan pesan kesalahan ini:

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

Berikut informasi server dari Panel Admin:

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

Server menjalankan Ubuntu 16.04.2 LTS dan sepenuhnya diperbarui.

Modifikasi yang disajikan dalam permintaan tarik #3349 menyelesaikan masalah bagi saya.

Semua 30 komentar

Apakah ada alasan mengapa Anda tidak memasukkan perubahan dalam permintaan tarik?

maaf saya tidak punya git repo, saya baru saja mengedit file di sistem linux saya dengan vi..


Dari: notifikasi [email protected]
Dikirim: Rabu, 13 April 2016 10:52
Kepada: osTicket/osTicket
Cc: Bill Ritchie
Perihal: Re: [osTicket/osTicket] Peringatan tentang Deklarasi AssignmentForm dan TransferForm di php 7 (#3033)

Apakah ada alasan mengapa Anda tidak memasukkan perubahan dalam permintaan tarik?

Anda menerima ini karena Anda yang menulis utas.
Balas email ini secara langsung atau lihat di Gi tHubhttps://github.com/osTicket/osTicket/issues/3033#issuecomment -209487139

Mereka mengatakan sebuah gambar bernilai 1000 kata.

capture

Saat menggunakan osTicket 1.10 RC3 dengan PHP7 saya perhatikan hal yang sama.
Menantikan perbaikan di versi yang lebih baru.

Lihat #3349 untuk perbaikan yang berbeda

Peringatan ini masih terjadi di rilis stabil v1.10: http://osticket.com/forum/discussion/89095/v1-10-php-7-warning

dikonfirmasi ulang hari ini: di situs pengujian 1.10 saya menjalankan IIS 8.5 dan PHP 7.0.14 yang baru ditingkatkan.

Masalah yang sama pada PHP 7.1 jadi saya harus menurunkan versi ke bukan versi PHP 7 karena OsTicket memiliki masalah. Aòjadi tidak dapat masuk ke pesan area operator admin: Token CSRF valido richiesto

Masalah ini masih berlanjut di rilis stabil 1.10. Perbaikan yang disebutkan oleh @martin-rueegg membantu.

Saya juga mengalami masalah ini pada rilis stabil osTicket 1.10 saat ini. Ini mencegah kotak dialog Transfer and Assign dari rendering sebagai apa pun selain kotak putih, dan juga mencegah api/cron.php memeriksa email. Ketika saya menjalankan cron.php , itu menghasilkan pesan kesalahan ini:

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

Berikut informasi server dari Panel Admin:

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

Server menjalankan Ubuntu 16.04.2 LTS dan sepenuhnya diperbarui.

Modifikasi yang disajikan dalam permintaan tarik #3349 menyelesaikan masalah bagi saya.

@peterson-dane Bisakah Anda membagikan solusi Anda?

Saya memiliki masalah yang sama dengan konfigurasi yang hampir sama seperti yang Anda miliki.

@PrajapatiChirag Dalam file include/class.forms.php , ubah:
function render($options) {
untuk
function render($staff = true, $title = false, $options = Array()) {

Harus ada tiga kejadian.

@solsticesurfer , Terima kasih, perbaiki masalah saya di debian Stretch (9.2) juga.

Apa yang terjadi disini ? Saya memiliki bug ini juga, tetapi komentar pertama tentangnya berusia 1 1/2 tahun?

osTicket Core, v1.10.1
Rilis Stabil Terbaru, Dirilis 14 September 2017

Itu yang saya instal. Bagaimana mungkin bug tidak diperbaiki setelah 1 1/2 tahun? Terutama karena solusinya sederhana dan orang lain sudah menulis perbaikannya di sini ...

Seperti yang Anda katakan: "Rilis Stabil Terbaru, Dirilis 14 September 2017"

"Perbaiki" diposting di:
2017oct03

Terima kasih telah membuatnya jadi saya tidak perlu meninggalkan utas ini untuk menjawab pertanyaan,.

@ntozier

Perbaikan itu sudah diposting pada 2016. Komentar pertama dari 1 1/2 tahun yang lalu tentang bug ini. Saya menemukan perbaikan yang ditulis pada september 2016 di https://github.com/osTicket/osTicket/pull/3349/commits/bde15e2acec29a26c73918ae17aa0774fb5048c4

"Rilis Stabil Terbaru, Dirilis 14 September 2017"

1 1/2 tahun setelah bug ditemukan dan 1 tahun setelah solusi diposting, "Rilis Stabil" masih berisi bug.

Dan itu bukan bug yang sulit ditemukan. osTicket pada PHP 7 (standar saat ini) tidak akan berfungsi tanpa perbaikan ini.

Mungkin meninggalkan utas untuk menjawab pertanyaan akan lebih baik.

Sederhananya belum ada rilis baru. 1.10 lalu, 1.10.1 (pembaruan keamanan) sekarang. 1.11 masih belum dirilis.

Tidak ada jaminan bahwa perbaikan di utas ini akan menjadi yang akan digunakan ketika 1.11 keluar dan itu tidak mungkin karena ada beberapa perbaikan di utas ini saja dan belum digabungkan.

@ntozier

Dengan setiap balasan dari Anda, saya semakin khawatir. Dan ini juga tentang sikap.

PHP 7 adalah standar sekarang.

Ada bug, terlihat 1 1/2 tahun yang lalu untuk pertama kalinya. Ini mencegah Tiket os untuk bekerja pada PHP 7.

Dan setelah 1 1/2 tahun masih belum fix???

Itu sebabnya saya bertanya di posting pertama saya "Apa yang terjadi di sini?"

Apakah boleh menginvestasikan waktu sekarang untuk menginstal program ini, menggunakannya, dll? Apakah boleh menyarankan klien untuk menggunakan ini?

PHP 7 adalah standar sekarang.

Pernyataan ini sepenuhnya subjektif. Orang yang saya kenal masih lebih suka PHP 5.6 daripada PHP 7...

Ada bug, terlihat 1 1/2 tahun yang lalu untuk pertama kalinya. Ini mencegah Tiket os untuk bekerja pada PHP 7.

Itu tidak mencegah osTicket bekerja untuk _semua orang_ seperti yang saya tahu orang-orang yang membuatnya bekerja dengan baik dengan PHP 7 di lingkungan produksi mereka.

Dan setelah 1 1/2 tahun masih belum fix???

Seperti yang dinyatakan @ntozier, ada beberapa perbaikan untuk masalah ini di utas ini dan perlu waktu untuk memeriksanya dan menemukan yang terbaik yang tidak merusak apa pun dan memastikannya sesuai dengan gaya pengkodean kami. Plus ini bukan satu-satunya masalah di sini di halaman Github kami ... ada 1.177. Harus melihat melalui mereka semua.

Apakah boleh menginvestasikan waktu sekarang untuk menginstal program ini, menggunakannya, dll? Apakah boleh menyarankan klien untuk menggunakan ini?

Tentu saja tidak apa-apa! Jika Anda begitu khawatir atau jika PHP 7 yang dikompilasi tidak dapat menangani v1.10.1 maka cukup turunkan versi ke PHP 5.6 hingga sepenuhnya kompatibel. 👍

@JediKev

Orang yang saya kenal masih lebih suka PHP 5.6 daripada PHP 7...

Saya juga tahu orang-orang yang menunggang kuda. Dukungan untuk PHP 5.6 selesai pada bulan Januari, pembaruan keamanan akan berakhir tahun depan.

Saya menerapkan tambalan, semuanya tampak berfungsi sekarang. Tapi itu membuatku khawatir :)

Anda tidak perlu khawatir. Hal-hal menjadi lebih baik. Dua tahun terakhir tidak mudah bagi pengguna osticket (dan saya pikir terutama untuk orang-orang osticket). Salah satu pengembang utama (greezybacon, pembuat kode yang sangat ramah, selalu membantu, dan terampil!) telah meninggalkan proyek dan butuh beberapa waktu untuk menemukan pengembang baru yang dapat mendukung proyek dengan baik dan mengisi celah besar yang tersisa. Ini telah memperlambat perkembangan untuk beberapa waktu. Tapi Anda lihat di github ketika Anda melihat gambaran besar bahwa kecepatan pengembangan tumbuh. Dan perubahan besar akan datang (misalnya perombakan total api, fitur antrian khusus->tersedia sebagai alfa).

Juga anggota komunitas baru yang terampil seperti clonemeagain https://github.com/clonemeagain atau Micke1101 https://github.com/Micke1101 telah menyumbangkan banyak hal keren untuk komunitas dengan plugin mereka. Mereka juga membantu banyak pengguna di forum dengan pengetahuan yang baik. ntozier moderator forum telah membantu (dan membantu) begitu banyak orang selama bertahun-tahun. Tetapi orang tidak membuatnya mudah untuk membantu mereka. Mereka tidak membaca pedoman, mereka lupa informasi penting, kadang-kadang mereka tidak dapat berkomunikasi dengan baik atau kurang sopan.

Tidak mudah untuk melihat ini jika Anda hanya fokus pada detail kecil seperti laporan masalah tunggal. Ada begitu banyak laporan masalah. Banyak dari mereka sudah tua, buruk ditulis, digandakan dan sebagainya. Sulit untuk melacak hal-hal di hutan ini.

Banyak orang memiliki banyak keinginan, dan tidak banyak orang yang membantu proyek ini. Kebanyakan dari mereka hanya melihat sudut pandang mereka dan tidak tertarik untuk membantu orang lain. Tapi ini menyulitkan tim kecil untuk mencapai semua keinginan dalam garis waktu yang mereka harapkan. Saya tidak tahu proyek help desk open source yang sama kuatnya dan di mana begitu banyak orang baik bekerja sama!

Hanya dua sen saya ;-)

Jika ada sesuatu yang terdengar aneh, maka apakah ini alasan saya:
Saya bukan penutur asli bahasa Inggris dan kebanyakan saya menggunakan alat terjemahan pembelajaran mendalam seperti ini https://www.deepl.com/translator . Salam dari Cologne (Ya, itu kota besar di jerman dengan semua pengungsi. Kebanyakan dari mereka baik, tidak percaya presiden Anda. Dia splitter).

Ketika saya membuat perubahan yang dicatat oleh solsticesurfer pada 3 Oktober, pop-up Tetapkan menjadi bilah/jendela kosong putih. Lihat Lampiran.

Debian Buster x64
4.13.13-1

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

@jonshado Apakah mereka bekerja sebelumnya? Jika ya maka saya akan mengatakan bahwa Anda tidak melakukannya dengan benar. Saya menjalankan tambalan ini pada sistem produksi saya dan tidak mendapatkan hasil Anda. Jika tidak, maka Anda mengalami masalah AJAX yang tidak ada hubungannya dengan patch ini.

@ntozier
Menarik. Saya telah kembali untuk saat ini, karena saya melakukan pemeriksaan ulang dan telah mengganti baris dengan benar per posting sebelumnya yang menunjukkan perbedaan. Saya telah menyertakan file di sini.

Kami melakukan siaran langsung pada hari Jumat, jadi banyak item ini baru muncul sekarang saat tim saya mempelajari sistem.

Saya tidak memiliki masalah lain dengan sistem yang saya ketahui secara fungsional. Namun, melihat informasi sistem saya, tidak percaya bahwa saya telah mengatur cgi.fix_pathinfo ke 1, meskipun saya melakukannya di php.ini.

Saya telah menyertakan info sistem, php.ini dan forms.php yang telah saya coba edit. Saya masih mencari alasan mengapa ost tidak mengenali perubahan php.ini.

Informasi Server

Versi osTicket | v1.10.1 (9ae093d) — Terbaru
Perangkat Lunak Server Web | Apache/2.4.29 (Debian)
Versi MySQL | 10.1.29
Versi PHP | 7.0.25-1

gdlib | Digunakan untuk manipulasi gambar dan pencetakan PDF
gambar | Digunakan untuk mengambil email
xml | XML API
xml-dom | Digunakan untuk pemrosesan email HTML
json | Meningkatkan pembuatan dan pemrosesan kinerja JSON
mbstring | Sangat direkomendasikan untuk konten bahasa non-Eropa Barat
phar | Sangat direkomendasikan untuk plugin dan paket bahasa
intl | Sangat direkomendasikan untuk konten bahasa non-Eropa Barat
info file | Digunakan untuk mendeteksi jenis file untuk unggahan
APcu | Meningkatkan kinerja secara keseluruhan
Zend Opcache | Meningkatkan kinerja secara keseluruhan

cgi.fix_pathinfo |
tanggal.zona waktu | Amerika/New_York

Skema | osticket_db (host lokal)
Ruang yang Digunakan | 5.14 MiB
Ruang untuk Lampiran | 0,00 MiB
Zona waktu | EST (Diterjemahkan sebagai Amerika/New_York)

dibagikan.zip

setelah Anda membuat perubahan pada php.ini Anda perlu me-restart Apache. Apakah Anda melakukan itu?

@ntozier Ya, saya punya. Saya juga telah me-restart sistem sepenuhnya. Tampaknya, berdasarkan posting komunitas lain, bahwa karena instalasi php berjalan sebagai modul apache, peringatan di bagian info tidak akan hilang, jadi saya rasa itu tidak berdampak.

Sisa instalasi tampak fungsional. Kekhawatiran saya adalah bahwa kesalahan ini mencegah pekerjaan cron berjalan dengan benar. Tidak ada apa pun di log cron saya. Saya akan mematikan pengambilan melalui panel admin (jadi seharusnya hanya cron memeriksa email) dan mudah-mudahan saya akan melihat email tertelan.

Masalah yang sama disini. Tidak tahu apa itu. Tapi begitulah cara Anda bisa bekerja dengan sistem lagi.

/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 bagi saya, transfer departemen juga memiliki masalah yang sama dengan jendela agen kosong. Sepertinya itu menggunakan kode yang sama dengan jendela agen, jadi saya menerapkan perbaikan Anda ke bagian transfer dan berhasil.

Saya hanya berharap ini tidak merusak apa pun!

sertakan/kelas.formulir. 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;

}

Adakah perbaikan terakhir untuk peringatan ini? Atau mungkin seseorang dapat berbagi patch kerja?

@iprok

Masalah harus diperbaiki dengan permintaan tarik ini tetapi hanya untuk seri 1.11.x . Anda dipersilakan untuk mencobanya pada 1.10.x tetapi _mungkin_ merusak sesuatu (tidak tahu; belum diuji).

Bersulang.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat