我第一次用symfony2编写web应用程序。我刚刚决定将服务器端拆分为几个控制器。我在我的默认控制器中创建我的基本对象,随着用户做出一些选择,数据变得更加具体,我想在不同的控制器中处理它(每个数据类)。为了实现这一点,需要将新的子类绑定到它的基类。类似的东西
// default controller
class DefaultController extends Controller
{
public $trip;
public function startAction()
{
// get data from request etc.
// ...
$trip = new Trip();
}
// handling everything else
}
然后,
// stage controller
class StageController extends Controller
{
public $stage;
public function setStageAction()
{
// get data from request etc.
// ...
$stage = new Stage();
$stage->SetTrip($trip); // doesn't work of course.
}
// handling everything else
}
为了弄清楚如何处理上述情况,我一直在想捆绑包中控制器的关系是什么样的。找不到任何东西,只能"将控制器设置为服务",这可能是解决我的情况的方法,但无助于我理解体系结构。我想这可能是个愚蠢的问题,还任何人
在symfony中,您可以为此使用服务。
每项服务都能完成任务,不管你委托给它什么。对于exmaple,有一个名为StageManager的服务,然后你在那里创建一个函数create Stage,在那里你完成所有的实体创建和映射,然后你可以将它持久化到数据库中。
在这里,您可以看到一个示例什么是服务,如何创建服务以及如何在控制器中使用服务。
链接