Я работаю над интеграцией CKFinder (3.1.0) с существующим приложением. Я хотел бы использовать адаптер S3 для хранения, который прекрасно работает в приложении отдельно.
Проблема, с которой я сталкиваюсь, состоит в том, что пакет загрузки для CKFinder 3.1.0 включает в себя собственный каталог библиотек поставщиков, включая AWS SDK (v2.27) — у меня есть свой собственный экземпляр AWS SDK, загруженный через composer, который является гораздо последняя версия, которая конфликтует с версией CKFinder, вызывая ошибки.
Кто-нибудь имел какой-либо успех, запускал CKFinder с его локальными файлами поставщиков вместе с библиотеками композиторов всего проекта, такими как aws-sdk-php. Я могу использовать версию 2.27 проекта aws-sdk, но это не идеально.
PHP-коннектор CKFinder 3 пока не поддерживает установку с 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
,Добавьте его в автозагрузчик composer, используя правильное пространство имен:
"autoload": {
"psr-4": {
// ...
"CKSource\\CKFinder\\": "_connector"}
}
изменять /ckfinder/core/connector/php/connector.php
использовать autoload.php
из вашего приложения.
Важный: Если вы используете AWS-S3 версия 3.x SDK в вашем приложении, то нет способа разрешить этот конфликт. CKFinder не будет работать должным образом с этой версией, поскольку AWS-SDK v3 не имеет обратной совместимости с v2.7.
Других решений пока нет …