作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
对于定义的实体类型,我们最好为其实现增删改查等API函数,方便别处调用:
{entity_type}_load(),
{entity_type}_create(),
{entity_type}_save(),
{entity_type}_delete_multiple(),
Entity API模块,为我们提供了entity_create()、 entity_save()、 entity_delete()等函数,直接使用Entity API里面的即可,我们还有必要定义自己的么?最好还是定义一下,也就是有这个必要。我们来看看我们的实现:
/**
* Fetch a breadcrumb object.
*
* @param $bid
* Integer specifying the breadcrumb id.
* @param $reset
* A boolean indicating that the internal cache should be reset.
* @return
* A fully-loaded $breadcrumb object or FALSE if it cannot be loaded.
*
* @see breadcrumb2_load_multiple()
*/
function breadcrumb2_load($bid, $reset = FALSE) {
$breadcrumbs = breadcrumb2_load_multiple(array($bid), array(), $reset);
return reset($breadcrumbs);
}
/**
* Load multiple breadcrumbs based on certain conditions.
*
* @param $bids
* An array of breadcrumb IDs.
* @param $conditions
* An array of conditions to match against the {breadcrumb} table.
* @param $reset
* A boolean indicating that the internal cache should be reset.
* @return
* An array of breadcrumb objects, indexed by bid.
*
* @see entity_load()
* @see breadcrumb2_load()
*/
function breadcrumb2_load_multiple($bids = array(), $conditions = array(), $reset = FALSE) {
return entity_load('breadcrumb2', $bids, $conditions, $reset);
}
/**
* Deletes a breadcrumb.
*/
function breadcrumb2_delete(Breadcrumb $breadcrumb) {
$breadcrumb->delete();
}
/**
* Delete multiple breadcrumbs.
*
* @param $bids
* An array of breadcrumb IDs.
*/
function breadcrumb2_delete_multiple(array $bids) {
entity_get_controller('breadcrumb2')->delete($bids);
}
/**
* Create a breadcrumb object.
*/
function breadcrumb2_create($values = array()) {
return new Breadcrumb($values);
}
/**
* Saves a breadcrumb to the database.
*
* @param $breadcrumb
* The breadcrumb object.
*/
function breadcrumb2_save(Breadcrumb $breadcrumb) {
return $breadcrumb->save();
}
这都是模式化的代码,对应的实现,可以参考profile2,也可以参考model模块。