Zend_Dojo_Data: dojo.data EnvelopesDojo 通过它的 dojo.data 组件为 data-enabled 小部件提供数据抽象。 该组件提供附加数据存储的能力,提供一些关于身份字段和可选的标签字段的元数据以及 从数据存储查询、排序和获取记录和一组记录的 API。 dojo.data 常和XmlHttpRequest一起使用来从服务器取出动态数据。 它的基本机制是扩展 QueryReadStore 来指向一个 URL 并指定查询信息,服务器端就用 下列 JSON 格式来返回数据: { identifier: '<name>', <label: '<label>',> items: [ { name: '...', label: '...', someKey: '...' }, ... ] }
Zend_Dojo_Data 用法很简单,dojo.data 要求你在每个条目和一组条目(数据)中提供标识符字段的名字。 你可以通过构造函数或 mutators 来传递它们: Example #1 通过构造函数初始化 Zend_Dojo_Data $data = new Zend_Dojo_Data('id', $items); Example #2 通过 mutators 初始化 Zend_Dojo_Data $data = new Zend_Dojo_Data(); $data->setIdentifier('id') ->addItems($items);
用 Example #3 追加数据到 Zend_Dojo_Data $data = new Zend_Dojo_Data($identifier, $items); $data->addItem($someItem); $data->addItems($someMoreItems);
条目可以是下列其中之一:
你可以通过
如果想为条目指定一个用作标签的字段,调用 Example #4 在 Zend_Dojo_Data 里指定一个标签字段 $data->setLabel('name');
最后,你也可以用 Example #5 从 JSON 组装 Zend_Dojo_Data $data->fromJson($json); 高级用例
除了可以作为可系列化的数据容器,
所有的条目通过标识符字段来引用。因为表示符必须是独一无二的,你可用它的值来取出每个记录。
有两个方法可以做这个:通过 // Using getItem(): $item = $data->getItem('foo'); // Or use array notation: $item = $data['foo']; 如果你知道标识符,你可以用它来读取、更新、删除、创建或测试条目: // Update or create an item: $data['foo'] = array('title' => 'Foo', 'email' => 'foo@foo.com'); // Delete an item: unset($data['foo']); // Test for an item: if (isset($data[foo])) { } 你也可以遍历所有条目,在内部,所有的条目以数组形式存储。 foreach ($data as $item) { echo $item['title'] . ': ' . $item['description'] . "\n"; } 甚至还可以数出你有多少条目: echo count($data), " items found!";
最后,因为这个类实现 echo $data; // echo as JSON string $json = (string) $data; // cast to string == cast to JSON 可用的方法除了上述实现接口必须的方法外,下列方法也可用。
|