PHPTAL:如何转储对象以查看所有属性

时间:2012-10-11 09:59:57

标签: template-tal phptal

我必须通过添加另一个字段“location”

来修改下面的PHPTAL模板
  <tal:block tal:repeat="contact Model/contactList">
    <div class="contactCell">
      Name: <span content="contact/name">contact name</span><br/>
      Number: <span content="contacy/number">2374687234</span><br/>

      <-- THIS NEEDS ADDING-->
      Location: <span content="contact/location">contact's location</span>

    </div>
  </tal:block>

我的问题是我不知道模型中有哪些方法和属性,我也不想读取PHP代码来跟踪它。我希望能够从模板中转出模型的所有属性,这样很容易看出我需要的属性是否已经可用,或者我是否必须要求后端开发人员使其可用。这样的事情会很好。

<div class="debug panel">
  <tal:dumpObject Model/contactList>
</div>

然后在我的HTML输出中产生类似的东西:

<div class="debug panel">
  contact Array
  [
    {
      [name] => John Smith
      [number] => 374862378
      [address] => 22 Acacia Avenue
      [location] => London
    },{
      [name] => Billy Bragg
      [number] => 384567365
      [address] => 10 Downing Street
      [location] => London
    },
    ...
  ]
</div>

通过这种方式,我可以立即看到我可以使用的内容以及我需要从其他开发者处获得的内容。

2 个答案:

答案 0 :(得分:3)

你可以走得很远:

<pre tal:content="php:print_r(object, true)"/>

如果对象是普通数组或stdClass对象。

但是,PHPTAL也可以读取对象的方法并调用魔术__get()方法,因此如果对象来自某些花哨的ORM,则可能无法列出所有可用的属性。

答案 1 :(得分:0)

您也可以在PHPTAL中使用var_dump:

<pre tal:content="php:var_dump(object)"/>