Upgrade to ExtJS 3.0.0 - Released 07/06/2009
[extjs.git] / examples / writer / remote / lib / application_controller.php
diff --git a/examples/writer/remote/lib/application_controller.php b/examples/writer/remote/lib/application_controller.php
new file mode 100644 (file)
index 0000000..05403d0
--- /dev/null
@@ -0,0 +1,44 @@
+<?php
+/**
+ * @class ApplicationController
+ */
+class ApplicationController {
+    public $request, $id, $params;
+
+    /**
+     * dispatch
+     * Dispatch request to appropriate controller-action by convention according to the HTTP method.
+     */
+    public function dispatch($request) {
+        $this->request = $request;
+        $this->id = $request->id;
+        $this->params = $request->params;
+
+        if ($request->isRestful()) {
+            return $this->dispatchRestful();
+        }
+        if ($request->action) {
+            return $this->{$request->action}();
+        }
+
+        // normal dispatch here.  discover action
+    }
+
+    protected function dispatchRestful() {
+        switch ($this->request->method) {
+            case 'GET':
+                return $this->view();
+                break;
+            case 'POST':
+                return $this->create();
+                break;
+            case 'PUT':
+                return $this->update();
+                break;
+            case 'DELETE':
+                return $this->destroy();
+                break;
+        }
+    }
+}
+