ich diesen Zweig Erweiterung für eine silex basierte Website haben zu laden:Zweig Erweiterung scheint Versuch zu verursachen nicht vorhandene Cache-Datei
<?php
namespace UT\Provider;
/**
* Twig extension for containing any additional twig functions we need
*/
class TwigUTProvider extends \Twig_Extension {
public function getName() {
return 'ut_functions';
}
public function getFunctions() {
return [
new \Twig_SimpleFunction("maybeDecodeJapanse", [$this, \UT\Provider\TwigUTProvider::maybeDecodeJapanse()]),
];
}
public function maybeDecodeJapanse() {
return 'a string';
}
}
Welche registriert ist in der Anwendungsdatei wie folgt aus:
$this->register(new Provider\TwigServiceProvider, [
'twig.path' => [
__DIR__ . '/Resources/Templates',
$this['docroot'] . '/silex/vendor/braincrafted/bootstrap-bundle/Braincrafted/Bundle/BootstrapBundle/Resources/views/Form',
__DIR__ . '/../Floso/Templates',
],
'twig.options' => [
'auto_reload' => true,
'cache' => $this['debug_mode'] ? false : ($this['docroot'] . '/silex/var/cache/twig'),
'debug' => $this['debug_mode'],
],
]);
# Add Twig extensions
$this['twig'] = $this->share($this->extend('twig', function ($twig) {
$twig->addExtension(new \UT\Provider\TwigUTProvider());
$twig->addExtension(new BootstrapBundle\Twig\BootstrapIconExtension('glyphicon'));
$twig->addExtension(new BootstrapBundle\Twig\BootstrapLabelExtension);
$twig->addExtension(new BootstrapBundle\Twig\BootstrapBadgeExtension);
$twig->addExtension(new BootstrapBundle\Twig\BootstrapFormExtension);
$twig->addExtension(new \Twig_Extension_StringLoader());
$twig->getExtension('core')->setTimezone('Europe/London');
return $twig;
}));
Das scheint richtig zu sein - das Einführen von Mispelling in den Namen der Erweiterungsklasse verursacht eine andere Ausnahme als die, mit der ich festhalte.
Ich nenne diese Erweiterung in meinem Zweig Vorlagen mit {{ maybeDecodeJapanese() }}
, die diese Ausnahme verursacht (es scheint nicht von der Vorlage nennen sich verursacht, Mispelling es eine Standardfunktion erzeugt nicht gefunden Ausnahme):
Class '__TwigTemplate_3318c38dfd9c3eb0c4193184a517ff94fdd975ffb45d7f0a8f7490718f3bc1ef' not found
Dies geschieht in /silex/vendor/twig/twig/lib/Twig/Environment.php
Meine beste Vermutung ist, dass dies eine Cache-Datei von irgendeiner Art ist. Caching ist in der Entwicklungsumgebung deaktiviert, aber ich habe versucht, den Cache-Ordner-Inhalt trotzdem zu löschen, was nicht geholfen hat. Googling hat noch keine weiteren Hinweise.
Jede Hilfe bei der Suche nach der Quelle des Problems wäre sehr hilfreich.
Beachten Sie, dass Sie wahrscheinlich ein 'e' in' Japanse' vergessen haben. –