Twig - przemieszczanie się po między katalogami.

Twig - przemieszczanie się po między katalogami.
P8
  • Rejestracja:około 9 lat
  • Ostatnio:11 miesięcy
  • Postów:20
0

I znów twig. :)

Przejdźmy do problemu, a problemem jest głupie przemieszczanie się pomiędzy katalogami.
Normalnie w php i gdziekolwiek mamy:
../ - cofa o jeden katalog

No niestety jak daje w Twig to nie działa.
Mam kod:

Kopiuj
$loader = new Twig_Loader_Filesystem('modules/page/templates/'.$settings['template'].'/');
		$twig = new Twig_Environment($loader, array(
		    'cache' => 'cache',
		    'auto_reload' => true,
		));
echo $twig->render('header.twig', array());

No i teraz chciałbym aby pobrało plik z folderu modules, czyli muszę w render zrobić coś takiego ../../../pliczek.twig ale niestety nie działa.
Jest jakiś zamiennik, czy coś?

edytowany 2x, ostatnio: pawlo896
forsberg
A w czym używasz tego Twiga? W Symfony to nawet nie musisz ładować niczego, Twig jest normalną usługą w kontenerze DI, wszystko robi za Ciebie framework. Coś mi się wydaje, że niewłaściwie podchodzisz do tematu od strony architektury, skoro musisz się tak przemieszczać.
P8
@forsberg Używam zwykłego PHP + Twig. Nie lubię tych gotowych frameworków. :) Nie muszę, ale chcę. Mam podstawkę i do tej podstawki teraz piszę moduły. Teraz potrzebuję kontaktu pomiędzy jednym, a drugim modułem aby pierwszy moduł wyświetlił parę informacji z modułu drugiego i dlatego mam taki problem. A pliki mają znajdywać się w odpowiednim folderze z modułem, aby moduły można było instalować/ odinstalowywać. Porąbane ale co zrobić. :)
forsberg
"Porąbane ale co zrobić" - brzmi, jakbyś dopiero uczył się. To ok, rób tak dalej, zrozumiesz potem, dlaczego to, co robisz, na dłuższą metę nie ma sensu, bo inni już to za Ciebie zrobili, i to znacznie elastyczniej / bardziej elegancko / efektywniej / bezpieczniej / itd. - np. w Symfony. Zauważ, że Symfony to tak naprawdę połączone ze sobą moduły ("bundles"), które możesz używać nawet wtedy, gdy nie używasz samego frameworka. Warto się tym zainteresować bliżej. Albo względnie poczytaj na temat Dependency Injection Container, jeśli chcesz robić sam - polecam.
P8
@forsberg Można powiedzieć, że pierwszy większy projekt z Twig.
R3
  • Rejestracja:ponad 11 lat
  • Ostatnio:dzień
  • Postów:419
1

Możesz dodawać ścieżki do szablonów, poniżej dodane z namespacem "pliczki"

Kopiuj
$loader->addPath($templateDir, 'pliczki');
$twig->render('@pliczki/pliczek.html', array());
P8
  • Rejestracja:około 9 lat
  • Ostatnio:11 miesięcy
  • Postów:20
0

@reptile333 A mogę taką ścieżkę użyć w szablonie za pomocą twig include w jakiś sposób?

#edit
Mam. Poradziłem sobie.

edytowany 2x, ostatnio: pawlo896

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.