it-swarm.com.de

Wie lade ich eine Bibliothek eines Drittanbieters PHP)?

Ich habe eine PHP-Bibliothek eines Drittanbieters, die ich in einem Modul verwenden möchte. Wie mache ich das in Drupal 8? In drupal 7) habe ich Dinge wie den folgenden Code gemacht, aber libraries_get_path() tut es nicht ' t existiert in Drupal 8, und ich bin nicht genau sicher, wie sich die Dinge ändern, nicht dass wir Namespaces verwenden (von denen ich ein Anfänger bin).

require(libraries_get_path('Twitter-api-php') . '/TwitterAPIExchange.php');

Und wo soll ich meine Bibliothek platzieren? Sollte ich ein neues Bibliotheksverzeichnis erstellen und es im Stammverzeichnis ablegen, so wie sich Module und Themen jetzt im Stammverzeichnis befinden?

6
user1015214

Der 8.x-3.x-Zweig des Bibliotheksmoduls bietet weiterhin die Funktion libraries_get_path(). Und (ab sofort) sieht es ziemlich unverändert aus. Sie sollten es also auf die gleiche Weise verwenden können.

In Bezug auf den Speicherort Ihrer Bibliothek wurde die Funktion libraries_get_libraries() mit dem folgenden Zusatz zum Array $searchdir Aktualisiert:

// Always search the root 'libraries' directory.
$searchdir[] = 'libraries';

Dies zeigt an, dass Sie Ihre Bibliotheken in einem Verzeichnis mit dem Namen "Bibliotheken" an Ihrem Site-Stammverzeichnis ablegen können.

4
Adam Balsam

Komponist :

Composer ist ein Tool für das Abhängigkeitsmanagement in PHP. Sie können die abhängigen Bibliotheken deklarieren, die Ihr Projekt benötigt, und sie werden für Sie in Ihrem Projekt installiert.

plus das Modul Composer Manager :

Der Composer Manager bietet ein Gateway zur größeren PHP - Community, indem Drupal - Module aktiviert werden, um die besten Bibliotheken zu verwenden, die von Composer verwaltet werden.

kann damit umgehen.

3
Larowlan

Wenn Sie das Bibliotheksmodul verwenden und Ihre Bibliotheksdateien in/library/library ablegen (wo meine am Ende drush make verwenden), können Sie einfach library_load ('library') aufrufen, und das erledigt das require_once für Sie.

1
tzm

Wie Clive sagte, libraries_get_path ist keine Funktion, die mit Drupal core) ausgeliefert wird. Nur zu Ihrer Information ab dem Änderungsprotokoll # 2169605 , alle Bibliotheken, die Sie zu a hinzufügen müssen Seite ist von folgenden,

$example = array(
  '#attached' => array(
    'library' => array(
      'example/drag-and-drop',
    ),
  ),
);

Schauen Sie sich auch den Link Ersetzen Sie hook_library_info () durch die Datei * .libraries.yml an.

0

Die Verwendung von Composer Manager ist eine gute Lösung, benötigt jedoch Zugriff auf die Befehlszeile, um zu initiieren. Sie können auch module_load_include verwenden, wie wir es in Drupal7 verwenden. Legen Sie Ihre PHP-Datei in Ihr Modulverzeichnis und verwenden Sie

  module_load_include('php', 'modulename','filename');
0
Yusef