我可以使用silex获取请求的域名吗?

时间:2015-06-16 21:17:30

标签: php silex

我想创建一个侦听路由到两个域的请求的silex应用程序。根据域,响应应该不同。 我知道我可以简单地注入一个Request对象并使用它来获取主机,但我想使用更好的方式,如this,但使用Silex。

这是可能的,如果是这样的话:怎么样?

2 个答案:

答案 0 :(得分:3)

应该像为每条路线调用host()方法一样简单(对于所有路线都是can also do that on an entire ControllerCollection instance),如下所示:

<?php

// initialization, etc.

$app->get('/', function() {
  return new Response("Only from my.host.com!");
})
->host('my.host.com')
;

答案 1 :(得分:2)

这不是一个糟糕的问题 - 我最终在这里寻找快速回答。

事实证明这很简单 - 你只需要你的Symfony Request实例,它可以访问以下方法:

  /** @jsx React.DOM */

var TestText = React.createClass({
  getInitialState: function() {
    return {author: '', text: '',
           Values : ''
           };
  },
  handleAuthorChange: function(e) {
    this.setState({author: e.target.value});
  },
  handleTextChange: function(e) {
    this.setState({text: e.target.value});
  },
  handleSubmit: function(e) {
    e.preventDefault();
    var author = this.state.author.trim();
    var text = this.state.text.trim();
    if (text != "" || author!="") {
      var vals= "";
      this.setState({vals:"FirstName:"+author+","+"Say LastName:"+text })
      return vals;
    }
    // TODO: send request to the server
    this.setState({author:'' , text:'' });
  },
  render: function() {
    return (
      <form className="commentForm" onSubmit={this.handleSubmit}>
        <input
          type="text"
          placeholder="Your name"
          value={this.state.author}
          onChange={this.handleAuthorChange}
        />
        <input
          type="text"
          placeholder="Say something..."
          value={this.state.text}
          onChange={this.handleTextChange}
        />
        <input type="submit" value="Post" />
      <br/>
      <span>{this.state.vals}</span>
      </form>
    );
  }
});

React.renderComponent(<TestText/>, document.getElementById('TestButton'));

我的结果:

[2016-02-19 10:04:15] api.INFO:基本路径结果[] {&#34; base_url&#34;:&#34; api-test.xonadu.com&#34;} < / p>

我希望这很有用:)