Entity Manipulation via AJAX

10 views
Skip to first unread message

Forte

unread,
Aug 2, 2011, 7:39:59 AM8/2/11
to ecam...@googlegroups.com
Ein Designvorschlag, wie mittels JS Entitäten manipuliert werden könnten:

Mit der Wahl eines umfangreichen JS-Frameworks kann viel Arbeit gespart werden. Beim Framework ExtJS habe ich einen interessanten Ansatz gefunden. (Evtl. auch in jQuery vorhanden, hab ich noch nicht gesucht)
ExtJS kann (wie üblich) die Entitäten in Form von Klassen lokal halten. Neben den Entitäten-Klassen führt ExtJS jedoch auch noch einen Store für jeden Typ von Entität. Entitäten können in diesem Store abgelegt werden... und natürlich wieder geholt werden (analog zu einem EntityRepository in Doctrine). Das schöne ist nun, dass diesem Store ein beliebiger Proxy für das Speichern und Laden zur verfügung gestellt werden kann.... Auch ein REST-Proxy.

Auf der Serverseite bleibt einem noch mehr arbeit erspart. Das ZendFramework kennt einen Zend_Rest_Controller. Dies ist eine Ableitung vom Zend_Controller_Action und implementiert die RESTful-Actions.

Ich glaube, dass die Hoffnung besteht, dass diese Kette zuverlässig implementierbar ist (incl Auth und Acl). 
Sollte das gelingen, so können manipulationen auf JS-Objekten direkt auf den Server geschrieben werden... cool nicht?  ;)



Ein kleines Stück habe ich damit noch offen gelassen: Wie kommen die Daten von den JS-Objekten in den HTML-DOM. 
Hier stellt ExtJS auch eine Hand voll interessanter Hilfsmittel zur verfügung: Auf diese möchte ich jedoch nicht im Detail eingehen. (Ich habe sie auch selber noch nicht ausführlich studiert :/)
Hier jedoch ein Link zu einem Guide: http://docs.sencha.com/ext-js/4-0/#/guide/grid
(Der Guide zeigt, wie Daten aus einem Store dargestellt und manipuliert werden können...)

Jedoch auch wenn wir für diesen letzten Schritt eine individuelle Lösung brauchen, so kann eine solche mit vernünftigem Aufwand erarbeitet werden.



Abschliessend eine paar Links:

Ext.data.Store - Der Store / Das Repository auf der Brwoserseite:

Ext.data.proxy.Rest - Der Rest proxy welcher dem Store zugewiesen werden kann.

Zend_Rest_Controller - Der Zend_Rest_Controller ist leider nicht dokumentiert :/  - Der Source ist jedoch einfach zu lesen:



Noch weiter geht das konzept von Ext.Direct, welches womöglich auch noch genauer in Betracht gezogen werden sollte:

Reply all
Reply to author
Forward
0 new messages