login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[ZF] Functie voor controllers... (Opgelost)

Offline Wouser - 06/07/2008 13:43
Avatar van WouserPHP interesse Hallo mensen,

Ik maak gebruik van het Zend Framework en nu wil ik graag een functie maken die kan worden gebruikt in de ActionControllers... Nu kan ik eigenlijk gewoon een class maken met die enkele functie erin maar dat vind ik een beetje omslachtig dus daarom vroeg ik mij af of er zoiets bestonds als de `helpers`

http://www.site...p;id=519#4

Echter deze zijn alleen voor de template maar ik wil graag zeg maar dus helpers voor de action controller... Iemand een idee hoe dit moet?

7 antwoorden

Gesponsorde links
Offline Grayen - 06/07/2008 14:54
Avatar van Grayen PHP ver gevorderde http://framewor...lpers.html
Offline Wouser - 06/07/2008 17:27 (laatste wijziging 06/07/2008 17:28)
Avatar van Wouser PHP interesse

Ok maar hoe schrijf ik dan ongeveer een action helper? Gewoon hetzelfde principe als een view helper?

  1. <?php
  2. class Zend_Action_Helper_Blaat
  3. {
  4. public function blaat($foo)
  5. {
  6. return $foo++;
  7. }
  8. }

Offline Stijn - 06/07/2008 18:09
Avatar van Stijn PHP expert Zo schrijf je een action helper
Offline Wouser - 16/07/2008 12:04
Avatar van Wouser PHP interesse Nou weer een tijdje geleden dit topic. Ik heb destijds me helper geschreven en ben toen gestopt omdat ik toen geen zin meer had om verder te programmeren... nu wou ik gisteren mijn geschreven helper gebruiken in een controller... echter nu wil hij deze niet laden?

Van wat ik heb begrepen is, is dat je in je bootstrap file moet melden wat de prefix is van je helper en wat de path is... nu heb ik mijn helpers in: './application/controllers/helpers/' staan. En mijn class ziet er zo uit..

  1. class Zend_Controller_Action_Helper_Navigation extends Zend_Controller_Action_Helper_Abstract
  2. {
  3. public function navigation(array $data)
  4. {
  5. // code
  6. }
  7. }


dus me prefix is 'Zend_Controller_Action_Helper'. Nu heb ik dit dus ingevuld in me bootstrap...

  1. Zend_Controller_Action_HelperBroker::addPrefix('Zend_Controller_Action_Helper');
  2. Zend_Controller_Action_HelperBroker::addPath('./application/controllers/helpers', 'Zend_Controller_Action_Helper');


en me helper laad ik als volgt...
  1. $navigation = $this -> _helper -> getHelper('Navigation');
  2. $navigation -> navigation($data);


Echter dit werkt niet iemand enig idee wat ik fout doe? Me helper (de file zelf) heet navigationHelper.php maar zover ik heb begrepen had dat geen invloed? Of moet ik me helper file rename?
Offline Stijn - 16/07/2008 19:07
Avatar van Stijn PHP expert Kijk eens of die HelperBroker je helper wel heeft toegevoegd.

  1. Zend_Controller_Action_HelperBroker::hasHelper('navigation');
Offline Wouser - 16/07/2008 19:47
Avatar van Wouser PHP interesse Ja heb net geprobeerd maar is idd niet toegevoegd returnd namelijk false.

Maar ik heb zelf nu gemerkt dat ik een fout had gemaakt want enkel addPath is nodig want mijn prefix is namelijk de default die zend al gebruikt... dus ik heb nu gewoon dit in me bootstrap. Verder heb ik de mappe gewoon hetzelfde gedaan zoals zend ze ook heeft '/action/helper/'

  1. // bootstrap
  2. Zend_Controller_Action_HelperBroker::addPath('./application/controllers/action/helper');
  3. Zend_Controller_Action_HelperBroker::addHelper(
  4. new Navigation()
  5. );
  6.  
  7. // ./application/controllers/action/helper/navigation.php
  8. class Zend_Controller_Action_Helper_Navigation extends Zend_Controller_Action_Helper_Abstract
  9. {
  10. public function navigation(array $data)
  11. {
  12. // code
  13. }
  14. }
  15.  
  16. // willekeurige controller... ophalen...
  17. $navigation = $this -> _helper -> getHelper('Navigation');


Alleen werkt het dus nog niet alleen gelukkig geen wazige error meer maar

Citaat:
Fatal error: Class 'Navigation' not found in C:xampphtdocsweblogindex.php on line 79


En dat snap ik niet precies, want de helper staat gewoon in './application/controllers/action/helper/navigation.php'



Offline Stijn - 16/07/2008 21:35
Avatar van Stijn PHP expert Doe die "addHelper(...)" code eens weg en doe enkel die "addPath(...)". En doe getHelper('navigation'). Dus zonder hoofdletter. Als dit nog niet werkt, moet je eens een try/catch block gooien rond je $controller->dispatch();
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.242s