首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >棘轮服务器实例化:“不支持声明'strict_types'”

棘轮服务器实例化:“不支持声明'strict_types'”
EN

Stack Overflow用户
提问于 2018-09-05 04:18:24
回答 1查看 2.4K关注 0票数 1

我有一个棘轮应用程序运行顺利,在我的windows本地机器与PHP version: 7.1.8

我尝试用PHP version 5.5.9zmq installed version : 4.0.4在linux部署服务器上安装zmq和php绑定。

下面是在服务器上实例化服务器脚本时遇到的错误:

代码语言:javascript
复制
org@ktm /var/www/html/project_dir (pusher)$ php index.php "/report-test"

PHP Warning:  Unsupported declare 'strict_types' in /var/www/html/Test_Gbd_Portal/gbdportal-new/vendor/evenement/evenement/src/Evenement/EventEmitter.php on line 1
PHP Warning:  Unsupported declare 'strict_types' in /var/www/html/Test_Gbd_Portal/gbdportal-new/vendor/evenement/evenement/src/Evenement/EventEmitterInterface.php on line 1
PHP Warning:  Unsupported declare 'strict_types' in /var/www/html/Test_Gbd_Portal/gbdportal-new/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php on line 1
PHP Parse error:  syntax error, unexpected ':', expecting ';' or '{' in /var/www/html/Test_Gbd_Portal/gbdportal-new/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php on line 93
HTTP Fatal error: syntax error, unexpected ':', expecting ';' or '{' (GET /report-test)
<!DOCTYPE html>

这里是composer.json file的一部分

代码语言:javascript
复制
"require": {
"phpmailer/phpmailer": "5.2.9",
"phpoffice/phpexcel": "1.8.0",
"raveren/kint":"1.0.x-dev",
"jaspersoft/rest-client": "dev-master",
"cboden/ratchet": "dev-master",
"react/zmq": "dev-master"
},

“最小稳定度”:"dev“

composer.lock

代码语言:javascript
复制
"name": "react/zmq",
        "version": "dev-master",
        "source": {
            "type": "git",
            "url": "https://github.com/friends-of-reactphp/zmq.git",
            "reference": "13dec0bd2397adcc5d6aa54c8d7f0982fba66f39"
        },
        "dist": {
            "type": "zip",
            "url": "https://api.github.com/repos/friends-of-reactphp/zmq/zipball/13dec0bd2397adcc5d6aa54c8d7f0982fba66f39",
            "reference": "13dec0bd2397adcc5d6aa54c8d7f0982fba66f39",
            "shasum": ""
        },
        "require": {
            "evenement/evenement": "^3.0 || ^2.0",
            "ext-zmq": "*",
            "php": ">=5.4.0",
            "react/event-loop": "^1.0 || ^0.5 || ^0.4"
        },
        "require-dev": {
            "ext-pcntl": "*",
            "phpunit/phpunit": "~4.8.35 || ~5.7 || ~6.4"
        },
        "type": "library",
        "autoload": {
            "psr-4": {
                "React\\ZMQ\\": "src"
            }
        },

在这些文件中,问题似乎在于:

代码语言:javascript
复制
vendor/.../src/Evenement\:
<?php declare(strict_types=1);

namespace Evenement;

class EventEmitter implements EventEmitterInterface
{
    use EventEmitterTrait;
}

与其他两个文件类似,其中包含以下内容:declare(strict_types=1)

PHP似乎可以使用eventement/eventement包,因为

代码语言:javascript
复制
"require": {
            "evenement/evenement": "^3.0 || ^2.0",
            "ext-zmq": "*",
            "php": ">=5.4.0",
            "react/event-loop": "^1.0 || ^0.5 || ^0.4"
        },

它应该在php >=5.4.0上工作,而服务器上有php5.5.9

我不知道问题出在哪里。

EN

回答 1

Stack Overflow用户

发布于 2018-09-05 13:09:08

看起来您已经安装了evenement/evenement:3.0,这需要>=7.0。我猜您正在使用与运行应用程序不同的PHP版本更新您的依赖项。如果使用PHP7.1运行composer update,它将安装在PHP7.1上工作的依赖项。我建议在您的platform中配置composer.json,以强制安装PHP5.5的依赖项,而不管本地PHP版本如何。

代码语言:javascript
复制
"config": {
    "platform": {
        "php": "5.5.9"
    }
},

您还可以在应用程序的evenement/evenement:3.0约束下禁止使用composer.json --如果您希望在PHP5上运行应用程序,安装3.0行没有什么意义:

代码语言:javascript
复制
"evenement/evenement": "^2.0"

但是使用platform更可靠--这个问题可能也会出现在其他包中,手动管理这个问题可能会带来很大的痛苦。

顺便说一句:你知道PHP5.5.9真的很老了,5.5行也不再受支持了?您至少应该升级到PHP5.6。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52176996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档