Поддержка Проблемы и решения Подключение библиотек в плагине

  • Решено wapster

    (@wapster)


    Приветствую.

    Пишу плагин работающий с API одной из бирж контента.
    Это самое API требует в работе следующие пакеты:
    http://pear.php.net/package/Net_URL2
    http://pear.php.net/package/HTTP_Request2/
    http://pear.php.net/package/XML_RPC2/

    Скачал их и положил в папку с плагином.

    Скрипты подключаются таким образом:

    require_once ‘XML/RPC2/CachedClient.php’;

    Но WordPress ругается на то, что файлы не подключаются.

    Создал константу и попытался подключать ее в нужных файлах библиотек (NET, HTTP2, XML_RPC2)

    define( ‘PLUGIN_ROOT’, plugin_dir_path( __FILE__ ) );

    Но это не помогло.

    Как «показать» WordPress, чтобы он использовать такие пути: require_once ‘XML/RPC2/CachedClient.php’

Просмотр 10 ответов — с 1 по 10 (всего 10)
  • вы путаете.
    это пакеты требуются для php.
    и у большинства хостеров включаются галочками в настройках php.
    напрямую вам ничего подключать не надо, да и не будет это так работать.

    Автор wapster

    (@wapster)

    да и не будет это так работать

    А как будет работать?
    В какую сторону «копать»?

    еще раз — это расширения для php.
    а не для клиентских скриптов.

    поэтому либо их устанавливайте галочками в панели управления хостера, либо (если там нет таких расширений) устанавливайте их вручную. там по ссылкам даже сказано как:
    pear install HTTP_Request2

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Но WordPress ругается на то, что файлы не подключаются.

    Как именно ругается?

    Автор wapster

    (@wapster)

    еще раз — это расширения для php.
    а не для клиентских скриптов.

    Это я понял.

    Как именно ругается?

    Fatal error: require_once(): Failed opening required ‘/opt/lampp/htdocs/contentmonster/libs/XML/RPC2/Client.php’ (include_path=’.:/opt/lampp/lib/php’) in /opt/lampp/htdocs/site.ru/libs/XML/RPC2/CachedClient.php on line 303

    303 строка:
    require_once(PLUGIN_ROOT . ‘XML/RPC2/Client.php’);

    Библиотеки положил в папку libs в корне сайта и константну изменил:
    define( 'PLUGIN_ROOT', ABSPATH . 'libs/' );

    Автор wapster

    (@wapster)

    поэтому либо их устанавливайте галочками в панели управления хостера, либо (если там нет таких расширений)

    Это если VPS, а что делать если обычный «шаред»?

    на шареде обычно галочками модули для php устанавливаются.
    но вообще странно, что ваша биржа требует установки нестандартных модулей, недоступных большинству пользователей.

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    еще раз — это расширения для php.
    а не для клиентских скриптов.

    http://pear.php.net/packages.php — это именно библиотеки для скриптов.

    Расширения — это http://php.net/manual/en/extensions.alphabetical.php.

    Модератор Yui

    (@fierevere)

    永子

    еще раз — это расширения для php.
    а не для клиентских скриптов.

    нет.
    расширение PHP — скомпилированый бинарный обьект, ELF (.so) или Windows .DLL
    но никак не набор .php скриптов которыми названные библиотеки являются

    руководство по инсталляции на шаред хостинге библиотек PEAR
    https://pear.php.net/manual/en/installation.shared.php
    также там описано как использовать пользовательские папки для установки

    PS https://www.a2hosting.com/kb/developer-corner/php/pear-packages
    более короткая и понятная версия

    • Ответ изменён 7 лет назад пользователем Yui. Причина: ps
    Автор wapster

    (@wapster)

    Да, спасибо Сергей, Flector и конечно же Yui

    на шареде обычно галочками модули для php устанавливаются

    Увидел в настройках у хостера. Раньше как-то нужны не было в раздел «Программное обеспечение и службы» заглядывать.

    Пользуюсь двумя хостерами, один не прошел «проверку» — подключение библиотек не доступно.

    • Ответ изменён 7 лет назад пользователем wapster.
Просмотр 10 ответов — с 1 по 10 (всего 10)
  • Тема «Подключение библиотек в плагине» закрыта для новых ответов.