技术开发 频道

PHP应用程序架构浅谈

  10. 表现层(Presentation Layer)

  最顶层的页面包含实际的HTML代码。这个页面需要的所有业务对象(business object),由页逻辑提供。

  这个页面先读取业务对象的属性,然后将它们转换成HTML格式。   

<?php
    require_once(
'control/ctl_person.inc.php'); #the page controller
    $c =& new PageController();
  ?
>

<html>
  
<body>
  
<form action="<?php echo htmlspecialchars($PHP_SELF) ?>" method="POST">
    
<input type="hidden" name="cmd" value="save">
    
<input type="text" name="name"
value
="<?php echo htmlspecialchars($c->person->name); ?>">
    
<button type="submit">Subscribe</button>
  
</form>
  
</body>
  
</html>

  11. 本地化(Localization)

  本地化意味着要支持多种语言,这个比较麻烦,你无非有两种方法可以选择:

A) 准备多重页面。

B) HTML页面中去除特定语言相关的内容。

  一般来说,A方法用得比较多,因为B方法会使得HTML页面的可读性很差。

  所以,你可以先写完一种语言的页面,然后把它们进行拷贝,用某种命名法区别不同语言的版本,比如index_fr.php表示index.php的法语版。

  为了保存用户的语言选择,你有几种方法:

A) 将语言设定保存在一个session变量或cookie之中;

B) 从HTTP头中读取locale值;

C) 把语言设定作为一个参数,追加在每个URL后面。

  看上去A方法比C方法容易得多(虽然session和cookie都有过期的问题),而B方法只能作为A或C的补充。

  最后不要忘了,数据库中的字段也必须进行本地化。

0
相关文章