XHP:迁移
您绝对可以使用您要转换为XHP的代码。你可以用几种不同的方法来做这个邮件。
所有这些可能性的基础是这个功能:
function render_component($text, $uri) {
$uri = htmlspecialchars($uri);
$text = htmlspecialchars($text);
return "<a href=\"$uri\">$text</a>";
}
这可以从许多地方来。
转换Leaf函数
您可以简单地使用XHP render_component():
function render_component($text, $uri) {
$link = <a href={$uri}>{$text}</a>;
return $link->toString();
}
您正在转换render_component
成一个更安全的功能,而不需要显式转义等。但是您仍然传递字符串到最后。
Use a Class
你可以做render_component() into a class:
// Assume class Uri
class :ui:component-link extends :x:element {
attribute Uri $uri @required;
attribute string $text @required;
protected function render(): XHPRoot {
return
<a href={$this->:uri}>{$this->:text}</a>;
}
}
Keep a legacy `render_component()` around while you are converting the old code that uses `render_component()` to use the class.
function render_component(string $text, Uri $uri): string {
return (<ui:component-link uri={$uri} text={$text} />)->toString();
}