inflector php,关于Inflector.php第265行中的laravel:FatalErrorException:语法错误,意外出现“:”,期望为“;” 要么 ‘{‘...

我去更新作曲家使用

composer update

更新后出现以下错误:

FatalErrorException in Inflector.php line 265: syntax error,

unexpected ':', expecting ';' or '{'

请协助

提前致谢

使用Laravel Framework 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"

}

}

请在发生错误的地方查看inflector.php函数

public static function tableize(string $word) : string

{

return strtolower(preg_replace('~(?<=\\w)([A-Z])~', '_$1', $word));

}

参考的可能重复-PHP中的此错误是什么意思?

错误出现在inflector.php文件中的vendor / doctrine / inflector / lib中

@jerodev使用PHP 5.6.24版

这是一个PHP版本的问题,更新到PHP 7.0,而doctrine / inflector 1.20及更高版本需要PHP 7,才能正常运行。

但是,如果您想保持当前的PHP版本,可以通过运行以下命令来降级doctrine / inflector版本:

删除composer.lock文件

rm -f Composer.lock

删除供应商

rm -R -f vendor

composer install

根据您的php版本安装主义/变形者

composer require doctrine/inflector:1.1.0

doctrine / inflector:1.1.0支持PHP 5.6及更高版本。如果您有其他版本的php,则可以参考此链接

如何更改php版本:stackoverflow.com/questions/42619312/

非常感谢你。 在PHP版本5.6上使用Laravel 5.0时,我遇到了类似的问题。 这成功了。

非常感谢您,它对我的工作。

我正在尝试:

Laravel 5.1

PHP 5.6.36

我的表名称是这样的:" test_meetings"

我解决了在testMeeting.php模型表名中指定的错误:

protected $table = 'test_meetings';

当您搜索此文件名然后开始比较软件包版本时,这确实很明显。

您需要任何版本的laravelcollective/html,因此,目前,最新版本为5.5.x。该软件包反过来需要"doctrine/inflector":"~1.1",,因此2.0以下的任何版本(当前为1.3.0)都需要PHP 7.0或更高版本。

如果查看最新的inflector.php的来源,则会看到在第265行设置了返回类型,这仅在PHP 7.0及更高版本中受支持。

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

解决错误的简单方法是使用与Laravel版本相对应的laravelcollective/html版本。可能应该是5.2.*。

感谢您使用PHP版本7.1.1

那对我不起作用。 我有一个在PHP 5.6上运行的Laravel 5应用程序。 Composer需要laravelcollective / html 5.0版。 版本5.0的Inflector在PHP 5.6上不起作用。 但是Laravel 5.0s的错误处理在PHP 7.0上不起作用。 完全捕获22。

万一这对任何人都有帮助。我有一个类似的问题。由于某些原因,我的学说/变形器期望php> = 7(这是从学说/变形器中的composer.json中找到的)。即使我已按照说明安装laravel 5.4,也是如此。

我运行了rm -f Composer.lock和rm -R -f vendor,然后在vagrant ssh之后对使用php 5.6.8的homestead VM进行了composer install(最初我是从MacBook终端运行composer的,而后者使用的是php 7)

这解决了问题。

composer install

运行作曲家更新后,请尝试以下操作:

php artisan cache:clear

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值