codecamp

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();
}
XHP:扩展
XHP:指南
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }