В настоящее время я работаю с Wordpress, PHP и Docker. Я пытаюсь интегрировать плагин s3-uploads . S3-uploads использует aws-sdk-php
, который также используется другим подключением mu-plugins/send-me-nyc
, которое создает конфликт между ними.
Когда я запускаю docker-wp s3-uploads verif
, я получаю следующую ошибку
PHP Fatal error: Cannot redeclare Aws\manifest() (previously declared in /var/www/html/vendor/aws/aws-sdk-php/src/functions.php:342) in /var/www/html/wp-content/mu-plugins/send-me-nyc/third-party/AWS/Aws/functions.php on line 320
Fatal error: Cannot redeclare Aws\manifest() (previously declared in /var/www/html/vendor/aws/aws-sdk-php/src/functions.php:342) in /var/www/html/wp-content/mu-plugins/send-me-nyc/third-party/AWS/Aws/functions.php on line 320
Таким образом, сообщения об ошибках Cannot redeclare Aws\manifest()
могут быть решены решением, использующим ! Function_exist , как указано в связанном сообщении. Тем не менее, я считаю, что это неправильный способ решить эту проблему, так как это будет писать прямо в коде aws-sdk-php
. Подобный патч был отклонен от администраторов aws-sdk-php
, как показано в этом выпуске .
Как мне решить эту проблему?
AWS-СДК-PHP / composer.json:
{
"name": "aws/aws-sdk-php",
"homepage": "http://aws.amazon.com/sdkforphp",
"description": "AWS SDK for PHP - Use Amazon Web Services in your PHP project",
"keywords": ["aws","amazon","sdk","s3","ec2","dynamodb","cloud","glacier"],
"type": "library",
"license": "Apache-2.0",
"authors": [
{
"name": "Amazon Web Services",
"homepage": "http://aws.amazon.com"
}
],
"support": {
"forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
"issues": "https://github.com/aws/aws-sdk-php/issues"
},
"require": {
"php": ">=5.5",
"guzzlehttp/guzzle": "^5.3.3|^6.2.1",
"guzzlehttp/psr7": "^1.4.1",
"guzzlehttp/promises": "~1.0",
"mtdowling/jmespath.php": "~2.2",
"ext-pcre": "*",
"ext-json": "*",
"ext-simplexml": "*"
},