У меня есть такое дерево:
src
`-- AppBundle
|-- AppBundle.php
|-- Controller
| `-- MyController.php
`-- Service
`-- MyStringService.php
Теперь я хочу использовать службу «MyStringService» в «MyController» следующим образом:
<?php
namespace AppBundle\Controller;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Validator\Constraints\Date;
use Symfony\Component\VarDumper\Cloner\Data;
class MyController extends Controller
{
public function usernameAction(Request $request, $username)
{
$data = $this->get('my_string_service')->getString($username);
return $this->render('profile.html.twig', $data);
}
}
Итак, давайте посмотрим на сервис, который практически ничего не делает:
<?php
namespace AppBundle\Service;
class MyStringService
{
public function getString($string)
{
return $string;
}
}
И чтобы я мог вызвать его по идентификатору, указанному в моем services.yml:
services:
my_string_service:
class: AppBundle/Service/MyStringService
Когда я использую php bin/console debug:container my_string_service
, я получаю:
Information for Service "my_string_service"
===========================================
---------------- -----------------------------------
Option Value
---------------- -----------------------------------
Service ID my_string_service
Class AppBundle/Service/MyStringService
Tags -
Public no
Synthetic no
Lazy no
Shared yes
Abstract no
Autowired yes
Autoconfigured yes
---------------- -----------------------------------
Теперь, когда я запускаю службу и открываю страницу localhost:8000/
или localhost:8000/MyUsername
, я получаю ServiceNotFoundException
.
Так что теперь я только начал с symfony и не знаю, чего мне не хватает.
Заранее спасибо
public no
? - person Matteo   schedule 10.10.2017