web-dev-qa-db-fra.com

FatalErrorException dans Inflector.php ligne 265: erreur de syntaxe, inattendu ':', attente de ';' ou '{'

Je suis allé mettre à jour composer en utilisant

composer update

après la mise à jour ayant l'erreur suivante:

FatalErrorException dans Inflector.php ligne 265: erreur de syntaxe, inattendu ':', attente de ';' ou '{'

Veuillez aider

Merci d'avance

Utilisation de Laravel Framework version 5.2.45

voici le code composer

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": ">=5.5.9",
        "laravel/framework": "5.2.*",
        "laravelcollective/html": "*.*"
    },
    "require-dev": {
        "fzaninotto/faker": "~1.4",
        "mockery/mockery": "0.9.*",
        "phpunit/phpunit": "~4.0",
        "symfony/css-selector": "2.8.*|3.0.*",
        "symfony/dom-crawler": "2.8.*|3.0.*"
    },
    "autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "App\\": "app/"
        },
        "files": [
            "app/Libraries/Functions.php"
        ]
    },
    "autoload-dev": {
        "classmap": [
            "tests/TestCase.php"
        ]
    },
    "scripts": {
        "post-root-package-install": [
            "php -r \"copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "php artisan key:generate"
        ],
        "post-install-cmd": [
            "Illuminate\\Foundation\\ComposerScripts::postInstall",
            "php artisan optimize"
        ],
        "post-update-cmd": [
            "Illuminate\\Foundation\\ComposerScripts::postUpdate",
            "php artisan optimize"
        ]
    },
    "config": {
        "preferred-install": "dist"
    }
}

S'il vous plaît voir la fonction de inflector.php où l'erreur se produit

public static function tableize(string $Word) : string
    {
        return strtolower(preg_replace('~(?<=\\w)([A-Z])~', '_$1', $Word));
    }
15
Abdul Qadir

C’est un PHP, mise à jour vers PHP 7.0 et doctrine/inflector fonctionneront correctement) car doctrine/inflector 1.20 et versions ultérieures nécessitent PHP 7.

Mais si vous voulez rester à votre version actuelle PHP), vous pouvez rétrograder la version doctrine/inflector en exécutant les commandes suivantes:

  1. Supprimer le fichier composer.lock

    rm -f Composer.lock

  2. Supprimer le vendeur

    rm -R -f vendor

  3. composer install

  4. Installez la doctrine/inflector selon votre version de php

    composer require doctrine/inflector:1.1.0

doctrine/inflector: 1.1.0 prend en charge PHP 5.6 et plus. Si vous avez une autre version de php, vous pouvez vous référer à ce lien

49
Yogesh Nogia

Je travaille sur:

  • Laravel 5.1
  • PHP 5.6.36

Le nom de ma table est comme ceci: "test_meetings"

J'ai résolu l'erreur en spécifiant dans testMeeting.php Modéliser le nom de la table:

protected $table = 'test_meetings';
5
Alessandro

Il est très évident de rechercher ce nom de fichier, puis de comparer les versions de paquet.

Vous avez besoin de laravelcollective/html dans n’importe quelle version, donc, pour l’instant, la dernière version est 5.5.x. Ce paquet à son tour nécessite "doctrine/inflector": "~1.1",, donc toute version inférieure à 2.0, qui est actuellement 1.3.0et requiert PHP 7.0 ou supérieur.

Si vous regardez la source du dernier inflector.php, vous verrez qu'un type de retour est défini sur la ligne 265, qui n'est prise en charge que dans PHP 7.0 et plus.

Vous utilisez PHP 5.6.24, ce code ne fonctionnera donc pas sur votre système.

Le moyen simple de corriger votre erreur consiste à utiliser le laravelcollective/html version correspondant à votre version Laravel. Ce qui devrait probablement être 5.2.*.

4
Jerodev

Au cas où cela aiderait quelqu'un. J'avais un problème similaire. Mon doctrine/inflecteur s'attendait à php> = 7 pour une raison quelconque (c'est ce que l'on devait trouver dans composer.jon de doctrine/inflecteur). Et cela même si j'avais suivi les instructions pour installer laravel 5.4.

Iran rm -f Composer.lock et rm -R -f vendor puis a fait un composer install après vagrant ssh vers la machine virtuelle Homestead, qui utilisait PHP 5.6.8 (à l’origine, j’avais exécuté composer à partir de mon terminal MacBook, qui utilisait PHP 7)]

Cela a éclairci les problèmes.

1
cw24

après

composer install

Essayez ceci après avoir exécuté la composer update:

php artisan cache:clear
0
mohamed elshazly