Объекты распределяются между пакетами (конечно).Если вы хотите вести блог, вы можете создать UserBundle (который мог бы переопределить, к примеру, FOSUserBundle ) и BlogBundle.UserBundle будет содержать вашу сущность User, BlogBundle будет содержать ваши сущности Post и Comment.Теперь пример кода:
В вашем UserBundle:
<?php
namespace YourVendorName\UserBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Table(name="my_user_table")
* @ORM\Entity(repositoryClass="YourVendorName\UserBundle\Entity\UserRepository")
*/
class User
{
/**
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(name="name")
*/
private $name;
// Getters and setters...
}
В вашем BlogBundle:
<?php
namespace YourVendorName\BlogBundle\Entity;
class Post
{
/**
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(name="title", type="string", length=255)
*/
private $title;
/**
* @ORM\Column(name="body", type="text")
*/
private $body;
/**
* @ORM\Column(name="created_at", type="datetime")
*/
private $createdAt;
/**
* @ORM\ManyToOne(targetEntity="YourVendorName\UserBundle\Entity\User")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
*/
private $author;
// Getters and setters
}
Таким образом, вы ссылаетесь на объект в другом комплекте благодаря таким аннотациям:
@ORM\ManyToOne(targetEntity="YourVendorName\UserBundle\Entity\User")
В любом случае, вы действительно должны прочитать документацию Symfony2 , это может помочь вам понять все.