从 Php/Mysql 函数到 return HTML 是一个好习惯吗?
Is it a good practice to return HTML from Php/Mysql function?
例如,请看下面的代码,它 return 根据从数据库中获取的状态进行链接。
function favourite_store_link ($store_id, $user_id)
{
(string) $display_output = null;
if ($user_id)
{
$is_favourite = $this->count_rows('favourite_stores', "WHERE store_id='" . $store_id . "' AND user_id='" . $user_id . "'");
$fav_store = ($is_favourite) ? 'remove' : 'add';
$fav_store_msg = ($is_favourite) ? MSG_ADD_TO_FAVOURITE_STORES : MSG_REMOVE_FROM_FAVOURITE_STORES;
$display_output = ' [ <a href="' . process_link('shop', array('user_id' => $store_id, 'fav_store' => $fav_store)) . '">' . $fav_store_msg . '</a> ]';
}
return $display_output;
}
我想问一下是否可以这样做,或者我必须 return 事态并让模板处理其余部分。
最好将逻辑和视图拆分到代码的不同部分。
如果您只是 return 来自函数的数据,您将可以灵活地在其他地方、不同的视图等中使用此函数。
划分职责是良好可维护代码的主要原则之一。您可以阅读更多相关信息 here
例如,请看下面的代码,它 return 根据从数据库中获取的状态进行链接。
function favourite_store_link ($store_id, $user_id)
{
(string) $display_output = null;
if ($user_id)
{
$is_favourite = $this->count_rows('favourite_stores', "WHERE store_id='" . $store_id . "' AND user_id='" . $user_id . "'");
$fav_store = ($is_favourite) ? 'remove' : 'add';
$fav_store_msg = ($is_favourite) ? MSG_ADD_TO_FAVOURITE_STORES : MSG_REMOVE_FROM_FAVOURITE_STORES;
$display_output = ' [ <a href="' . process_link('shop', array('user_id' => $store_id, 'fav_store' => $fav_store)) . '">' . $fav_store_msg . '</a> ]';
}
return $display_output;
}
我想问一下是否可以这样做,或者我必须 return 事态并让模板处理其余部分。
最好将逻辑和视图拆分到代码的不同部分。 如果您只是 return 来自函数的数据,您将可以灵活地在其他地方、不同的视图等中使用此函数。
划分职责是良好可维护代码的主要原则之一。您可以阅读更多相关信息 here