2017-02-21 9 views
0

я устанавливаю Laravels красноречивого вне Laravel среды, как так ...композитора добавляет ... в красноречивых классах

"require": { 
    "php": "^5.6 || ~7.0.0 || ~7.1.0", 
    "ext-gd": "*", 
    "ext-mbstring": "*", 
    "psr/log": "^1.0", 
    "setasign/fpdi": "1.6.*", 
    "illuminate/database": "*" 
}, 

Тогда я сделал composer install

Он отлично работает локально, но когда я положил его на сервер я получаю ошибку

syntax error, unexpected '.'

по какой-то причине, когда были импортированы классы, они были импортированы с многими классов глядя, как этот

public function __call($method, $parameters) 
{ 
    if (in_array($method, ['increment', 'decrement'])) { 
     return $this->$method(...$parameters); 
    } 

    return $this->newQuery()->$method(...$parameters); 
} 

Они добавляют ... к много волшебных вызовов методов. На моей машине ничего не ломается, но серверу это не нравится. что с этим?

, если удалить их, то ОРМ перестает вообще

+1

Какую версию PHP вы используете на сервере? Это вариационный оператор, введенный в 5.6. [src] (http://php.net/functions.arguments#functions.variable-arg-list) – aynber

+0

Версия 5.5.17. Я пытаюсь найти более старую версию eloquent – numerical25

+0

Похоже, что Laravel только начал требовать 5.6. * Начиная с версии 5.3 ([5.2 нужен только 5.5.9] (https://laravel.com/docs/5.2/installation# сервер-требования)), поэтому, если вы можете найти, какую версию красноречивого Laravel 5.2 использовали, вы должны использовать ее. – Samsquanch

ответ

1

работая ... или оператор splat был введен в PHP 5.6. Вероятно, сервер имеет более старую версию PHP.

PHP 5.6 "new features" notes.

EDIT:.

Для дальнейшего ответа на ваш вопрос, красноречивый 5.2 * требуется только PHP> = 5.5.9, так что вы должны быть в состоянии использовать the latest 5.2 release.

+0

Вы правы. Версия 5.5.17. Вы случайно не знаете, какая версия работает для версии 5.5? – numerical25

+0

@ numerical25 Все подсвеченные компоненты используют те же номера версий, что и структура Laravel, поэтому '5.2. *' Должен работать на вас. –

+0

5.2. * Кажется, все еще немного старше. Сервер имеет PHP 5.5.17 – numerical25

Смежные вопросы