Загрузить скрипты композитора внутри класса или функции - PullRequest
1 голос
/ 01 июля 2019

Я пытаюсь загрузить скрипт композитора в мой класс или функцию. Но продолжает получать ошибку:

Parse error: syntax error, unexpected 'use' (T_USE) in 

Я искал в переполнении стека и в Google и читал что-то о пространствах имен? Но как я могу реализовать сценарий композитора в классе или функции?

function.php, загружает файл сценария autoload.php:

 require(TEMPLATEPATH.'/vendor/autoload.php');

Сценарий пользовательской функции:

function addToMailchimp($email) {


  use \DrewM\MailChimp\MailChimp;

  $MailChimp_api_key = get_field('mailchimp_api_key', 'option');
  $MailChimp_landings_page = get_field('mailchimp_landings_page', 'option');
  $MailChimp_landings_page_failed = get_field('mailchimp_landings_page_failed', 'option');
  $MailChimp = new MailChimp($MailChimp_api_key);

  if ($email != '') {

    $list_id = '06b233d443';

    $result = $MailChimp->post("lists/$list_id/members", [
        'email_address' => $email,
        'status'        => 'subscribed',
    ]);

    if ($result['detail'] == '') {
        header( 'Location: ' . $MailChimp_landings_page['url']);
        exit;
    } else {
        header( 'Location: ' . $MailChimp_landings_page_failed['url']);
        exit;
    }

  }

}

файл composer.json:

 {
 "require": {
     "drewm/mailchimp-api": "^2.5",
     "mpdf/mpdf": "^8.0"
 },
 "autoload": {
     "psr-4": {
       "DrewM\\MailChimp\\":"src/"
     }
  }
}

1 Ответ

1 голос
/ 02 июля 2019

Автозагрузка обычно выполняется на начальной странице, чаще всего в front-controller или другом .php-файле, который сначала вызывается, а затем организует, что еще происходит.Оператор 'use' также выходит за пределы функции или класса, а затем псевдонима класса (здесь, MailChimp, доступно во всем файле).

Этот код, по-видимому, находится в системе CMS WordPress или более старого стиля - в плагине можно использовать composer или аналогичный.Есть примеры этого вокруг.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...