CKFinder и конфликт версий композитора

1

Я работаю над интеграцией CKFinder (3.1.0) с существующим приложением. Я бы хотел использовать адаптер S3 для хранения, который отлично работает изолированно в приложении.

Проблема, с которой я столкнулась, заключается в том, что пакет загрузки для CKFinder 3.1.0 включает в себя собственный каталог поставщиков библиотек, включая AWS SDK (v2.27). У меня есть собственный экземпляр AWS sdk, загружаемый через композитор, который намного больше недавняя версия, которая противоречит версии CKFinder, вызывая ошибки.

Имеет ли кто-либо успех запуск CKFinder с локальными файлами поставщика вместе с проектно-технологическими библиотеками, такими как aws-sdk-php. Я могу конвертировать в версию 2.27 версии aws-sdk, но это не идеально.

Теги:
composer-php
ckfinder

1 ответ

3

CKFinder 3 PHP-коннектор еще не поддерживает установку с Composer, но вы можете изменить файл composer.json чтобы использовать его зависимости от приложения.

  1. Добавьте следующие зависимости коннектора к вашему 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"
    
  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.

  • 0
    Спасибо за ваше предложение, я использую AWS SDK v3 для своего приложения, так что это проблема. Пока мне удалось заставить его работать, но только путем изменения кода адаптера CKFinder S3, который не идеален для целей обновления.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню