Kesalahan inisiasi Yii2 pada PHP7

Saya mempunyai masalah ketika saya mencoba mengalihkan proyek saya dari lingkungan dev ke prod, proyek tersebut adalah repositori git. Saya mendorong ke server saya, sekarang saya perlu beralih ke produksi dan saya mencoba menjalankanphp init di server tetapi sepanjang waktu saya menerima kesalahan yang sama:

Parse error: syntax error, unexpected T_FUNCTION in /my/root/path/init on line 70

di mana /my/root/path/ adalah jalur dasar tempat saya memasukkan kode.

Adakah yang tahu tentang kesalahan ini?


person MarBer    schedule 17.11.2016    source sumber
comment
Tunjukkan kode di sekitar baris 70   -  person Bizley    schedule 17.11.2016
comment
Maaf, ini kodenya: array_walk($skipFiles, function(&$value) use($env, $root) { $value = "$root/$value"; }); seperti yang saya lihat sesuai dengan dokumentasi PHP   -  person MarBer    schedule 17.11.2016
comment
Apa versi PHP di server target?   -  person Bizley    schedule 17.11.2016
comment
Versinya adalah PHP 7.0   -  person MarBer    schedule 17.11.2016


Jawaban (1)


Berdasarkan jawaban dan komentar saya sebelumnya:

Mencoba

array_walk($skipFiles, function(&$value, $key, $data) {
    $value = $data[1] . '/' . $value;
}, [$env, $root]);

@Marber: Kembalikan kesalahan yang sama, solusi serupa adalah function resolveBug($value) { $value = "$root/$value"; } array_walk($skipFiles, resolveBug($value)); dan ini menyelesaikan bug tetapi prosedur menghasilkan kesalahan lain pada baris 81: Parse error: syntax error, unexpected '['... and the code is $callbacks = ['setCookieValidationKey', 'setWritable', 'setExecutable', 'createSymlink'];

Saya kira ada PHP 7 di sisi CGI dan CLI adalah PHP ‹ 5.3 dan itulah mengapa perintah konsol tidak berfungsi.

Periksa versi PHP konsol Anda dengan menjalankan

php -v

di konsol.

person Bizley    schedule 17.11.2016
comment
Kembalikan kesalahan yang sama, solusi serupa adalah function resolveBug($value) { $value = "$root/$value"; } array_walk($skipFiles, resolveBug($value)); dan ini menyelesaikan bug tetapi prosedur menghasilkan kesalahan lain pada baris 81: Parse error: syntax error, unexpected '['... dan kodenya adalah $callbacks = ['setCookieValidationKey', 'setWritable', 'setExecutable', 'createSymlink']; - person MarBer; 17.11.2016
comment
Terima kasih atas jawabannya, sekarang saya tahu masalahnya, saya telah membuat aplikasi di server dengan CGI PHP 7.0 tetapi ketika saya menjalankan php init saya pikir eksekusinya ditangani oleh php 5.2.17, versi dikembalikan oleh php -v. Terima kasih atas dukungannya! - person MarBer; 17.11.2016