Inflector 中的 FatalErrorException.php第 265 行:语法错误、意外的“:”、预期的“;”或“{”

2022-08-30 18:01:56

我去更新作曲家使用

composer update

更新后出现以下错误:

Inflector 中的 FatalErrorException.php第 265 行:语法错误、意外的“:”、预期的“;”或“{”

请协助

提前致谢

使用Laravel框架版本5.2.45

这是作曲家代码

{
    "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"
    }
}

请参阅发生错误的.php拐点的功能

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

答案 1

这是一个PHP版本问题,更新到PHP 7.0和学说/变形器将正常工作,因为学说/变形器1.20及更高版本需要PHP 7。

但是,如果您想保持当前的PHP版本,则可以通过运行以下命令来降级学说/变形器版本:

  1. 删除 composer.lock 文件

    rm -f Composer.lock

  2. 删除供应商

    rm -R -f vendor

  3. composer install

  4. 根据您的 php 版本安装原则/变形函数

    composer require doctrine/inflector:1.1.0

doctrine/inflector:1.1.0 支持 PHP 5.6 及更高版本。如果你有另一个版本的php,你可以参考这个链接


答案 2

当您搜索此文件名,然后开始比较包版本时,这一点非常明显。

您需要任何版本,因此,就目前而言,最新版本是 。这个软件包反过来需要,所以下面的任何版本,这是目前需要PHP 7.0或更高版本laravelcollective/html5.5.x"doctrine/inflector": "~1.1",2.01.3.0

如果您查看 latest 的源代码,您将看到在第 265 行设置了一个返回类型,这仅在 PHP 7.0 及更高版本中受支持。inflector.php

您使用的是 PHP 5.6.24,因此此代码在您的系统上不起作用。

修复错误的简单方法是使用与您的Laravel版本相对应的版本。这可能应该是.laravelcollective/html5.2.*


推荐