用于PHP的yaml中表达app.get(“/:users /:names”)的等价物?

时间:2015-06-20 03:31:16

标签: javascript php node.js yaml

你知道如何在Node.js / Express / MongoDB堆栈中完成整个

app.get("/") {
  helloWorld()
}

app.get("/:users/:names") {
  script()
}

App Engine的app.yaml是否一致?或者我是以完全倒退的方式查看此文件。这个文件是我的路由文件等价的,对吗?

handlers:
- url: /.*
  script: helloworld.php
  
- url: /users/names/
  script: getName.php

因此,如果我的应用想要获取user-253的名称,它会选择用户,并使用从此GET请求中获取的信息查询该名称?

1 个答案:

答案 0 :(得分:0)

我使用Symfony读取yaml文件:http://symfony.com/doc/current/components/yaml/yaml_format.html

代码如下所示:

$yamlFile = __DIR__ . '/Routes.yaml';
$routes = yaml::parse(file_get_contents($yamlFile));

// Get routes into an associative array and show the urls.
$handlers = $routes['handlers'];

echo 'Url: ' . $handlers[0]['url'] . "\n";
echo 'Script: ' . $handlers[0]['script'] . "\n";
echo "\n";
echo 'Url: ' . $handlers[1]['url'] . "\n";
echo 'Script: ' . $handlers[1]['script'] . "\n";

/*
Output:

Url: /.*
Script: helloworld.php

Url: /users/names/
Script: getName.php

*/

注意:您需要格式化yaml文件,如下所示,否则会抛出此异常:在映射中无法定义序列项。

handlers:
    - url: /.*
      script: helloworld.php

    - url: /users/names/
      script: getName.php