为应用响应创建一个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>

Thanks in advance....

编辑:回答. .由于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);

要在Slim中使用Twig,您需要包含Slim- views包。配置说明见README.