我想创建一个侦听路由到两个域的请求的silex应用程序。根据域,响应应该不同。 我知道我可以简单地注入一个Request对象并使用它来获取主机,但我想使用更好的方式,如this,但使用Silex。
这是可能的,如果是这样的话:怎么样?
答案 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>
我希望这很有用:)