关于在 Symfony2 中放置函数的意见

Opinion on where to place a function in Symfony2

我有一个 command(放在 Command/filename 中)可以从命令行调用。该函数本质上是克隆一个实体并以通用方式修改其某些功能,例如创建日期等。

为了使此代码可重用,我需要将此函数移到 command 之外,但我对将其放置在何处产生了冲突。我希望它在逻辑上最有意义,以便能够轻松找到此功能。

我可以创建一个帮助程序目录并开始将代码放在那里,或者可能是实体目录中的存储库目录,或者只是将代码放在实体本身上?

我只是想知道那里的一些 Symfony 老手会如何安排他们的代码。

foreach ($postcodeGeoLocations as $postcode => $geoLocation) {
        $location = new Location();
        $location->setLatitude($geoLocation['latitude']);
        $location->setLongitude($geoLocation['longitude']);

        $newAddress = clone $address;
        $newAddress->setLocation($location);
}

我通常使用不同的包设置一个网络项目:AdminBundle、FrontendBundle、CoreBundle。在这一点上,理解服务将在哪里结束是微不足道的。

在文件夹结构上,我一般把服务放在Controller同级的一个Service文件夹下。

警告:它们通常是小型、专注的服务,只负责单一职责。代码 "mid-way between a model and a helper" 在变成服务之前可能还需要一些润色。