php.de

Zurück   php.de > Webentwicklung > Software-Design

Software-Design Diskussionen auf Profi-Niveau: PHP Lösungen auf konzeptioneller Ebene

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 1 Stimmen, 5,00 durchschnittlich.
Alt 09.08.2011, 18:59  
Erfahrener Benutzer
 
Benutzerbild von dreamcatcher
 
Registriert seit: 28.12.2010
Beiträge: 603
PHP-Kenntnisse:
Anfänger
dreamcatcher wird schon bald berühmt werden
Standard MVC & Zend & Ajax - Software-Design

Simple Aufgabe:
Nehmen wir an wir haben eine Webseite mit einer Tabelle und ganz unten einen Button.

Wenn man auf diesen Button drückt soll Tabelle zerstört werden und vollkommen bzw. teilweise neu geladen werden.

Die Seite soll sich jedoch nicht neu laden.
______

Simple Umsetzung:
Mit Hilfe von jQuery kann man schnell selektieren wo was gelöscht werden soll und wo was geaddet werden soll.
Die Frage ist, wie sieht die Struktur der Quelldatei für die Daten aus ?
_______

Beispiel:
Wir drücken auf den Button.

1.)
Gibt es besondere Richtlinien die man einhalten muss zur Ausgabe ?
Sagen wir, wir haben uns für das JSON Format entschieden und holen die Daten von /api/calendar/events?day=11-11-2011.

Sprich darf man es überhaupt API nennen oder gehört es in die normale MVC Struktur ?


Oder besser gefragt:
Wenn man Daten holt, ohne eine bestimmte Seite anzeigen zu lassen, sondern eben (<-Grüße an Nikosch ) die Schnittstelle nur zum nachladen von Daten braucht, gibt es dann dafür einen extra Controller in der MVC Struktur oder haut man das in den normalen Controller (dementsprechend ebend nur über eine extra Action wie z.B. "getEvents") worüber auch die App aufgerufen wird ?

2.)
Gibt es spezielle Schnittstellen o.Ä. wo das ZF genau an dieser Ecke ansetzt ?

Damit meine ich gibt es vllt. eine Klasse die genau dies zum Ziel hat ?

Das Ziel ist z.B. das gesamte layout nicht ausgeben zu lassen.
Das geht noch leicht indem man das render() auf false setzt, jedoch hat die Klasse vllt. auch noch andere Tricks auf Lager um bestimmte Konventionen einzuhalten.

____________________________________

Das sind die Fragen.

Es ist schwierig eine Frage nach Konventionen zu stellen, wenn man diese nicht kennt.

"Murksig" schreiben kann es jeder, aber wie schreibt man es schön sauber und strukturiert ?

Darum geht es mir.
Wenn etwas unverständlich ist, bitte einfach nachhaken
dreamcatcher ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 09.08.2011, 21:03  
Erfahrener Benutzer
 
Registriert seit: 11.04.2011
Beiträge: 260
PHP-Kenntnisse:
Fortgeschritten
lcrash wird schon bald berühmt werden
Standard

http://framework.zend.com/manual/en/....contextswitch
lcrash ist offline   Mit Zitat antworten
Alt 09.08.2011, 21:52  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.994
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
(dementsprechend ebend nur
Grüße zurück.

Was hindert Dich daran, einen zweiten Controller aufzusetzen? Letztlich ist die JSON-Repräsentation doch nur eine andere Form der View.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 10.08.2011, 22:44  
Erfahrener Benutzer
 
Benutzerbild von dreamcatcher
 
Registriert seit: 28.12.2010
Beiträge: 603
PHP-Kenntnisse:
Anfänger
dreamcatcher wird schon bald berühmt werden
Standard

@nikosch
Das ist nicht der Kern der Frage.
Es ist möglich es als Action in einen zweiten Controller zu packen, das steht außer Frage.

Die Frage ist, wie so etwas "best practise" umgesetzt wird.

Fragt man per extra Controlller die Daten, die im Hintergrund geladen werden ab ?
Liegt dieser Controller im selben "Modules" Verzeichnis oder gibt es ein extra "Modules" Verzeichnis namens API ?

Ich geb mal Praxisbeispiele:

Zitat:
1.) /api/calendar/getEvents [in einem extra Modul namens "API" ausgelagert]
2.) /xx/calendar/getEventsJson [Im gleichen Modul nur mit einer anderen Action]
3.) /xx/calendar/api?get=events&param1=bla [Extra Action für alle Ajax requests im gleichen Modul]
4.) /xx/calendar/getEvents/format/Json
[Neu, dank dem Link von lcrash möglich.]
Frage: Ist das nicht eigentlich das Gleiche wie eine extra Action anzulegen, nur mit dem Unterschied ebend in dieser Action ContextSwitch() zu verwenden ?
Ich denke, dass entweder Variante 1 oder Variante 4 in Frage kommt.
Wobei Variante 1 auch mit lcrashs Post gekoppelt sein kann.

Es gibt noch mehrere weitere Varianten die möglich wären.

Die Frage ist nur:
Worin (Welchen Fall) findet sich ein fremder Programmierer im Quellcode am besten zu recht ?
Gibt es Konventionen an die man sich dort am besten hält ?

Geändert von dreamcatcher (10.08.2011 um 22:47 Uhr).
dreamcatcher ist offline   Mit Zitat antworten
Alt 10.08.2011, 22:54  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.994
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Es gibt nicht DIE Lösung. Und Pfade/Urls sagen sowieso nichts über die Struktur aus.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 11.08.2011, 08:45  
Erfahrener Benutzer
 
Registriert seit: 11.04.2011
Beiträge: 260
PHP-Kenntnisse:
Fortgeschritten
lcrash wird schon bald berühmt werden
Standard

Der Sinn von Modulen ist ja, dass diese gekapselt sind.

Möglich ist also:
/mymodule/api_data/index/format/json und der Pfad ist application/modules/mymodule/controllers/Api/DataController.php
Ist ein wenig hässlich. Wenn man das sauber haben möchte muss man dafür eine eigene Router-Route schreiben.
lcrash ist offline   Mit Zitat antworten
Alt 11.08.2011, 10:15  
Erfahrener Benutzer
 
Registriert seit: 30.07.2008
Beiträge: 1.169
PHP-Kenntnisse:
Fortgeschritten
xm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphäre
Standard

Was spricht gegen die ContextSwitch-Methode? Das ist in meinen Augen am saubersten.
xm22 ist offline   Mit Zitat antworten
Alt 11.08.2011, 11:00  
Erfahrener Benutzer
 
Registriert seit: 11.04.2011
Beiträge: 260
PHP-Kenntnisse:
Fortgeschritten
lcrash wird schon bald berühmt werden
Standard

ContextSwitch ist eher für einfache Switches geeignet. Für richtige APIs sollte es schon Zend_Rest_Controller und Zend_Controller_Router_Route_Rest sein.

Es schient auch zunächst, dass er keine ganze API möchte, sondern einfach nur ein anderes Ausgabeformat.
lcrash ist offline   Mit Zitat antworten
Alt 11.08.2011, 11:05  
Erfahrener Benutzer
 
Registriert seit: 30.07.2008
Beiträge: 1.169
PHP-Kenntnisse:
Fortgeschritten
xm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
sondern einfach nur ein anderes Ausgabeformat.
Das spricht doch für die ContextSwitch-Methode..
xm22 ist offline   Mit Zitat antworten
Alt 11.08.2011, 11:27  
Erfahrener Benutzer
 
Registriert seit: 11.04.2011
Beiträge: 260
PHP-Kenntnisse:
Fortgeschritten
lcrash wird schon bald berühmt werden
Standard

Ja das kann er auch weiterhin in seiner API benutzen. War nicht so gemeint, dass dies dann ausgeschlossen ist.
lcrash ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Projekte iun Zend Studio 8.0 laden was keine Zend Studio Projekte sind litterauspirna Off-Topic Diskussionen 2 13.07.2011 18:47
[Erledigt] Ajax Request an Script schicken, Zend FW Cronkalonca PHP Einsteiger 10 17.05.2011 19:44
Rightmanagement mit ZEND Framework dreamcatcher Software-Design 8 15.04.2011 09:18
Zend Webinare robo47 Off-Topic Diskussionen 0 16.03.2010 10:02
Ajax Anwendung, reines Ajax oder Ajax und Html jackie1983 JavaScript, Ajax und mehr 5 09.02.2010 16:50
Zend Studio (Javascript Unterstützung)? customer-tk Off-Topic Diskussionen 6 12.11.2009 22:42
[S] Zend Framework Coder ThisRockZ Beitragsarchiv 0 14.10.2009 13:14
Social Engine Design umsetzen, Smarty, PHP etwas Ajax SunBella Beitragsarchiv 0 08.10.2009 14:45
Zend Studio for Eclipse und Zend Framework KeKs0r PHP-Fortgeschrittene 5 15.12.2008 15:10
1111: AJAX meets PHP (indirectly) Nikolaus 2.0 Adventskalender 2008 5 15.12.2008 11:00
InterNations: PHP Software Entwickler Internations Beitragsarchiv 0 09.07.2008 11:39
InterNations: PHP Software Entwickler Internations Beitragsarchiv 0 09.07.2008 09:20
Design und Code Trennen TeazY PHP Tipps 2008 29 21.05.2008 12:08
Design Beitragsarchiv 26 04.06.2005 20:56

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
zend ajax, zend ajax form mvc, zend mvc ajax, php mvc and ajax, zend ajax mvc, php mvc ajax, mvc praxisbeispiele, ajax software, mit ajax zend controller laden, software design php, zend ajax extra controller?, mvc datensätze aus verschiedenen tabellen php, zend framework context switch, website structur zend mvc, api ajax \zend router\, php hmvc beispiel, ajax php mvc, php zend mvc action event, php mvc with ajax, ajax mvc

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:38 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum