| | | | |
| |||||||
| Software-Design Diskussionen auf Profi-Niveau: PHP Lösungen auf konzeptioneller Ebene |
|
| | LinkBack | Themen-Optionen | Thema bewerten |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Moderator und Wett-König | Meiner Ansicht nach krankt der Ansatz an der Trennung der Zuständigkeiten. Für mich sollte Präsentation eines Formulars und die Logik getrennt werden. Initialisierung eines Formulars sollte man entweder durch "intelligente" Formular-Elemente realisieren, die ein Bindung zur Datenquelle injiziert bekommen oder von aussen - z.B. per MVC-Controller - steuern. Letzteres ist einfacher, da generischer umzusetzen. Beide Varianten erfordern jedoch eine bessere Abstraktion deines Formular-Objekts, denn so wie ich das Interface wahrnehme, lässt die Möglichkeit der Formatierung zu wünschen übrig.
__________________ Viele Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Think about software design before you start to write code! 2. Discuss and review it together with experts! 3. Choose good tools (-> Adventure PHP Framework (APF))! 4. Write clean and reusable software only! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| | |
| | |
| Moderator Registriert seit: 03.09.2004
Beiträge: 11.798
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Schau dir doch mal z.b. sfForm (Symfony 1.4) oder Zend_Form (Zend Framework) an, beide arbeiten mit Dekoratoren die sich austauschen lassen. Dabei gibt es dann einen Dekorator für die Form und welche für jedes Element. Der Dekorator der Form bestimmt dann "die Umgebung" des Formulars, ob das ne Tabelle, ne Liste oder sonstwas ist. Die der Felder dann wie das Feld angelegt wird, wo die potentiellen Fehlermeldungen der Validierung positioniert werden, ... . Rein theorhetisch lässt sich das also auch umschreiben dass damit ein PDF-Formular oder rein theoerhetisch mit gdlib/imagemagick ein Bild erstellt wird ![]()
__________________ robo47.net - Blog, Codeschnipsel und mehr | |
| | |
| | |
| moderatives Dielektrikum Registriert seit: 21.05.2008
Beiträge: 34.256
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Ein Decorator klingt schon ganz sinnvoll. Du darfst nicht vergessen, dass Datentypen durchau mit mehreren Formelementen dargetellt werden können - z.B. mit Selections oder Radioboxes, mit Multi-Selects oder Checkboxgruppen... Im Endeffekt wäre das eine Möglichkeit: PHP-Code:
__________________ -- One pixel is still too big. Please make it smaller. ASAP. Initiative Mittelstand. Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers. -- |
| | |
| | ||||||
| Benutzer Registriert seit: 14.01.2010
Beiträge: 69
PHP-Kenntnisse: Fortgeschritten ![]() | Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Der Ansatz gefällt mir... | |||||
| | |
| | ||
| moderatives Dielektrikum Registriert seit: 21.05.2008
Beiträge: 34.256
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Eigentlich nicht. Du schreibst oben, die DB-Datensätze enthalten genug Informationen um zu bestimmen, welcher Elementtyp sinnvoll ist. Aus der Übergabe von set (==Datensatz) oben würde die Factory 1) diese Information auswerten 2) einen passenden Elementtyp erstellen 3) einen Decorator für diesen Elementtyp mit einem gegebenen Feldwert/Auswahlwert aus set erstellen. 4) diesen Decorator den Form zuordnen Ich habe ähnliches schon versucht, deshalb sei hier gleich auf die Problematiken für Gruppenelemente hingewiesen: Aus Objektsicht haben gruppierte Elemente eine andere Struktur, sie sind quasi zweidimensional. Das „beißt“ sich aber mit relationalen Datenbanken, die jeden Wert quasi-atomar liefern. Damit musst DU 1) Elementgruppen als komponiertes Objekt erstellen (außen Gruppe, innen Item-Objekte) 2) Diese Objekte in der Factory vorhalten (von create zu create wird ja u.U. das gleiche Gruppenobjekt bestückt). Warum man die Elemente nicht einzeln behandeln kann: 1) spätestens bei Selections mit der HTML-seitigen Schachtelung wird das klar (aber auch bei gut gemachten Radio-Gruppen, die bspw. durch fieldset gruppiert sind) 2) die Zuordnung eines Vorgabe/Returnwertes muss ja irgebndwie zentral erfolgen (i.A. an ein Objekt, das durch das html-seitige name-Attribut repräsentiert wird). Damit nþzen Dir Einzelobjekte bspw. für <option> nicyt viel. Ein Ausweg - IMHO aber kein eleganter - könnte sein, die Factoryprodukte alle in ein Array zu schreiben und nachträglich auf Grundlage des name-Members zu gruppieren. Hierbei muss man dann natürlich Spezialitäten wie name[1], name[47] berücksichtigen... Zitat:
__________________ -- One pixel is still too big. Please make it smaller. ASAP. Initiative Mittelstand. Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers. -- Geändert von nikosch (17.07.2010 um 14:41 Uhr). | |
| | |
| | |
| Moderator und Wett-König | Hallo Lenki, nach Nikosch' Post muss ich denke ich nicht mehr im Datail auf deinen Post eingehen. Er hat sehr treffend beschrieben wo die Tücken einer derartigen Vorgehsweise liegen. Deshalb propagiere ich einen anderen Ansatz als beispielsweise Zend_Form: ein Formular ist auch nichts anderes als ein Template mit "Formular-sensitiven" Elementen, die durch die Tag-Struktur nach der Analyse als echte Objekt-Struktur zur Verfügung steht. Dadurch hast du sowohl die Möglichkeit, die Elemente sehr einfach zu formatieren und zu platzieren als auch eine saubere Objekt-Struktur, die du entsprechend adressieren, befüllen und manipulieren kannst. Den Overhead mit Decoratoren und Gruppierungs-Elementen nimmt dir immer Flexibilität, die spätestens bei komplexeren Aufgaben notwendig ist.
__________________ Viele Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Think about software design before you start to write code! 2. Discuss and review it together with experts! 3. Choose good tools (-> Adventure PHP Framework (APF))! 4. Write clean and reusable software only! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| POST form self PHP und direkt form Daten in URL übergeben | Rutor | PHP Tipps 2010 | 0 | 20.02.2010 17:56 |
| Daten in HTML form aus einer Query anzeigen | PHP Tipps 2005 | 1 | 15.02.2005 21:03 | |
| Übergabe der Daten aus einer Form und übernahme in MySql | PHP Tipps 2004 | 5 | 16.07.2004 20:14 | |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| zend framework formular mit daten füllen, php form objekt, php formulare objekte, php formular objekt, zend form gruppieren, internes datenobjekt php, zend_form mit daten aus datenbank befüllen, zend_form checkbox mit bild, php formular object, html form objekte, übernahme formelemente php, zend framework form mit daten füllen, formular mit daten füllen zend framework, zend form formelement select werte übergeben, zend form element factory, zend framework formular daten übergeben, quickform nachträglich element anfügen, php object form übertragen, php formula objekt mitgeben, php objekt in formular übergeben |