为应用响应创建 XML 模板

Create an XML template for app response

这是我的代码...

$app->post(
  '/chk_db',
    function () use ($app){
      require_once 'lib/mysql.php';
      $dx = connect_db('MyPhotos');

      //XML RESPONSE
      $app->response->setStatus(0);
      $res = $app->response();
      $res['Content-Type'] = 'application/xml';
      $view = $app->view();
      $view->setTemplatesDirectory('./');
      $oArray = array("Status"=> $dx.status, "code" => $dx.code);
      return $app->render('chkdb.xml', $oArray);
  }
);

我想知道如何创建可以处理我的输入的 chkdb.xml 模板.. 然后会输出如下..

<MyPhotos>
   <Status>success</Status>
   <code>0</code>
</MyPhotos>

提前致谢....

编辑:已回答..谢谢 alexw

如果您使用Twig,您可以只使用双花括号占位符中的数组键。因此,如果您的 somearray 是:

$somearray = [
    "status" => "success",
    "code" => 0,
    "messages" => [
        "msg1" => "Hello",
        "msg2" => "Goodbye"
    ]
];

然后您只需制作 XML 模板 (template.xml):

<MyPhotos>
   <Status>{{status}}</Status>
   <code>{{code}}</code>
   <messages>
   {% for message in messages %}
      <message>{{message}}</message>
   {% endfor %}
   </messages>
</MyPhotos>

并渲染它:

$app->render("template.xml", $somearray);

要将 Twig 与 Slim 一起使用,您需要包含 Slim-Views package。配置说明在自述文件中。