Как загрузить сущность из другого пакета на Symfony2 - PullRequest
5 голосов
/ 18 ноября 2011

Допустим, у меня есть два пакета:

  1. Compagny\InterfaceBundle
  2. Compagny\UserBundle

Как я могу загрузить сущность UserBundle вконтроллер InterfaceBundle?

Controller моего Compagny/InterfaceBundle:

<?php
// src/Compagny/InterfaceBundle/Controller/DefaultController.php

namespace Compagny\InterfaceBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Compagny\UserBundle\Entity; // I believed this line will do the trick, but it doesn't

class DefaultController extends Controller
{
    public function indexAction()
    {
        $user = new User();
    }
}

Entity моего Compagny/UserBundle:

<?php

namespace Compagny\UserBundle\Entity

class User {
 public $name;
 public function setName($name) {
  // ...
 }
 public function getName() {
  // ...
 } 
}

(Давайтеговорит для этого примера, что класс User не использует Doctrine2, потому что ему не нужно подключаться к базе данных).

1 Ответ

12 голосов
/ 18 ноября 2011
<?php
// src/Compagny/InterfaceBundle/Controller/DefaultController.php

namespace Compagny\InterfaceBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Compagny\UserBundle\Entity\User; // It's not a trick, it's PHP 5.3 namespacing!

class DefaultController extends Controller
{
    public function indexAction()
    {
        $user = new User();
    }
}

Конечно, вы можете просто использовать класс из другого пространства имен. То, что это сущность, вообще не важно! Конечно, вы также можете запросить менеджера сущностей для этой сущности.

...