| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
thorn Fortgeschrittener Benutzer

Anmeldedatum: 23.09.2007 Beiträge: 71 Wohnort: Niederried b.K. (CH) Programmiersprachen: PHP, MySQL, (X)HTML, CSS, JS, C, VB
|
Verfasst am: 21.02.2009, 13:58 Titel: [PHP] Helper... |
|
|
Hallihallo
Ich bin gerade am herum rätseln wie ich die Helper-Klassen implementieren soll.
Finde da irgendwie nichts was mir gefällt und wollte mal eure Meinung wissen.
Zum Vergleich Zend:
Zend lädt die Liste der View-Helper als ausführende Methode in den Objektbaum. Dies ermöglicht das aufrufen der Helper-Methode und direktes übergeben der Parameter:
Bsp. Helper:
| Code: |
require_once('Zend/View/Helper/Abstract.php');
class View_Helper_BoxStart extends Zend_View_Helper_Abstract {
public function boxStart($title='',$float=null,$width=null,$active=1,$onlyHead=false) {
...
}
}
|
Bsp. View, Aufruf des Helpers:
| Code: |
...
$this->boxStart('Rezept des Tages', 'right');
... |
Zum Vergleich Yii:
In Yii wird stattdessen eine eigene Methode angewandt die aufgerufen wird, dann als erstes die Helperklasse und als zweites die Parameter in einem Array:
Bsp. Helper:
| Code: |
class EColorPicker extends CInputWidget {
public function run() {
...
}
} |
Bsp. View, Aufruf des Helpers:
| Code: |
...
$this->widget('application.ext.colorpicker.EColorPicker',
array(
'name'=>'cp',
'mode'=>'textfield',
'fade' => false,
'slide' => false,
'curtain' => true,
)
);
... |
Die Methodik von Zend gefällt mir besser, da man direkt die Variablen angeben kann ohne diese nochmal in einem Array zu verschachteln.
Die von Yii ist in der hinsicht besser, dass man Eigenschaften einfach erweitern kann, ohne immer die Funktion welche aufgerufen wird anzupassen oder die Reihenfolge von Parameter zu beeinflussen. Zudem wird die Klasse nicht zum voraus gelesen sondern nur dann, wenn diese gebraucht wird.
Ich habe zwar noch keine Helper, aber die werden noch kommen. Der erste Test-Helper ist statisch definiert, womit man den direkt über die Klasse aufrufen kann:
| Code: |
...
echo HGetUrl::url();
... |
Vorteil: direkter Aufruf, viele Möglichkeiten
Nachteil: keine Objektableitungen möglich, alles statisch definieren
Wie ist eure Erfahrungen in diesen Bereichen?
Eure Vorschläge?
Gruss  |
|
| Nach oben |
|
 |
synapsis Administrator
Anmeldedatum: 15.10.2006 Beiträge: 408 Wohnort: Nahe München Programmiersprachen: C/C++, PHP, Python, JS, HTML, VB, (Java)
|
Verfasst am: 22.02.2009, 14:10 Titel: |
|
|
Mit Helpern hab ich ehrlich gesagt noch nicht so oft gearbeitet. Kenn die nur von joomla und da wird das sehr einfach gehandhabt.
Man bindet einfach die entsprechende Datei ein und ruft die Helperklasse als statisches Objekt auf...
| Code: |
require_once(JPATH_COMPONENT.DS.'helpers'.DS.'route.php');
RouteHelper::Funktion(arg...); // funktion ausführen |
Mir würde es gefallen, wenn man die Skripte mit den Helper-Klassen immer in einen speziellen Ordner speichern könnte und dann im Code einfach mit
| Code: |
| LoadHelper([helpername]) |
die entsprechende Datei einbinden und dann wie oben die klasse statisch aufrufen könnte.
Aber wie gesagt, in der Materie kenn ich mich nicht wirklich aus... |
|
| Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Anhänge in diesem Forum nicht anhängen. Du kannst Dateien in diesem Forum nicht herunterladen.
|
|