`
dcaoyuan
  • 浏览: 306348 次
社区版块
存档分类
最新评论

Erlyweb调用机制

XML 
阅读更多
一、yaws查找在yaws.conf中的配置:
xml 代码
  1. <server localhost>
  2. port = 8002
  3. listen = 0.0.0.0
  4. docroot = d:/my-project/erlywebtest/apps/music/www
  5. appmods = <!---->music, erlyweb>
  6.    <opaque>
  7.      appname = music
  8. <!---->   </opaque>
  9. <!----></server>

根据appmods判断这是一个erlyweb应用,转向调用同名模块erlyweb的out(A)方法,并将out(A)返回值回传给请求方.

这里A是yaws args参数,包含了客户请求的所有内容,并插入"<opaque><opaque>***<opaque></opaque></opaque></opaque>"<opaque><opaque>之间的内容(可以通过atom: opaque)取出。

二、erlyweb的out(A)根据A中的opaque信息取得appname值music,如果这是是这个app的根调用,就调用app_music_controller的hook方法,hook方法默认转向去调用app_music_view中的index(data)方法(模板中简写为<% data %>),如果找不到的话,调用显式定义的第一个index(,,)方法

三、如果是调用component里的controller,则首先调用controller的index(A)方法,
</opaque></opaque>
  • 通常返回一个正好匹配相应的view中的index(data,,)的参数(data, Data)。
  • 或者返回(ewr, ...)转向,
  • 或者返回(ewc, ...)载入子components到本页。

总之,每一个component的调用总是首先查找controller的index(A)方法,然后用相应view的index(data)或者index(data, ,,,)方法render
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics