it-swarm.com.de

Wie aktiviere ich die Erweiterung Twig?

In Drupal 8, Admin-Report> Statusbericht> Twig C-Erweiterung: Nicht verfügbar Aktivieren der Twig C-Erweiterung kann Erhöhen Sie die Renderleistung erheblich. Weitere Informationen finden Sie in den Installationsanweisungen.

Ich habe Twig C Extension installiert, aber es wird berichtet, dass es nicht aktiviert ist.

Wie installiere und aktiviere ich die Erweiterung Twig für PHP in Drupal 8)?

3
arulanpari

Das sollte einfach funktionieren. Stellen Sie sicher, dass Sie http://twig.sensiolabs.org/doc/installation.html#installing-the-c-extension folgen und die Befehle in /path/to/docroot/vendor/twig/twig Ausführen. Als nächstes sollten Sie erneut überprüfen, ob extension=twig.so In Ihrer php.ini-Datei vorhanden ist und ob Apache neu gestartet/neu geladen wurde.

Um zu bestätigen, dass die Erweiterung geladen wird, können Sie php -c /path/to/php.ini -i | grep twig Ausführen.

2
anavarre

In den neuesten Versionen von Drupal 8) ist das Verzeichnis vendor/twig/twig /ext nicht mehr vorhanden.

Um die Erweiterung zu erstellen, benötigte ich zuerst global Twig und kompilierte dann die Erweiterung.

composer global require twig/twig:~1.0
cd ~/.composer/vendor/twig/twig/ext/twig
phpize
./configure
make
make install

Dann habe ich die Datei php.ini bearbeitet, um eine Zeile über die neue Erweiterung hinzuzufügen.

extension=twig.so

Ich habe den Befehl unter OS X 10.11 ausgeführt. In einem anderen Betriebssystem kann das Verzeichnis, in dem Composer die global erforderlichen Pakete ablegt) unterschiedlich sein.

Ich verwende Drupal 8.0.4, aber es könnte sein, dass frühere Versionen die ext/twig-Version noch nicht hatten. Aus den anderen hier gegebenen Antworten nehme ich das Drupal 8.0.1 hat das erforderliche Verzeichnis bereits übersehen.

Unter OS X 10.11 wurde der folgende Fehler angezeigt:

PHP-Warnung: PHP Start: Dynamische Bibliothek '/Applications/DevDesktop/php5_5/ext/twig.so' kann nicht geladen werden - dlopen (/Applications/DevDesktop/php5_5/ext/twig.so, 9): kein passendes Bild gefunden.
Fand: /Applications/DevDesktop/php5_5/ext/twig.so: mach-o, aber falsche Architektur in Unknown in Zeile 0

Nach dem, was in Compiling PHP Erweiterungen auf Snow Leopard mit XAMPP berichtet wurde, habe ich es dann mit den folgenden Befehlen versucht.

composer global require twig/twig:~1.0
cd ~/.composer/vendor/twig/twig/ext/twig
phpize
CFLAGS=-m32 CPPFLAGS=-m32 CCASFLAGS=-m32 ./configure
make
make install

Nach dem Neustart von Apache wurde die Erweiterung Twig zwischen den Erweiterungen PHP) aufgelistet.

(screenshot

Bis heute (26. Februar 2016) konnte ich die Erweiterung für PHP 7.0) nicht kompilieren, da make mit einer Warnung und einem schwerwiegenden Fehler fehlschlägt.

/Applications/DevDesktop/php7_0/include/php/Zend/zend_hash.h:134:15: Warnung:
Fastcall-Aufrufkonvention wird bei variadischen Funktionen ignoriert
[- Wignored-Attribute]
ZEND_API void ZEND_FASTCALL zend_hash_apply_with_arguments(HashTable *ht...

/Applications/DevDesktop/php7_0/include/php/Zend/zend_portability.h:231:39: Hinweis:
erweitert vom Makro 'ZEND_FASTCALL'
# define ZEND_FASTCALL __attribute__((fastcall))

.composer/vendor/twig/twig/ext/twig/twig.c: 23: 10: schwerwiegender Fehler:
'ext/standard/php_smart_str.h' Datei nicht gefunden
#include "ext/standard/php_smart_str.h"

1
kiamlaluno

A Drupal 8.0.2 Schritt-für-Schritt-Lösung, abgeleitet aus dem Kommentar von ir4georgia.

Ich muss "Sudo" benutzen. ymmv.

cd /path/to/docroot/vendor
Sudo composer require twig/twig:~1.0

Mit dem obigen Befehl wird ein Unterverzeichnis "Anbieter" im Verzeichnis "Anbieter" erstellt.

Verschieben Sie das Unterverzeichnis "ext" des Hersteller-Unterverzeichnisses in das ursprüngliche Verzeichnis d8 twig:

Sudo mv /path/to/docroot/vendor/vendor/twig/twig/ext /path/to/docroot/vendor/twig/twig/

Löschen Sie das zweite Herstellerverzeichnis

Sudo rm -r /path/to/docroot/vendor/vendor

cD in das Verzeichnis ext/twig

cd /path/to/docroot/vendor/twig/twig/ext/twig

Führen Sie die Installationsbefehle aus.

Sudo phpize
Sudo ./configure
Sudo make
Sudo make install

Fügen Sie der php.ini die Erweiterung = twig.so hinzu

Starten Sie Apache neu:

Sudo apachectl restart
0
ronaldmulero

Ich habe gerade eine Drupal 8.0.1-Site eingerichtet

Wenn ich zu/path/to/docroot/vendor/twig/twig cd und composer ausführe, benötige twig/twig: ~ 1.0

Es wird ein weiterer Herstellerordner mit psr und Symphony erstellt. Wenn ich wie Simon South phpize in/path/to/docroot/vendor/twig/twig ausführe, kann es config.m4 nicht finden.

Ich habe festgestellt, dass, wenn ich zu/path/to/docroot/vendor/twig/twig/vendor cd und composer ausführen muss, twig/twig: ~ 1.0 erneut erforderlich ist, ein weiterer Vendor-Ordner erstellt wird, der einen anderen twig Ordner mit der Datei phpize config.m4 unter

/ path/to/docroot/vendor/twig/twig/vendor/vendor/twig/twig/ext/twig

Ich habe auch mit cd/path/to/docroot/vendor experimentiert und composer ausgeführt, für das twig/twig: ~ 1.0 erforderlich ist, und die erforderliche config.m4 unter path/to/docroot/vendor/vendor/erstellt. Zweig/Zweig/ext/Zweig

Beide funktionieren, scheinen aber für einen Neuling schrecklich verwirrend

0
ir4georgia