Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony]obiekt w pliku idnex.php
Forum PHP.pl > Forum > PHP > Frameworki
Mgorka
Witajcie potrzebuję stworzyć obiekt który będzie generowany wpliku index oraz będę mógł się odwoływać do niego w komponencie od menu próbowałem metodą:
index.php
  1. <?php
  2.  
  3.  
  4. require_once(dirname(__FILE__).'/../config/ProjectConfiguration.class.php');
  5.  
  6. $configuration = ProjectConfiguration::getApplicationConfiguration('frontend', 'dev', true);
  7. sfContext::createInstance($configuration)->dispatch();
  8.  
  9. $aa='sss';
  10. //$aa[2]='aaa';
  11. //$aa[3]='555';
  12.  
  13. sfContext::getInstance()->set('blue',$aa);
  14. //sfContext::

w komponencie odwołuję się do obiektu tak
  1. $aa=sfContext::getInstance()->get('blue');

lecz symfony zwraca mi błąd że nie istnieje taki obiekt
Gribo
A jaki jest sens tworzyć obiekt w index.php ?
Utwórz sobie ten obiekt w akcji homepage lub jak napisz odpowiedni filtr który bedzie sie wykonywał przy każdym requescie.
Mgorka
problem w tym że łączę to z innym projektem i potrzebuję przekazać tablicę wygenerowaną w pliku index która bedzie przechowywać pewne parametry poprostu problem w połączeniu 2 projektów jeden w frameworku drugi na autorskim cms
Sinevar
Jeśli nazwałeś swoja aplikację dajmy na to frontend, to:

w apps/frontend/config/filters.yml

  1. rendering: ~
  2. security: ~
  3.  
  4. # insert your own filters here
  5. variables:
  6. class: variablesFilter
  7. enabled: on
  8. param:
  9. param1: something
  10.  
  11. cache: ~
  12. execution: ~


i tworzysz sobie klasę apps/frontend/lib/variablesFilter.php

  1. class variablesFilter extends sfFilter
  2. {
  3. public function execute($filterChain)
  4. {
  5. $param1 = $this->getParameter('param1');
  6. $this->getContext()->getUser()->setAttribute('blue', 'bleblu');
  7. $this->getContext()->getUser()->setAttribute('param1', $param1);
  8.  
  9. $filterChain->execute();
  10. }
  11. }


I teraz, jeśli jesteś w akcji/komponencie: $this->getUser()->getAttribute('blue'), a jeśli w templatce: $sf_user->getAttribute('blue'), a jeśli zaś w modelu: sfContext::getInstance()->getUser()->getAttribute('blue')

Jak coś, to to co wpiszesz do usera, możesz też wydumpować w $_SESSION wink.gif
Mgorka
fajnie dzięki ale to nadal nie rozwiązuje mojego problemu bo ta zmienna to tablica która będzie dynamicznie generowana z drzewa w bazie danych
Sinevar
No to w filtrze możesz spokojnie się odwołać do modelu, a w modelu będziesz miał metodę, która spreparuje Ci tą tablicę. Potem przypiszesz to do zmiennej w userze i powinno banglać smile.gif

Tyle, że nie do końca jeszcze czaję, jak chciałeś przekazać jakieś zmienne z jednej aplikacji do drugiej, używając web/index.php...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.