Я работаю над интеграцией CKFinder (3.1.0) с существующим приложением. Я бы хотел использовать адаптер S3 для хранения, который отлично работает изолированно в приложении.
Проблема, с которой я столкнулась, заключается в том, что пакет загрузки для CKFinder 3.1.0 включает в себя собственный каталог поставщиков библиотек, включая AWS SDK (v2.27). У меня есть собственный экземпляр AWS sdk, загружаемый через композитор, который намного больше недавняя версия, которая противоречит версии CKFinder, вызывая ошибки.
Имеет ли кто-либо успех запуск CKFinder с локальными файлами поставщика вместе с проектно-технологическими библиотеками, такими как aws-sdk-php. Я могу конвертировать в версию 2.27 версии aws-sdk, но это не идеально.
CKFinder 3 PHP-коннектор еще не поддерживает установку с Composer, но вы можете изменить файл composer.json
чтобы использовать его зависимости от приложения.
Добавьте следующие зависимости коннектора к вашему composer.json
(действительны для CKFinder 3.1.0):
"symfony/http-kernel": ">=2.4,<=2.8-dev",
"symfony/event-dispatcher": ">=2.4,<=2.8-dev",
"symfony/http-foundation": ">=2.4,<=2.8-dev",
"pimple/pimple": "~3.0",
"monolog/monolog": "~1.4,>=1.4.1",
"league/flysystem": "1.0.14",
"league/flysystem-dropbox": "1.0.0",
"dropbox/dropbox-sdk": "~1.1.1",
"aws/aws-sdk-php": "~2.7.17",
"league/flysystem-aws-s3-v2": "1.0.3",
"league/flysystem-cached-adapter": "1.0.2"
Извлеките код коннектора из пакета CKFinder в отдельный каталог и сделайте его загружаемым в Composer. Предполагая, что код будет находиться в _connector
:
/ckfinder/core/connector/php/vendor/cksource/ckfinder/src/CKSource/CKFinder
в дистрибутив ZIP в _connector
.Добавьте его в автозагрузчик композитора, используя правильное пространство имен:
"autoload": {
"psr-4": {
// ...
"CKSource\\CKFinder\\": "_connector"
}
}
Alter /ckfinder/core/connector/php/connector.php
использовать autoload.php
из приложения.
Важно: если вы используете AWS-S3 версии 3.x SDK в своем приложении, тогда нет способа разрешить этот конфликт. CKFinder не будет работать должным образом с этой версией, так как AWS-SDK v3 не обратно совместим с v2.7.