{"id":876,"date":"2015-11-28T22:52:59","date_gmt":"2015-11-29T03:52:59","guid":{"rendered":"http:\/\/xfloyd.net\/blog\/?p=876"},"modified":"2015-11-29T00:36:43","modified_gmt":"2015-11-29T05:36:43","slug":"orm-cheatsheet","status":"publish","type":"post","link":"http:\/\/xfloyd.net\/blog\/?p=876","title":{"rendered":"ORM Cheatsheet"},"content":{"rendered":"<div class=\"magellan\" data-magellan-expedition=\"fixed\">\n<div class=\"row\">\n<div class=\"large-12 columns\">\n<dl class=\"sub-nav\">\n<dd data-magellan-arrival=\"js\"><a href=\"#entity\">Entity<\/a><\/dd>\n<dd data-magellan-arrival=\"js\"><a href=\"#id\">Id<\/a><\/dd>\n<dd data-magellan-arrival=\"js\"><a href=\"#field\">Field<\/a><\/dd>\n<dd data-magellan-arrival=\"js\"><a href=\"#indexes\">Indexes<\/a><\/dd>\n<dd data-magellan-arrival=\"js\"><a href=\"#association\">Association<\/a><\/dd>\n<dd data-magellan-arrival=\"js\"><a href=\"#manytomany\">Many to Many<\/a><\/dd>\n<dd data-magellan-arrival=\"js\"><a href=\"#inheritance\">Inheritance<\/a><\/dd>\n<dd data-magellan-arrival=\"js\"><a href=\"#d2extensions\">Doctrine extensions<\/a><\/dd>\n<dd data-magellan-arrival=\"js\"><a href=\"#behaviors\">Behaviors<\/a><\/dd>\n<dd data-magellan-arrival=\"js\"><a href=\"#skipper\">Skipper<\/a><\/dd>\n<dd data-magellan-arrival=\"js\"><a href=\"#links\">Links<\/a><\/dd>\n<\/dl>\n<\/div>\n<\/div>\n<\/div>\n<p><!--more--><\/p>\n<div class=\"row\">\n<div class=\"large-12 columns\">\n<h2>Doctrine2 Installation<\/h2>\n<p><!-- element id 0 --><\/p>\n<p>Define the following requirement in your <code>composer.json<\/code> file:<\/p>\n<pre><code class=\"language-php rainbow\" data-language=\"language-php\">{\r\n    <span class=\"string\">\"require\"<\/span>: {\r\n        <span class=\"string\">\"doctrine\/orm\"<\/span>: <span class=\"string\">\"*\"<\/span>\r\n    }\r\n}\r\n<\/code><\/pre>\n<p>Then call <code>composer install<\/code> from your command line. For more details consult <a href=\"http:\/\/doctrine-orm.readthedocs.org\/en\/latest\/reference\/configuration.html#installation-and-configuration\">Doctrine2 documentation<\/a> or <a href=\"https:\/\/getcomposer.org\/doc\/00-intro.md\">Composer documentation<\/a>.<\/p>\n<h2>Doctrine2 configuration<\/h2>\n<h3>Class loading<\/h3>\n<p><!-- element id 1 --><\/p>\n<p>Autoloading is taken care of by Composer. You just have to include the composer autoload file in your project:<\/p>\n<pre><code class=\"language-php rainbow\" data-language=\"language-php\"><span class=\"keyword operator\">&lt;<\/span>?php\r\n<span class=\"comment\">\/\/ bootstrap.php<\/span>\r\n<span class=\"comment\">\/\/ Include Composer Autoload (relative to project root).<\/span>\r\nrequire_once <span class=\"string\">\"vendor\/autoload.php\"<\/span>;\r\n<\/code><\/pre>\n<p>For more details <a href=\"http:\/\/doctrine-orm.readthedocs.org\/en\/latest\/reference\/configuration.html#class-loading\">check the documentation<\/a>.<\/p>\n<h3>Entity Manager<\/h3>\n<p><!-- element id 2 --><\/p>\n<p>Once you have prepared the class loading, you acquire an EntityManager instance. The EntityManager class is the primary access point to ORM functionality provided by Doctrine.<\/p>\n<p><!-- which tabs are used --><\/p>\n<p><!-- which content is used --><\/p>\n<p><!-- display the content --><\/p>\n<div class=\"row\">\n<div class=\"large-8 columns\">\n<dl class=\"tabs\" data-tab=\"\">\n<dd class=\"active\"><a href=\"#panel3-1\">Annotations<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel3-2\">XML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel3-3\">YML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel3-4\">More info<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel3-5\">Links<\/a><\/dd>\n<\/dl>\n<div class=\"tabs-content\">\n<div id=\"panel3-1\" class=\"content active\">\n<pre><code class=\"language-php rainbow\" data-language=\"language-php\"><span class=\"keyword operator\">&lt;<\/span>?php\r\n<span class=\"comment\">\/\/ bootstrap.php<\/span>\r\nrequire_once <span class=\"string\">\"vendor\/autoload.php\"<\/span>;\r\n\r\nuse Doctrine\\ORM\\Tools\\Setup;\r\nuse Doctrine\\ORM\\EntityManager;\r\n\r\n$paths <span class=\"keyword operator\">=<\/span> <span class=\"keyword\">array<\/span>(<span class=\"string\">\"\/path\/to\/entity-files\"<\/span>);\r\n$isDevMode <span class=\"keyword operator\">=<\/span> <span class=\"constant language\">false<\/span>;\r\n\r\n<span class=\"comment\">\/\/ the connection configuration<\/span>\r\n$dbParams <span class=\"keyword operator\">=<\/span> <span class=\"keyword\">array<\/span>(\r\n    <span class=\"string\">'driver'<\/span>   <span class=\"keyword operator\">=<\/span><span class=\"keyword operator\">&gt;<\/span> <span class=\"string\">'pdo_mysql'<\/span>,\r\n    <span class=\"string\">'user'<\/span>     <span class=\"keyword operator\">=<\/span><span class=\"keyword operator\">&gt;<\/span> <span class=\"string\">'root'<\/span>,\r\n    <span class=\"string\">'password'<\/span> <span class=\"keyword operator\">=<\/span><span class=\"keyword operator\">&gt;<\/span> <span class=\"string\">''<\/span>,\r\n    <span class=\"string\">'dbname'<\/span>   <span class=\"keyword operator\">=<\/span><span class=\"keyword operator\">&gt;<\/span> <span class=\"string\">'foo'<\/span>,\r\n);\r\n\r\n$config <span class=\"keyword operator\">=<\/span> Setup::<span class=\"function call\">createAnnotationMetadataConfiguration<\/span>($paths, $isDevMode);\r\n$entityManager <span class=\"keyword operator\">=<\/span> EntityManager::<span class=\"function call\">create<\/span>($dbParams, $config);\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel3-2\" class=\"content \">\n<pre><code class=\"language-php rainbow\" data-language=\"language-php\"><span class=\"keyword operator\">&lt;<\/span>?php\r\n$paths <span class=\"keyword operator\">=<\/span> <span class=\"keyword\">array<\/span>(<span class=\"string\">\"\/path\/to\/xml-mappings\"<\/span>);\r\n$config <span class=\"keyword operator\">=<\/span> Setup::<span class=\"function call\">createXMLMetadataConfiguration<\/span>($paths, $isDevMode);\r\n$entityManager <span class=\"keyword operator\">=<\/span> EntityManager::<span class=\"function call\">create<\/span>($dbParams, $config);\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel3-3\" class=\"content \">\n<pre><code class=\"language-php rainbow\" data-language=\"language-php\"><span class=\"keyword operator\">&lt;<\/span>?php\r\n$paths <span class=\"keyword operator\">=<\/span> <span class=\"keyword\">array<\/span>(<span class=\"string\">\"\/path\/to\/yml-mappings\"<\/span>);\r\n$config <span class=\"keyword operator\">=<\/span> Setup::<span class=\"function call\">createYAMLMetadataConfiguration<\/span>($paths, $isDevMode);\r\n$entityManager <span class=\"keyword operator\">=<\/span> EntityManager::<span class=\"function call\">create<\/span>($dbParams, $config);\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel3-4\" class=\"content \">\n<p>Inside the <code>Setup<\/code> methods several assumptions are made:<\/p>\n<p>If <code>$isDevMode<\/code> is true caching is done in memory with the ArrayCache. Proxy objects are recreated on every request.<\/p>\n<p>If <code>$isDevMode<\/code> is false, check for Caches in the order APC, Xcache, Memcache (127.0.0.1:11211), Redis (127.0.0.1:6379) unless <code>$cache<\/code> is passed as fourth argument.<\/p>\n<p>If <code>$isDevMode<\/code> is false, set then proxy classes have to be explicitly created through the command line.<\/p>\n<p>If third argument <code>$proxyDir<\/code> is not set, use the systems temporary directory.<\/p>\n<\/div>\n<div id=\"panel3-5\" class=\"content \">\n<p><a href=\"http:\/\/doctrine-orm.readthedocs.org\/en\/latest\/reference\/configuration.html#obtaining-an-entitymanager\">Doctrine2 documentation<\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"large-4 large-centered columns\">\n<div class=\"image-tab\">\n<p><a href=\"#skipper\"><img decoding=\"async\" class=\"image-element\" src=\"\/images\/model.png\" alt=\"Doctrine 2 entities and association on the enhanced ER diagram automatically generated by Skipper\" \/><\/a><\/p>\n<p class=\"image-caption-model\">Generated by <a href=\"#skipper\">Skipper<\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3>Command line tool<\/h3>\n<p>You need to register your applications EntityManager to the console tool to make use of the tasks by creating a <code>cli-config.php<\/code> file with the following content:<\/p>\n<div class=\"row\">\n<div class=\"large-12 columns\">\n<dl class=\"tabs\" data-tab=\"\">\n<dd class=\"active\"><a href=\"#tool24\">version 2.4 and newer<\/a><\/dd>\n<dd><a href=\"#tool23\">version 2.3 and older<\/a><\/dd>\n<\/dl>\n<div class=\"tabs-content\">\n<div id=\"tool24\" class=\"content active\">\n<pre><code class=\"language-php rainbow\" data-language=\"language-php\"><span class=\"keyword operator\">&lt;<\/span>?php\r\nuse Doctrine\\ORM\\Tools\\Console\\ConsoleRunner;\r\n\r\n<span class=\"comment\">\/\/ replace with file to your own project bootstrap<\/span>\r\nrequire_once <span class=\"string\">'bootstrap.php'<\/span>;\r\n\r\n<span class=\"comment\">\/\/ replace with mechanism to retrieve EntityManager in your app<\/span>\r\n$entityManager <span class=\"keyword operator\">=<\/span> <span class=\"function call\">GetEntityManager<\/span>();\r\n\r\n<span class=\"keyword\">return<\/span> ConsoleRunner::<span class=\"function call\">createHelperSet<\/span>($entityManager);\r\n<\/code><\/pre>\n<\/div>\n<div id=\"tool23\" class=\"content\">\n<pre><code class=\"language-php rainbow\" data-language=\"language-php\"><span class=\"keyword operator\">&lt;<\/span>?php\r\n<span class=\"comment\">\/\/ cli-config.php<\/span>\r\nrequire_once <span class=\"string\">'my_bootstrap.php'<\/span>;\r\n\r\n<span class=\"comment\">\/\/ Any way to access the EntityManager from  your application<\/span>\r\n$em <span class=\"keyword operator\">=<\/span> <span class=\"function call\">GetMyEntityManager<\/span>();\r\n\r\n$helperSet <span class=\"keyword operator\">=<\/span> <span class=\"keyword\">new<\/span> \\Symfony\\Component\\Console\\Helper\\<span class=\"function call\">HelperSet<\/span>(<span class=\"keyword\">array<\/span>(\r\n    <span class=\"string\">'db'<\/span> <span class=\"keyword operator\">=<\/span><span class=\"keyword operator\">&gt;<\/span> <span class=\"keyword\">new<\/span> \\Doctrine\\DBAL\\Tools\\Console\\Helper\\<span class=\"function call\">ConnectionHelper<\/span>($em<span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span><span class=\"function call\">getConnection<\/span>()),\r\n    <span class=\"string\">'em'<\/span> <span class=\"keyword operator\">=<\/span><span class=\"keyword operator\">&gt;<\/span> <span class=\"keyword\">new<\/span> \\Doctrine\\ORM\\Tools\\Console\\Helper\\<span class=\"function call\">EntityManagerHelper<\/span>($em)\r\n));\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>For more details <a href=\"http:\/\/doctrine-orm.readthedocs.org\/en\/latest\/reference\/configuration.html#setting-up-the-commandline-tool\">check the documentation<\/a>.<\/p>\n<h2>Doctrine2 basic use<\/h2>\n<h3>Generating Doctrine2 model from database<\/h3>\n<p><!-- element id 3 --><\/p>\n<pre><code data-language=\"\">$ php doctrine orm:convert-mapping --from-database yml \/path\/to\/mapping-path-converted-to-yml\r\n<\/code><\/pre>\n<p>For more details <a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/tools.html#reverse-engineering\">check the documentation<\/a>.<\/p>\n<h3>Creating database tables from Doctrine2 model<\/h3>\n<p><!-- element id 4 --><\/p>\n<p>Generate the database schema:<\/p>\n<pre><code data-language=\"\">$ php doctrine orm:schema-tool:create\r\n\r\n<\/code><\/pre>\n<p>Update the database schema:<\/p>\n<pre><code data-language=\"\">$ php doctrine orm:schema-tool:update\r\n<\/code><\/pre>\n<p>For more details <a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/tools.html#entity-generation\">check the documentation<\/a>.<\/p>\n<h2 id=\"symfony\">Using Doctrine2 with Symfony2<\/h2>\n<h3>Installation<\/h3>\n<p><!-- element id 5 --><\/p>\n<p>Add required bundles to <code>composer.json<\/code>:<\/p>\n<pre><code class=\"language-json rainbow\" data-language=\"language-json\">    <span class=\"string\">\"require\"<\/span>: {\r\n        ....\r\n        ....\r\n        <span class=\"string\">\"doctrine\/orm\"<\/span>: <span class=\"string\">\"*\"<\/span>,\r\n        <span class=\"string\">\"doctrine\/doctrine-bundle\"<\/span>: <span class=\"string\">\"*\"<\/span>,\r\n    },\r\n<\/code><\/pre>\n<p>And enable the bundles in the Kernel:<\/p>\n<pre><code class=\"language-json rainbow\" data-language=\"language-json\"><span class=\"keyword\">class<\/span> AppKernel <span class=\"keyword\">extends<\/span> Kernel\r\n{\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">registerBundles<\/span>()\r\n    {\r\n        $bundles <span class=\"keyword operator\">=<\/span> <span class=\"keyword\">array<\/span>(\r\n            .......\r\n            <span class=\"keyword\">new<\/span> Doctrine\\Bundle\\DoctrineBundle\\<span class=\"function call\">DoctrineBundle<\/span>(),\r\n        );\r\n\r\n        .....\r\n\r\n        <span class=\"keyword\">return<\/span> $bundles;\r\n    }\r\n}\r\n<\/code><\/pre>\n<h3>Configuration<\/h3>\n<p><!-- element id 6 --><\/p>\n<p>Configure <code>app\/config\/config.yml<\/code> and add Doctrine section:<\/p>\n<pre><code class=\"language-yaml rainbow\" data-language=\"language-yaml\">doctrine:\r\n    dbal:\r\n        driver:   %database_driver%\r\n        host:     %database_host%\r\n        port:     %database_port%\r\n        dbname:   %database_name%\r\n        user:     %database_user%\r\n        password: %database_password%\r\n        charset:  UTF8\r\n\r\n    orm:\r\n        auto_generate_proxy_classes: %kernel.debug%\r\n        auto_mapping: <span class=\"constant language\">true<\/span>\r\n<\/code><\/pre>\n<p>Configure <code>app\/config\/parameters.yml<\/code> and set database connection parameters:<\/p>\n<pre><code class=\"language-yaml rainbow\" data-language=\"language-yaml\">parameters:\r\n    database_driver:   pdo_mysql\r\n    database_host:     <span class=\"constant numeric\">127.0<\/span>.<span class=\"constant numeric\">0.1<\/span>\r\n    database_port:     ~\r\n    database_name:     symfony\r\n    database_user:     UsernameHere\r\n    database_password: PasswordHere\r\n<\/code><\/pre>\n<h3>Configure your schema<\/h3>\n<p><!-- element id 7 --><\/p>\n<p>You can use annotations for schema definition. Entities can be stored at <code>src\\Acme\\SampleBundle\\Entity\\User.php<\/code>:<\/p>\n<pre><code class=\"language-php rainbow\" data-language=\"language-php\"><span class=\"keyword operator\">&lt;<\/span>?php\r\nnamespace Acme\\SampleBundle\\Entity;\r\nuse Doctrine\\ORM\\Mapping <span class=\"keyword\">AS<\/span> ORM;\r\n\r\n<span class=\"comment\">\/** \r\n * @ORM\\Entity\r\n * @ORM\\Table(name=\"acme_user\")\r\n *\/<\/span>\r\n<span class=\"keyword\">class<\/span> Event\r\n{\r\n    <span class=\"comment\">\/** \r\n     * @ORM\\Id\r\n     * @ORM\\Column(type=\"integer\")\r\n     * @ORM\\GeneratedValue(strategy=\"AUTO\")\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $id;\r\n\r\n    <span class=\"comment\">\/** \r\n     * @ORM\\Column(type=\"string\", unique=true, length=64, nullable=false)\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $name;\r\n}\r\n<\/code><\/pre>\n<p>Getters and setters can be generated simply by running:<\/p>\n<pre><code data-language=\"\">php app\/console doctrine:generate:entities Acme\r\n<\/code><\/pre>\n<h2>Using Doctrine2 with Symfony1.4<\/h2>\n<h3>Installation<\/h3>\n<p><!-- element id 8 --><\/p>\n<p>First we need to install the plugin from SVN with the following command from the root of your project:<\/p>\n<pre><code data-language=\"\">$ svn co http:\/\/svn.symfony-project.org\/plugins\/sfDoctrinePlugin\/branches\/1.3-2.0\/ plugins\/sfDoctrine2Plugin\r\n<\/code><\/pre>\n<p>Now you just need to enable the plugin:<\/p>\n<pre><code class=\"language-php rainbow\" data-language=\"language-php\"><span class=\"keyword\">class<\/span> ProjectConfiguration <span class=\"keyword\">extends<\/span> sfProjectConfiguration\r\n{\r\n  <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">setup<\/span>()\r\n  {\r\n    $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span><span class=\"function call\">enablePlugins<\/span>(<span class=\"string\">'sfDoctrine2Plugin'<\/span>);\r\n  }\r\n}\r\n<\/code><\/pre>\n<h3>Configuration<\/h3>\n<p><!-- element id 9 --><\/p>\n<p>Configure <code>config\/databases.yml<\/code> for database connection:<\/p>\n<pre><code class=\"language-yaml rainbow\" data-language=\"language-yaml\">all:\r\n  doctrine:\r\n    <span class=\"keyword\">class<\/span>: sfDoctrineDatabase\r\n    param:\r\n      options:\r\n        driver: pdo_mysql\r\n        user: root\r\n        password:\r\n        dbname: doctrine\r\n<\/code><\/pre>\n<h4 id=\"configure-your-schema\">Configure Your Schema<\/h4>\n<p>Below is an example of a simple User entity:<\/p>\n<pre><code class=\"language-yaml rainbow\" data-language=\"language-yaml\"><span class=\"comment\"># config\/doctrine\/schema.yml<\/span>\r\n \r\nModels\\User:\r\n  type: entity\r\n  table: user\r\n  id:\r\n    id:\r\n      type: <span class=\"keyword\">integer<\/span>\r\n      generator:\r\n        strategy: AUTO\r\n  fields:\r\n    username:\r\n      type: <span class=\"keyword\">string<\/span>\r\n      length: <span class=\"constant numeric\">255<\/span>\r\n    password:\r\n      type: <span class=\"keyword\">string<\/span>\r\n      length: <span class=\"constant numeric\">255<\/span>\r\n<\/code><\/pre>\n<h3>Basic use<\/h3>\n<p><!-- element id 10 --><\/p>\n<h4 id=\"writing-data-fixtures\">Writing Data Fixtures<\/h4>\n<p>The times of using YAML for data fixtures is no longer. Instead, you are only required to use plain PHP for loading your data fixtures.<\/p>\n<pre><code data-language=\"\">\/\/ data\/fixtures\/fixtures.php\r\n \r\n$em = $this-&gt;getEntityManager();\r\n \r\n$admin = new \\Models\\User();\r\n$admin-&gt;username = 'admin';\r\n$admin-&gt;password = 'changeme';\r\n<\/code><\/pre>\n<h4 id=\"building-doctrine\">Building Doctrine<\/h4>\n<p>Now you\u2019re ready to build everything. The following command will build models, forms, filters, database and load data fixtures.<\/p>\n<pre><code data-language=\"\">$ php symfony doctrine:build --all --and-load\r\n<\/code><\/pre>\n<h4 id=\"updating-schema\">Updating Schema<\/h4>\n<p>If you change your schema mapping information and want to update the database you can easily do so by running the following command after changing your mapping information.<\/p>\n<pre><code data-language=\"\">$ php symfony doctrine:build --all-classes --and-update-schema\r\n<\/code><\/pre>\n<h2 id=\"zend\">Using Doctrine2 with Zend Framework 2<\/h2>\n<h3>Installation<\/h3>\n<p><!-- element id 11 --><\/p>\n<pre><code data-language=\"\">php composer.phar require doctrine\/doctrine-orm-module:0.7.*\r\n<\/code><\/pre>\n<pre><code data-language=\"\">php composer.phar require zendframework\/zend-developer-tools:dev-master\r\n<\/code><\/pre>\n<pre><code data-language=\"\">cp vendor\/zendframework\/zend-developer-tools\/config\/zenddevelopertools.local.php.dist config\/autoload\/zdt.local.php\r\n<\/code><\/pre>\n<p>Enable the modules in <code>config\/application.config.php<\/code>:<\/p>\n<pre><code class=\"language-php rainbow\" data-language=\"language-php\"><span class=\"keyword\">return<\/span> <span class=\"keyword\">array<\/span>(\r\n    <span class=\"string\">'modules'<\/span> <span class=\"keyword operator\">=<\/span><span class=\"keyword operator\">&gt;<\/span> <span class=\"keyword\">array<\/span>(\r\n        <span class=\"string\">'ZendDeveloperTools'<\/span>,\r\n        <span class=\"string\">'DoctrineModule'<\/span>,\r\n        <span class=\"string\">'DoctrineORMModule'<\/span>,\r\n        <span class=\"string\">'Application'<\/span>,\r\n    ),\r\n    <span class=\"comment\">\/\/ [...]<\/span>\r\n);\r\n<\/code><\/pre>\n<h1>Doctrine2 Model Elements<\/h1>\n<h2>Schema file structure<\/h2>\n<p><!-- element id 12 --><\/p>\n<p>Doctrine2 uses one <code>*.dcm.xml<\/code> schema file for each entity. The file is structured like this:<\/p>\n<p><!-- which tabs are used --><\/p>\n<p><!-- which content is used --><\/p>\n<p><!-- display the content --><\/p>\n<div class=\"row\">\n<div class=\"large-8 columns\">\n<dl class=\"tabs\" data-tab=\"\">\n<dd class=\"active\"><a href=\"#panel13-1\">Annotations<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel13-2\">XML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel13-3\">YML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel13-5\">Links<\/a><\/dd>\n<\/dl>\n<div class=\"tabs-content\">\n<div id=\"panel13-1\" class=\"content active\">\n<pre><code class=\"language-php rainbow\" data-language=\"language-php\"><span class=\"keyword operator\">&lt;<\/span>?php\r\nuse Doctrine\\ORM\\Mapping <span class=\"keyword\">AS<\/span> ORM;\r\n\r\n<span class=\"comment\">\/** \r\n * @ORM\\Entity(repositoryClass=\"Doctrine\\ORM\\EntityRepository\")\r\n * @ORM\\Table\r\n *\/<\/span>\r\n<span class=\"keyword\">class<\/span> itemRecord\r\n{\r\n    <span class=\"comment\">\/** \r\n     * @ORM\\Id\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $id;\r\n\r\n    <span class=\"comment\">\/** \r\n     * @ORM\\Column\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $name;\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel13-2\" class=\"content \">\n<pre><code class=\"language-xml rainbow\" data-language=\"language-xml\"><span class=\"keyword operator\">&lt;<\/span>?xml version<span class=\"keyword operator\">=<\/span><span class=\"string\">\"1.0\"<\/span>?<span class=\"keyword operator\">&gt;<\/span>\r\n<span class=\"keyword operator\">&lt;<\/span>doctrine<span class=\"keyword operator\">-<\/span>mapping \r\nxmlns<span class=\"keyword operator\">=<\/span><span class=\"string\">\"http:\/\/doctrine-project.org\/schemas\/orm\/doctrine-mapping\"<\/span> \r\nxsi<span class=\"keyword operator\">=<\/span><span class=\"string\">\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"<\/span> \r\nschemaLocation<span class=\"keyword operator\">=<\/span><span class=\"string\">\"http:\/\/doctrine-project.org\/schemas\/orm\/doctrine-mapping.xsd\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n\r\n  <span class=\"keyword operator\">&lt;<\/span>entity name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"itemRecord\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n\r\n<span class=\"keyword operator\">&lt;<\/span>\/doctrine<span class=\"keyword operator\">-<\/span>mapping<span class=\"keyword operator\">&gt;<\/span>\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel13-3\" class=\"content \">\n<pre><code class=\"language-yaml rainbow\" data-language=\"language-yaml\">itemRecord:\r\n  type: entity\r\n  fields:\r\n  indexes:\r\n  oneToOne:\r\n  oneToMany:\r\n  manyToOne:\r\n  manyToMany:\r\n  discriminatorColumn:\r\n  discriminatorMap:\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel13-5\" class=\"content \">\n<ul>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/xml-mapping.html\">xml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/yaml-mapping.html\">yml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/php-mapping.html\">php mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/annotations-reference.html\">annotation reference<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"large-4 large-centered columns\">\n<div class=\"image-tab\">\n<p><a href=\"#skipper\"><img decoding=\"async\" class=\"image-element\" src=\"\/images\/elements\/model.png\" alt=\"Doctrine 2 schema as ER diagram automatically generated by Skipper.\" \/><\/a><\/p>\n<p class=\"image-caption-model\">Generated by <a href=\"#skipper\">Skipper<\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>You can go and see how to <a href=\"#skipper\">do this in few clicks<\/a>.<\/p>\n<h2 id=\"entity\">Entity<\/h2>\n<h4>Simple entity<\/h4>\n<p><!-- element id 13 --><\/p>\n<p>Simple entity with a primary key and several fields:<\/p>\n<p><!-- which tabs are used --><\/p>\n<p><!-- which content is used --><\/p>\n<p><!-- display the content --><\/p>\n<div class=\"row\">\n<div class=\"large-8 columns\">\n<dl class=\"tabs\" data-tab=\"\">\n<dd class=\"active\"><a href=\"#panel14-1\">Annotations<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel14-2\">XML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel14-3\">YML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel14-5\">Links<\/a><\/dd>\n<\/dl>\n<div class=\"tabs-content\">\n<div id=\"panel14-1\" class=\"content active\">\n<pre><code class=\"language-php rainbow\" data-language=\"language-php\"><span class=\"keyword operator\">&lt;<\/span>?php\r\nuse Doctrine\\ORM\\Mapping <span class=\"keyword\">AS<\/span> ORM;\r\n\r\n<span class=\"comment\">\/**\r\n * @ORM\\Entity\r\n *\/<\/span>\r\n<span class=\"keyword\">class<\/span> author\r\n{\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\Id\r\n     * @ORM\\Column(type=\"integer\")\r\n     * @ORM\\GeneratedValue(strategy=\"AUTO\")\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $id;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\Column(type=\"string\", nullable=false)\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $firstName;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\Column(type=\"string\", nullable=false)\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $lastName;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\Column(type=\"string\", nullable=true)\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $birthDate;\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel14-2\" class=\"content \">\n<pre><code class=\"language-xml rainbow\" data-language=\"language-xml\"><span class=\"keyword operator\">&lt;<\/span>entity name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"author\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>id name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"id\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"integer\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>generator strategy<span class=\"keyword operator\">=<\/span><span class=\"string\">\"AUTO\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>\/id<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"firstName\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"string\"<\/span> <span class=\"constant language\">null<\/span>able<span class=\"keyword operator\">=<\/span><span class=\"string\">\"false\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"lastName\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"string\"<\/span> <span class=\"constant language\">null<\/span>able<span class=\"keyword operator\">=<\/span><span class=\"string\">\"false\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"birthDate\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"string\"<\/span> <span class=\"constant language\">null<\/span>able<span class=\"keyword operator\">=<\/span><span class=\"string\">\"true\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n<span class=\"keyword operator\">&lt;<\/span>\/entity<span class=\"keyword operator\">&gt;<\/span>\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel14-3\" class=\"content \">\n<pre><code class=\"language-yaml rainbow\" data-language=\"language-yaml\">author:\r\n  type: entity\r\n  fields:\r\n    id:\r\n      id: <span class=\"constant language\">true<\/span>\r\n      type: <span class=\"keyword\">integer<\/span>\r\n      generator:\r\n        strategy: AUTO\r\n    firstName:\r\n      type: <span class=\"keyword\">string<\/span>\r\n      <span class=\"constant language\">null<\/span>able: <span class=\"constant language\">false<\/span>\r\n    lastName:\r\n      type: <span class=\"keyword\">string<\/span>\r\n      <span class=\"constant language\">null<\/span>able: <span class=\"constant language\">false<\/span>\r\n    birthDate:\r\n      type: <span class=\"keyword\">string<\/span>\r\n      <span class=\"constant language\">null<\/span>able: <span class=\"constant language\">true<\/span>\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel14-5\" class=\"content \">\n<ul>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/xml-mapping.html#defining-an-entity\">xml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/yaml-mapping.html\">yml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/php-mapping.html\">php mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/annotations-reference.html#entity\">annotation reference<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"large-4 large-centered columns\">\n<div class=\"image-tab\">\n<p><a href=\"#skipper\"><img decoding=\"async\" class=\"image-element\" src=\"\/images\/elements\/simpleentity.png\" alt=\"Doctrine 2 entity displayed in Skipper ER diagram.\" \/><\/a><\/p>\n<p class=\"image-caption-model\">Generated by <a href=\"#skipper\">Skipper<\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h4>Entity with all options defined<\/h4>\n<p><!-- element id 14 --><\/p>\n<p>Entity with all options defined:<\/p>\n<p><!-- which tabs are used --><\/p>\n<p><!-- which content is used --><\/p>\n<p><!-- display the content --><\/p>\n<div class=\"row\">\n<div class=\"large-8 columns\">\n<dl class=\"tabs\" data-tab=\"\">\n<dd class=\"active\"><a href=\"#panel15-1\">Annotations<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel15-2\">XML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel15-3\">YML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel15-5\">Links<\/a><\/dd>\n<\/dl>\n<div class=\"tabs-content\">\n<div id=\"panel15-1\" class=\"content active\">\n<pre><code class=\"language-php rainbow\" data-language=\"language-php\"><span class=\"keyword operator\">&lt;<\/span>?php\r\nuse Doctrine\\ORM\\Mapping <span class=\"keyword\">AS<\/span> ORM;\r\n\r\n<span class=\"comment\">\/**\r\n * \r\n * @ORM\\Table(\r\n *     schema=\"item_record\",\r\n *     name=\"item_record\",\r\n *     options={\r\n *         \"charset\":\"utf8\",\r\n *         \"collate\":\"utf8_unicode_ci\",\r\n *         \"comment\":\"library record of a work\",\r\n *         \"temporary\":false,\r\n *         \"engine\":\"InnoDB\"\r\n *     },\r\n *     indexes={\r\n *         @ORM\\Index(name=\"ix_name\", columns={\"itemRecord_name\"}),\r\n *         @ORM\\Index(name=\"ix_name_publisher\", columns={\"itemRecord_publisherId\",\"itemRecord_name\"})\r\n *     },\r\n *     uniqueConstraints={\r\n *         @ORM\\UniqueConstraint(name=\"ix_name_ean\", columns={\"itemRecord_name\",\"eanId\"}),\r\n *         @ORM\\UniqueConstraint(name=\"ix_ean_publisher\", columns={\"itemRecord_publisherId\",\"eanId\"})\r\n *     }\r\n * )\r\n * @ORM\\DiscriminatorMap(\r\n *     {\"itemRecord\"=\"itemRecord\",\"book\"=\"book\",\"magazine\"=\"magazine\",\"audioRecord\"=\"audioRecord\"}\r\n * )\r\n * @ORM\\DiscriminatorColumn(name=\"item\", type=\"string\")\r\n * @ORM\\InheritanceType(\"JOINED\")\r\n * \r\n * \r\n * \r\n * @ORM\\HasLifecycleCallbacks\r\n * @ORM\\ChangeTrackingPolicy(\"DEFERRED_IMPLICIT\")\r\n * @ORM\\Entity(repositoryClass=\"Doctrine\\ORM\\EntityRepository\")\r\n *\/<\/span>\r\n<span class=\"keyword\">class<\/span> itemRecord\r\n{\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\Id\r\n     * @ORM\\Column()\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $id;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\Column()\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $name;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\OneToOne()\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $ean;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\OneToMany()\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $physicalCopy;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\ManyToOne()\r\n     * @ORM\\JoinColumn()\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $publisher;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\ManyToMany()\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $author;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\PostPersist\r\n     *\/<\/span>\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">sendOptinMail<\/span>()\r\n    {\r\n    }\r\n}\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel15-2\" class=\"content \">\n<pre><code class=\"language-xml rainbow\" data-language=\"language-xml\"><span class=\"keyword operator\">&lt;<\/span>entity name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"library\\itemRecord\"<\/span> \r\ninheritance<span class=\"keyword operator\">-<\/span>type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"JOINED\"<\/span> \r\nchange<span class=\"keyword operator\">-<\/span>tracking<span class=\"keyword operator\">-<\/span>policy<span class=\"keyword operator\">=<\/span><span class=\"string\">\"DEFERRED_IMPLICIT\"<\/span> \r\nrepository<span class=\"keyword operator\">-<\/span><span class=\"keyword\">class<\/span><span class=\"keyword operator\">=<\/span><span class=\"string\">\"Doctrine\\ORM\\EntityRepository\"<\/span> \r\nschema<span class=\"keyword operator\">=<\/span><span class=\"string\">\"item_record\"<\/span> table<span class=\"keyword operator\">=<\/span><span class=\"string\">\"item_record\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>id name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"id\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"name\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>indexes\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>unique<span class=\"keyword operator\">-<\/span>constraints\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>lifecycle<span class=\"keyword operator\">-<\/span>callbacks\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>many<span class=\"keyword operator\">-<\/span>to<span class=\"keyword operator\">-<\/span>one field<span class=\"keyword operator\">=<\/span><span class=\"string\">\"publisher\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>one<span class=\"keyword operator\">-<\/span>to<span class=\"keyword operator\">-<\/span>one field<span class=\"keyword operator\">=<\/span><span class=\"string\">\"ean\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>one<span class=\"keyword operator\">-<\/span>to<span class=\"keyword operator\">-<\/span>many field<span class=\"keyword operator\">=<\/span><span class=\"string\">\"physicalCopy\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>many<span class=\"keyword operator\">-<\/span>to<span class=\"keyword operator\">-<\/span>many field<span class=\"keyword operator\">=<\/span><span class=\"string\">\"author\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>discriminator<span class=\"keyword operator\">-<\/span>column name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"item\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>discriminator<span class=\"keyword operator\">-<\/span>map\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>options<span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>option name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"charset\"<\/span> value<span class=\"keyword operator\">=<\/span><span class=\"string\">\"utf8\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>option name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"collate\"<\/span> value<span class=\"keyword operator\">=<\/span><span class=\"string\">\"utf8_unicode_ci\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>option name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"comment\"<\/span> value<span class=\"keyword operator\">=<\/span><span class=\"string\">\"library record of a work\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>option name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"temporary\"<\/span> value<span class=\"keyword operator\">=<\/span><span class=\"string\">\"false\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>option name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"engine\"<\/span> value<span class=\"keyword operator\">=<\/span><span class=\"string\">\"InnoDB\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/options<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>\/entity<span class=\"keyword operator\">&gt;<\/span>\r\n<span class=\"keyword operator\">&lt;<\/span>\/doctrine<span class=\"keyword operator\">-<\/span>mapping<span class=\"keyword operator\">&gt;<\/span>\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel15-3\" class=\"content \">\n<pre><code class=\"language-yaml rainbow\" data-language=\"language-yaml\">library\\itemRecord:\r\n  type: entity\r\n  inheritanceType: JOINED\r\n  changeTrackingPolicy: DEFERRED_IMPLICIT\r\n  repositoryClass: Doctrine\\ORM\\EntityRepository\r\n  schema: item_record\r\n  table: item_record\r\n  fields:\r\n  indexes:\r\n  uniqueConstraints:\r\n  lifecycleCallbacks:\r\n  options:\r\n    charset: utf8\r\n    collate: utf8_unicode_ci\r\n    comment: library record of a work\r\n    temporary: <span class=\"constant language\">false<\/span>\r\n    engine: InnoDB\r\n  oneToOne:\r\n  oneToMany:\r\n  manyToOne:\r\n  manyToMany:\r\n  discriminatorColumn:\r\n  discriminatorMap:\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel15-5\" class=\"content \">\n<ul>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/xml-mapping.html#defining-an-entity\">xml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/yaml-mapping.html\">yml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/php-mapping.html\">php mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/annotations-reference.html#entity\">annotation reference<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"large-4 large-centered columns\">\n<div class=\"image-tab\">\n<p><a href=\"#skipper\"><img decoding=\"async\" class=\"image-element\" src=\"\/images\/elements\/alloptions.png\" alt=\"Doctrine 2 entity and its association shown is Skipper visual editor.\" \/><\/a><\/p>\n<p class=\"image-caption-model\">Generated by <a href=\"#skipper\">Skipper<\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>You can go and see how to <a href=\"#skipper\">do this in few clicks<\/a>.<\/p>\n<h2 id=\"id\">Id<\/h2>\n<p><!-- element id 15 --><\/p>\n<p>Primary key definition:<\/p>\n<p><!-- which tabs are used --><\/p>\n<p><!-- which content is used --><\/p>\n<p><!-- display the content --><\/p>\n<div class=\"row\">\n<div class=\"large-8 columns\">\n<dl class=\"tabs\" data-tab=\"\">\n<dd class=\"active\"><a href=\"#panel16-1\">Annotations<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel16-2\">XML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel16-3\">YML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel16-5\">Links<\/a><\/dd>\n<\/dl>\n<div class=\"tabs-content\">\n<div id=\"panel16-1\" class=\"content active\">\n<pre><code class=\"language-php rainbow\" data-language=\"language-php\"><span class=\"comment\">\/**\r\n * @ORM\\Entity\r\n *\/<\/span>\r\n<span class=\"keyword\">class<\/span> itemRecord\r\n{\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\Id\r\n     * @ORM\\Column(\r\n     *     type=\"integer\",\r\n     *     name=\"itemRecord_id\"\r\n     *     length=255     \r\n     * )\r\n     * @ORM\\GeneratedValue(strategy=\"AUTO\")\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $id;\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel16-2\" class=\"content \">\n<pre><code class=\"language-xml rainbow\" data-language=\"language-xml\"><span class=\"keyword operator\">&lt;<\/span>id name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"id\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"integer\"<\/span> length<span class=\"keyword operator\">=<\/span><span class=\"string\">\"255\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>generator strategy<span class=\"keyword operator\">=<\/span><span class=\"string\">\"AUTO\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n<span class=\"keyword operator\">&lt;<\/span>\/id<span class=\"keyword operator\">&gt;<\/span>\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel16-3\" class=\"content \">\n<pre><code class=\"language-yaml rainbow\" data-language=\"language-yaml\">  fields:\r\n    id:\r\n      id: <span class=\"constant language\">true<\/span>\r\n      type: <span class=\"keyword\">integer<\/span>\r\n      length: <span class=\"constant numeric\">255<\/span>\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel16-5\" class=\"content \">\n<ul>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/xml-mapping.html#defining-identity-and-generator-strategies\">xml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/yaml-mapping.html\">yml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/php-mapping.html\">php mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/annotations-reference.html#annref-id\">annotation reference<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"large-4 large-centered columns\">\n<div class=\"image-tab\">\n<p><a href=\"#skipper\"><img decoding=\"async\" class=\"image-element\" src=\"\/images\/elements\/primarykey.png\" alt=\"Doctrine 2 entity imported to Skipper visual model from schema definitions.\" \/><\/a><\/p>\n<p class=\"image-caption-model\">Generated by <a href=\"#skipper\">Skipper<\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!-- element id 16 --><\/p>\n<p>Primary key with all base properties set:<\/p>\n<p><!-- which tabs are used --><\/p>\n<p><!-- which content is used --><\/p>\n<p><!-- display the content --><\/p>\n<div class=\"row\">\n<div class=\"large-8 columns\">\n<dl class=\"tabs\" data-tab=\"\">\n<dd class=\"active\"><a href=\"#panel17-1\">Annotations<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel17-2\">XML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel17-3\">YML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel17-5\">Links<\/a><\/dd>\n<\/dl>\n<div class=\"tabs-content\">\n<div id=\"panel17-1\" class=\"content active\">\n<pre><code class=\"language-php rainbow\" data-language=\"language-php\"><span class=\"comment\">\/**\r\n * @ORM\\Entity\r\n *\/<\/span>\r\n<span class=\"keyword\">class<\/span> itemRecord\r\n{\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\Id\r\n     * @ORM\\Column(\r\n     *     type=\"integer\",\r\n     *     name=\"itemRecord_id\",\r\n     *     length=255\r\n     *     columnDefinition=\"itemRecord_id\",\r\n     *     precision=3,\r\n     *     scale=3,\r\n     *     options={\"unsigned\":true,\"comment\":\"this is primary key\",\"version\":2}\r\n     * )\r\n     * @ORM\\Version\r\n     * @ORM\\GeneratedValue(strategy=\"SEQUENCE\")\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $id;\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel17-2\" class=\"content \">\n<pre><code class=\"language-xml rainbow\" data-language=\"language-xml\"><span class=\"keyword operator\">&lt;<\/span>id name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"id\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"integer\"<\/span> length<span class=\"keyword operator\">=<\/span><span class=\"string\">\"255\"<\/span> column<span class=\"keyword operator\">=<\/span><span class=\"string\">\"itemRecord_id\"<\/span> \r\ncolumn<span class=\"keyword operator\">-<\/span>definition<span class=\"keyword operator\">=<\/span><span class=\"string\">\"itemRecord_id\"<\/span> precision<span class=\"keyword operator\">=<\/span><span class=\"string\">\"3\"<\/span> scale<span class=\"keyword operator\">=<\/span><span class=\"string\">\"3\"<\/span> version<span class=\"keyword operator\">=<\/span><span class=\"string\">\"true\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>generator strategy<span class=\"keyword operator\">=<\/span><span class=\"string\">\"SEQUENCE\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>sequence<span class=\"keyword operator\">-<\/span>generator \r\n  allocation<span class=\"keyword operator\">-<\/span>size<span class=\"keyword operator\">=<\/span><span class=\"string\">\"1\"<\/span> \r\n  initial<span class=\"keyword operator\">-<\/span>value<span class=\"keyword operator\">=<\/span><span class=\"string\">\"1\"<\/span> \r\n  sequence<span class=\"keyword operator\">-<\/span>name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"itemRecord_id_seq\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>options<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>option name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"unsigned\"<\/span> value<span class=\"keyword operator\">=<\/span><span class=\"string\">\"true\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>option name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"comment\"<\/span> value<span class=\"keyword operator\">=<\/span><span class=\"string\">\"this is primary key\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>option name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"version\"<\/span> value<span class=\"keyword operator\">=<\/span><span class=\"string\">\"2\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>\/options<span class=\"keyword operator\">&gt;<\/span>\r\n<span class=\"keyword operator\">&lt;<\/span>\/id<span class=\"keyword operator\">&gt;<\/span>\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel17-3\" class=\"content \">\n<pre><code class=\"language-yaml rainbow\" data-language=\"language-yaml\">itemRecord:\r\n  type: entity\r\n  fields:\r\n    id:\r\n      id: <span class=\"constant language\">true<\/span>\r\n      type: <span class=\"keyword\">integer<\/span>\r\n      length: <span class=\"constant numeric\">255<\/span>\r\n      column: itemRecord_id\r\n      columnDefinition: itemRecord_id\r\n      precision: <span class=\"constant numeric\">3<\/span>\r\n      scale: <span class=\"constant numeric\">3<\/span>\r\n      version: <span class=\"constant language\">true<\/span>\r\n      generator:\r\n        strategy: SEQUENCE\r\n      sequence<span class=\"keyword operator\">-<\/span>generator:\r\n        allocationSize: <span class=\"constant numeric\">1<\/span>\r\n        initialValue: <span class=\"constant numeric\">1<\/span>\r\n        sequenceName: itemRecord_id_seq\r\n      options:\r\n        <span class=\"keyword\">unsigned<\/span>: <span class=\"constant language\">true<\/span>\r\n        comment: <span class=\"keyword\">this<\/span> is primary key\r\n        version: <span class=\"constant numeric\">2<\/span>\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel17-5\" class=\"content \">\n<ul>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/xml-mapping.html#defining-identity-and-generator-strategies\">xml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/yaml-mapping.html\">yml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/php-mapping.html\">php mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/annotations-reference.html#annref-id\">annotation reference<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"large-4 large-centered columns\">\n<div class=\"image-tab\">\n<p><a href=\"#skipper\"><img decoding=\"async\" class=\"image-element\" src=\"\/images\/elements\/primarykey.png\" alt=\"Doctrine 2 entity imported to Skipper visual model from schema definitions.\" \/><\/a><\/p>\n<p class=\"image-caption-model\">Generated by <a href=\"#skipper\">Skipper<\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>You can go and see how to <a href=\"#skipper\">do this in few clicks<\/a>.<\/p>\n<h2 id=\"field\">Field<\/h2>\n<p><!-- element id 17 --><\/p>\n<p>Regular field definition:<\/p>\n<p><!-- which tabs are used --><\/p>\n<p><!-- which content is used --><\/p>\n<p><!-- display the content --><\/p>\n<div class=\"row\">\n<div class=\"large-8 columns\">\n<dl class=\"tabs\" data-tab=\"\">\n<dd class=\"active\"><a href=\"#panel18-1\">Annotations<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel18-2\">XML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel18-3\">YML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel18-5\">Links<\/a><\/dd>\n<\/dl>\n<div class=\"tabs-content\">\n<div id=\"panel18-1\" class=\"content active\">\n<pre><code data-language=\"\">\/**\r\n * @ORM\\Entity\r\n *\/\r\nclass itemRecord\r\n{\r\n    \/**\r\n     * @ORM\\Column(\r\n     *     type=\"string\",\r\n     *     unique=true,\r\n     *     length=255\r\n     * )\r\n     *\/\r\n    private $name;\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel18-2\" class=\"content \">\n<pre><code class=\"language-xml rainbow\" data-language=\"language-xml\"><span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"name\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"string\"<\/span> length<span class=\"keyword operator\">=<\/span><span class=\"string\">\"255\"<\/span> <span class=\"constant language\">null<\/span>able<span class=\"keyword operator\">=<\/span><span class=\"string\">\"true\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel18-3\" class=\"content \">\n<pre><code class=\"language-yaml rainbow\" data-language=\"language-yaml\">    name:\r\n      type: <span class=\"keyword\">string<\/span>\r\n      unique: <span class=\"constant language\">true<\/span>\r\n      length: <span class=\"constant numeric\">255<\/span>\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel18-5\" class=\"content \">\n<ul>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/xml-mapping.html#defining-fields\">xml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/yaml-mapping.html\">yml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/php-mapping.html\">php mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/annotations-reference.html#column\">annotation reference<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"large-4 large-centered columns\">\n<div class=\"image-tab\">\n<p><a href=\"#skipper\"><img decoding=\"async\" class=\"image-element\" src=\"\/images\/elements\/field.png\" alt=\"Doctrine 2 entity and selected field in Skipper ER diagram.\" \/><\/a><\/p>\n<p class=\"image-caption-model\">Generated by <a href=\"#skipper\">Skipper<\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!-- element id 18 --><\/p>\n<p>Regular field with all options set:<\/p>\n<p><!-- which tabs are used --><\/p>\n<p><!-- which content is used --><\/p>\n<p><!-- display the content --><\/p>\n<div class=\"row\">\n<div class=\"large-8 columns\">\n<dl class=\"tabs\" data-tab=\"\">\n<dd class=\"active\"><a href=\"#panel19-1\">Annotations<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel19-2\">XML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel19-3\">YML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel19-5\">Links<\/a><\/dd>\n<\/dl>\n<div class=\"tabs-content\">\n<div id=\"panel19-1\" class=\"content active\">\n<pre><code class=\"language-php rainbow\" data-language=\"language-php\"><span class=\"comment\">\/**\r\n * @ORM\\Entity\r\n *\/<\/span>\r\n<span class=\"keyword\">class<\/span> itemRecord\r\n{\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\Column(\r\n     *     type=\"string\",\r\n     *     length=255,\r\n     *     nullable=false,\r\n     *     name=\"itemRecord_name\",\r\n     *     columnDefinition=\"itemRecord_name\",\r\n     *     precision=1,\r\n     *     scale=1,\r\n     *     options={\"comment\":\"this is field\",\"unsigned\":true,\"version\":3}\r\n     * )\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $item;\r\n}    \r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel19-2\" class=\"content \">\n<pre><code class=\"language-xml rainbow\" data-language=\"language-xml\"><span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"item\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"string\"<\/span> length<span class=\"keyword operator\">=<\/span><span class=\"string\">\"255\"<\/span> <span class=\"constant language\">null<\/span>able<span class=\"keyword operator\">=<\/span><span class=\"string\">\"false\"<\/span> column<span class=\"keyword operator\">=<\/span><span class=\"string\">\"itemRecord_name\"<\/span> column<span class=\"keyword operator\">-<\/span>definition<span class=\"keyword operator\">=<\/span><span class=\"string\">\"itemRecord_name\"<\/span> precision<span class=\"keyword operator\">=<\/span><span class=\"string\">\"1\"<\/span> scale<span class=\"keyword operator\">=<\/span><span class=\"string\">\"1\"<\/span> version<span class=\"keyword operator\">=<\/span><span class=\"string\">\"false\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>generator<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>strategy<span class=\"keyword operator\">&gt;<\/span>UUID<span class=\"keyword operator\">&lt;<\/span>\/strategy<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>\/generator<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>sequence<span class=\"keyword operator\">-<\/span>generator<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>allocation<span class=\"keyword operator\">-<\/span>size<span class=\"keyword operator\">&gt;<\/span><span class=\"constant numeric\">2<\/span><span class=\"keyword operator\">&lt;<\/span>\/allocation<span class=\"keyword operator\">-<\/span>size<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>initial<span class=\"keyword operator\">-<\/span>value<span class=\"keyword operator\">&gt;<\/span><span class=\"constant numeric\">1<\/span><span class=\"keyword operator\">&lt;<\/span>\/initial<span class=\"keyword operator\">-<\/span>value<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>sequence<span class=\"keyword operator\">-<\/span>name<span class=\"keyword operator\">&gt;<\/span>itemRecord_name_seq<span class=\"keyword operator\">&lt;<\/span>\/sequence<span class=\"keyword operator\">-<\/span>name<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>\/sequence<span class=\"keyword operator\">-<\/span>generator<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>options<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>option name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"comment\"<\/span> value<span class=\"keyword operator\">=<\/span><span class=\"string\">\"this is field\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>option name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"unsigned\"<\/span> value<span class=\"keyword operator\">=<\/span><span class=\"string\">\"true\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>option name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"version\"<\/span> value<span class=\"keyword operator\">=<\/span><span class=\"string\">\"3\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>\/options<span class=\"keyword operator\">&gt;<\/span>\r\n<span class=\"keyword operator\">&lt;<\/span>\/field<span class=\"keyword operator\">&gt;<\/span>\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel19-3\" class=\"content \">\n<pre><code class=\"language-yaml rainbow\" data-language=\"language-yaml\">itemRecord:\r\n  type: entity\r\n  fields:\r\n    item:\r\n      type: <span class=\"keyword\">string<\/span>\r\n      length: <span class=\"constant numeric\">255<\/span>\r\n      <span class=\"constant language\">null<\/span>able: <span class=\"constant language\">false<\/span>\r\n      column: itemRecord_name\r\n      columnDefinition: itemRecord_name\r\n      precision: <span class=\"constant numeric\">1<\/span>\r\n      scale: <span class=\"constant numeric\">1<\/span>\r\n      version: <span class=\"constant language\">false<\/span>\r\n      generator: \r\n      sequence<span class=\"keyword operator\">-<\/span>generator: \r\n      options:\r\n        comment: <span class=\"keyword\">this<\/span> is field\r\n        <span class=\"keyword\">unsigned<\/span>: <span class=\"constant language\">true<\/span>\r\n        version: <span class=\"constant numeric\">3<\/span>\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel19-5\" class=\"content \">\n<ul>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/xml-mapping.html#defining-fields\">xml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/yaml-mapping.html\">yml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/php-mapping.html\">php mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/annotations-reference.html#column\">annotation reference<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"large-4 large-centered columns\">\n<div class=\"image-tab\">\n<p><a href=\"#skipper\"><img decoding=\"async\" class=\"image-element\" src=\"\/images\/elements\/field.png\" alt=\"Doctrine 2 entity and selected field in Skipper ER diagram.\" \/><\/a><\/p>\n<p class=\"image-caption-model\">Generated by <a href=\"#skipper\">Skipper<\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>You can go and see how to <a href=\"#skipper\">do this in few clicks<\/a>.<\/p>\n<h2 id=\"indexes\">Index<\/h2>\n<h4>Indexes<\/h4>\n<p><!-- element id 19 --><\/p>\n<p>Non-unique index:<\/p>\n<p><!-- which tabs are used --><\/p>\n<p><!-- which content is used --><\/p>\n<p><!-- display the content --><\/p>\n<div class=\"row\">\n<div class=\"large-8 columns\">\n<dl class=\"tabs\" data-tab=\"\">\n<dd class=\"active\"><a href=\"#panel20-1\">Annotations<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel20-2\">XML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel20-3\">YML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel20-5\">Links<\/a><\/dd>\n<\/dl>\n<div class=\"tabs-content\">\n<div id=\"panel20-1\" class=\"content active\">\n<pre><code data-language=\"\">\/**\r\n * @ORM\\Entity\r\n * @ORM\\Table(\r\n *     indexes={@ORM\\Index(name=\"ix_name_last\", columns={\"lastName\"})}\r\n * )\r\n *\/\r\nclass author\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel20-2\" class=\"content \">\n<pre><code class=\"language-xml rainbow\" data-language=\"language-xml\"><span class=\"keyword operator\">&lt;<\/span>entity name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"author\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"firstName\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"lastName\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"birthDate\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>indexes<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>index name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"ix_name_last\"<\/span> columns<span class=\"keyword operator\">=<\/span><span class=\"string\">\"lastName\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>\/indexes<span class=\"keyword operator\">&gt;<\/span>\r\n<span class=\"keyword operator\">&lt;<\/span>\/entity<span class=\"keyword operator\">&gt;<\/span>\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel20-3\" class=\"content \">\n<pre><code class=\"language-yaml rainbow\" data-language=\"language-yaml\">author:\r\n  type: entity\r\n  fields:\r\n    firstName:\r\n    lastName:\r\n    birthDate:\r\n  indexes:\r\n    ix_name_last:\r\n      columns: [lastName]\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel20-5\" class=\"content \">\n<ul>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/xml-mapping.html#defining-indexes-or-unique-constraints\">xml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/yaml-mapping.html\">yml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/php-mapping.html\">php mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/annotations-reference.html#annref-index\">annotation reference<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"large-4 large-centered columns\">\n<div class=\"image-tab\">\n<p><a href=\"#skipper\"><img decoding=\"async\" class=\"image-element\" src=\"\/images\/elements\/indexes.png\" alt=\"Doctrine 2 entity in Skipper visual model\" \/><\/a><\/p>\n<p class=\"image-caption-model\">Generated by <a href=\"#skipper\">Skipper<\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!-- element id 20 --><\/p>\n<p>Unique index definition:<\/p>\n<p><!-- which tabs are used --><\/p>\n<p><!-- which content is used --><\/p>\n<p><!-- display the content --><\/p>\n<div class=\"row\">\n<div class=\"large-8 columns\">\n<dl class=\"tabs\" data-tab=\"\">\n<dd class=\"active\"><a href=\"#panel21-1\">Annotations<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel21-2\">XML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel21-3\">YML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel21-5\">Links<\/a><\/dd>\n<\/dl>\n<div class=\"tabs-content\">\n<div id=\"panel21-1\" class=\"content active\">\n<pre><code class=\"language-php rainbow\" data-language=\"language-php\"><span class=\"comment\">\/**\r\n * @ORM\\Entity\r\n * @ORM\\Table(\r\n *     uniqueConstraints={@ORM\\UniqueConstraint(name=\"ix_first_name_last_name_date\", columns={\"firstName\",\"lastName\",\"birthDate\"})}\r\n * )\r\n *\/<\/span>\r\n<span class=\"keyword\">class<\/span> author\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel21-2\" class=\"content \">\n<pre><code class=\"language-xml rainbow\" data-language=\"language-xml\"><span class=\"keyword operator\">&lt;<\/span>entity name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"author\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"firstName\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"lastName\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"birthDate\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>unique<span class=\"keyword operator\">-<\/span>constraints<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>unique<span class=\"keyword operator\">-<\/span>constraint \r\n\t\t name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"ix_first_name_last_name_date\"<\/span> \r\n\t\t columns<span class=\"keyword operator\">=<\/span><span class=\"string\">\"firstName,lastName,birthDate\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>\/unique<span class=\"keyword operator\">-<\/span>constraints<span class=\"keyword operator\">&gt;<\/span>\r\n<span class=\"keyword operator\">&lt;<\/span>\/entity<span class=\"keyword operator\">&gt;<\/span>\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel21-3\" class=\"content \">\n<pre><code class=\"language-yaml rainbow\" data-language=\"language-yaml\">author:\r\n  type: entity\r\n  fields:\r\n    firstName:\r\n    lastName:\r\n    birthDate:\r\n  uniqueConstraints:\r\n    ix_first_name_last_name_date:\r\n      columns: [firstName, lastName, birthDate]\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel21-5\" class=\"content \">\n<ul>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/xml-mapping.html#defining-indexes-or-unique-constraints\">xml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/yaml-mapping.html\">yml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/php-mapping.html\">php mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/annotations-reference.html#uniqueconstraint\">annotation reference<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"large-4 large-centered columns\">\n<div class=\"image-tab\">\n<p><a href=\"#skipper\"><img decoding=\"async\" class=\"image-element\" src=\"\/images\/elements\/indexes.png\" alt=\"Doctrine 2 entity in Skipper visual model\" \/><\/a><\/p>\n<p class=\"image-caption-model\">Generated by <a href=\"#skipper\">Skipper<\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>You can go and see how to <a href=\"#skipper\">do this in few clicks<\/a>.<\/p>\n<h2 id=\"association\">Association<\/h2>\n<h4>One to One<\/h4>\n<p><!-- element id 21 --><\/p>\n<p>One to one owner side:<\/p>\n<p><!-- which tabs are used --><\/p>\n<p><!-- which content is used --><\/p>\n<p><!-- display the content --><\/p>\n<div class=\"row\">\n<div class=\"large-8 columns\">\n<dl class=\"tabs\" data-tab=\"\">\n<dd class=\"active\"><a href=\"#panel22-1\">Annotations<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel22-2\">XML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel22-3\">YML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel22-5\">Links<\/a><\/dd>\n<\/dl>\n<div class=\"tabs-content\">\n<div id=\"panel22-1\" class=\"content active\">\n<pre><code class=\"language-php rainbow\" data-language=\"language-php\"><span class=\"comment\">\/**\r\n * @ORM\\Entity\r\n *\/<\/span>\r\n<span class=\"keyword\">class<\/span> itemRecord\r\n{\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\OneToOne(\r\n     *     targetEntity=\"ean\",\r\n     *     inversedBy=\"itemRecord\"\r\n     * )\r\n     * @ORM\\JoinColumn(name=\"eanId\", referencedColumnName=\"id\", unique=true)\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $ean;\r\n}\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel22-2\" class=\"content \">\n<pre><code class=\"language-xml rainbow\" data-language=\"language-xml\"><span class=\"keyword operator\">&lt;<\/span>entity name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"itemRecord\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n\t<span class=\"keyword operator\">&lt;<\/span>one<span class=\"keyword operator\">-<\/span>to<span class=\"keyword operator\">-<\/span>one field<span class=\"keyword operator\">=<\/span><span class=\"string\">\"ean\"<\/span> target<span class=\"keyword operator\">-<\/span>entity<span class=\"keyword operator\">=<\/span><span class=\"string\">\"ean\"<\/span> inversed<span class=\"keyword operator\">-<\/span>by<span class=\"keyword operator\">=<\/span><span class=\"string\">\"itemRecord\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n\t\t<span class=\"keyword operator\">&lt;<\/span>join<span class=\"keyword operator\">-<\/span>columns<span class=\"keyword operator\">&gt;<\/span>\r\n\t\t\t<span class=\"keyword operator\">&lt;<\/span>join<span class=\"keyword operator\">-<\/span>column \r\n\t\t\t name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"eanId\"<\/span> \r\n\t\t\t referenced<span class=\"keyword operator\">-<\/span>column<span class=\"keyword operator\">-<\/span>name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"id\"<\/span> \r\n\t\t\t unique<span class=\"keyword operator\">=<\/span><span class=\"string\">\"true\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n\t\t<span class=\"keyword operator\">&lt;<\/span>\/join<span class=\"keyword operator\">-<\/span>columns<span class=\"keyword operator\">&gt;<\/span>\r\n\t<span class=\"keyword operator\">&lt;<\/span>\/one<span class=\"keyword operator\">-<\/span>to<span class=\"keyword operator\">-<\/span>one<span class=\"keyword operator\">&gt;<\/span>\r\n<span class=\"keyword operator\">&lt;<\/span>\/entity<span class=\"keyword operator\">&gt;<\/span>\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel22-3\" class=\"content \">\n<pre><code class=\"language-yaml rainbow\" data-language=\"language-yaml\">itemRecord:\r\n  type: entity\r\n  fields:\r\n  oneToOne:\r\n    ean:\r\n      targetEntity: ean\r\n      inversedBy: itemRecord\r\n      joinColumns:\r\n        eanId:\r\n          referencedColumnName: id\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel22-5\" class=\"content \">\n<ul>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/xml-mapping.html#defining-one-to-one-relations\">xml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/yaml-mapping.html\">yml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/php-mapping.html\">php mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/annotations-reference.html#onetoone\">annotation reference<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"large-4 large-centered columns\">\n<div class=\"image-tab\">\n<p><a href=\"#skipper\"><img decoding=\"async\" class=\"image-element\" src=\"\/images\/elements\/onetooneowner.png\" alt=\"Doctrine 2 one to one association in Skipper ER diagram.\" \/><\/a><\/p>\n<p class=\"image-caption-model\">Generated by <a href=\"#skipper\">Skipper<\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!-- element id 22 --><\/p>\n<p>One to one inverse side:<\/p>\n<p><!-- which tabs are used --><\/p>\n<p><!-- which content is used --><\/p>\n<p><!-- display the content --><\/p>\n<div class=\"row\">\n<div class=\"large-8 columns\">\n<dl class=\"tabs\" data-tab=\"\">\n<dd class=\"active\"><a href=\"#panel23-1\">Annotations<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel23-2\">XML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel23-3\">YML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel23-5\">Links<\/a><\/dd>\n<\/dl>\n<div class=\"tabs-content\">\n<div id=\"panel23-1\" class=\"content active\">\n<pre><code class=\"language-php rainbow\" data-language=\"language-php\"><span class=\"comment\">\/**\r\n * @ORM\\Entity\r\n *\/<\/span>\r\n<span class=\"keyword\">class<\/span> ean\r\n{\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\Id\r\n     * @ORM\\Column(type=\"integer\")\r\n     * @ORM\\GeneratedValue(strategy=\"AUTO\")\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $id;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\OneToOne(\r\n     *     targetEntity=\"itemRecord\",\r\n     *     mappedBy=\"ean\"\r\n     * )\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $itemRecord;\r\n}\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel23-2\" class=\"content \">\n<pre><code class=\"language-xml rainbow\" data-language=\"language-xml\"><span class=\"keyword operator\">&lt;<\/span>entity name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"ean\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>id name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"id\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>one<span class=\"keyword operator\">-<\/span>to<span class=\"keyword operator\">-<\/span>one \r\n\t field<span class=\"keyword operator\">=<\/span><span class=\"string\">\"itemRecord\"<\/span> \r\n\t target<span class=\"keyword operator\">-<\/span>entity<span class=\"keyword operator\">=<\/span><span class=\"string\">\"itemRecord\"<\/span> \r\n\t mapped<span class=\"keyword operator\">-<\/span>by<span class=\"keyword operator\">=<\/span><span class=\"string\">\"ean\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>\/one<span class=\"keyword operator\">-<\/span>to<span class=\"keyword operator\">-<\/span>one<span class=\"keyword operator\">&gt;<\/span>\r\n<span class=\"keyword operator\">&lt;<\/span>\/entity<span class=\"keyword operator\">&gt;<\/span>\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel23-3\" class=\"content \">\n<pre><code class=\"language-yaml rainbow\" data-language=\"language-yaml\">ean:\r\n  type: entity\r\n  fields:\r\n    id:\r\n  oneToOne:\r\n    itemRecord:\r\n      targetEntity: itemRecord\r\n      mappedBy: ean\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel23-5\" class=\"content \">\n<ul>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/xml-mapping.html#defining-one-to-one-relations\">xml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/yaml-mapping.html\">yml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/php-mapping.html\">php mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/annotations-reference.html#onetoone\">annotation reference<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"large-4 large-centered columns\">\n<div class=\"image-tab\">\n<p><a href=\"#skipper\"><img decoding=\"async\" class=\"image-element\" src=\"\/images\/elements\/onetooneinverse.png\" alt=\"Doctrine 2 one to one association imported from schema definition files.\" \/><\/a><\/p>\n<p class=\"image-caption-model\">Generated by <a href=\"#skipper\">Skipper<\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h4>Many to One<\/h4>\n<p><!-- element id 23 --><\/p>\n<p>Many to one owner side:<\/p>\n<p><!-- which tabs are used --><\/p>\n<p><!-- which content is used --><\/p>\n<p><!-- display the content --><\/p>\n<div class=\"row\">\n<div class=\"large-8 columns\">\n<dl class=\"tabs\" data-tab=\"\">\n<dd class=\"active\"><a href=\"#panel24-1\">Annotations<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel24-2\">XML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel24-3\">YML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel24-5\">Links<\/a><\/dd>\n<\/dl>\n<div class=\"tabs-content\">\n<div id=\"panel24-1\" class=\"content active\">\n<pre><code class=\"language-php rainbow\" data-language=\"language-php\"><span class=\"comment\">\/**\r\n * @ORM\\Entity\r\n *\/<\/span>\r\n<span class=\"keyword\">class<\/span> itemRecord\r\n{\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\ManyToOne(\r\n     *     targetEntity=\"publisher\",\r\n     *     inversedBy=\"itemRecord\"\r\n     * )\r\n     * @ORM\\JoinColumn(\r\n     *     name=\"publisherId\",\r\n     *     referencedColumnName=\"publisher_id\",\r\n     *     nullable=false\r\n     * )\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $publisher;\r\n}\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel24-2\" class=\"content \">\n<pre><code class=\"language-xml rainbow\" data-language=\"language-xml\"><span class=\"keyword operator\">&lt;<\/span>entity name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"itemRecord\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>many<span class=\"keyword operator\">-<\/span>to<span class=\"keyword operator\">-<\/span>one \r\n   field<span class=\"keyword operator\">=<\/span><span class=\"string\">\"publisher\"<\/span> \r\n   target<span class=\"keyword operator\">-<\/span>entity<span class=\"keyword operator\">=<\/span><span class=\"string\">\"publisher\"<\/span> \r\n   inversed<span class=\"keyword operator\">-<\/span>by<span class=\"keyword operator\">=<\/span><span class=\"string\">\"itemRecord\"<\/span> \r\n   fetch<span class=\"keyword operator\">=<\/span><span class=\"string\">\"EXTRA_LAZY\"<\/span> \r\n   orphan<span class=\"keyword operator\">-<\/span>removal<span class=\"keyword operator\">=<\/span><span class=\"string\">\"true\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>join<span class=\"keyword operator\">-<\/span>columns<span class=\"keyword operator\">&gt;<\/span>\r\n\t  <span class=\"keyword operator\">&lt;<\/span>join<span class=\"keyword operator\">-<\/span>column \r\n\t   name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"publisher_id\"<\/span> \r\n\t   referenced<span class=\"keyword operator\">-<\/span>column<span class=\"keyword operator\">-<\/span>name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"id\"<\/span> \r\n\t   <span class=\"constant language\">null<\/span>able<span class=\"keyword operator\">=<\/span><span class=\"string\">\"false\"<\/span> \r\n\t   column<span class=\"keyword operator\">-<\/span>definition<span class=\"keyword operator\">=<\/span><span class=\"string\">\"itemRecord_publisherId\"<\/span> \r\n\t   on<span class=\"keyword operator\">-<\/span><span class=\"keyword\">delete<\/span><span class=\"keyword operator\">=<\/span><span class=\"string\">\"CASCADE\"<\/span> \r\n\t   on<span class=\"keyword operator\">-<\/span>update<span class=\"keyword operator\">=<\/span><span class=\"string\">\"RESTRICT\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/join<span class=\"keyword operator\">-<\/span>columns<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>cascade<span class=\"keyword operator\">&gt;<\/span>\r\n\t  <span class=\"keyword operator\">&lt;<\/span>cascade<span class=\"keyword operator\">-<\/span>all\/<span class=\"keyword operator\">&gt;<\/span>\r\n\t  <span class=\"keyword operator\">&lt;<\/span>cascade<span class=\"keyword operator\">-<\/span>merge\/<span class=\"keyword operator\">&gt;<\/span>\r\n\t  <span class=\"keyword operator\">&lt;<\/span>cascade<span class=\"keyword operator\">-<\/span>persist\/<span class=\"keyword operator\">&gt;<\/span>\r\n\t  <span class=\"keyword operator\">&lt;<\/span>cascade<span class=\"keyword operator\">-<\/span>refresh\/<span class=\"keyword operator\">&gt;<\/span>\r\n\t  <span class=\"keyword operator\">&lt;<\/span>cascade<span class=\"keyword operator\">-<\/span>remove\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/cascade<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>\/many<span class=\"keyword operator\">-<\/span>to<span class=\"keyword operator\">-<\/span>one<span class=\"keyword operator\">&gt;<\/span>\r\n<span class=\"keyword operator\">&lt;<\/span>\/entity<span class=\"keyword operator\">&gt;<\/span>\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel24-3\" class=\"content \">\n<pre><code class=\"language-yaml rainbow\" data-language=\"language-yaml\">itemRecord:\r\n  type: entity\r\n  manyToOne:\r\n    publisher:\r\n      targetEntity: publisher\r\n      inversedBy: itemRecord\r\n      joinColumns:\r\n        publisherId:\r\n          referencedColumnName: publisher_id\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel24-5\" class=\"content \">\n<ul>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/xml-mapping.html#defining-many-to-one-associations\">xml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/yaml-mapping.html\">yml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/php-mapping.html\">php mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/annotations-reference.html#manytoone\">annotation reference<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"large-4 large-centered columns\">\n<div class=\"image-tab\">\n<p><a href=\"#skipper\"><img decoding=\"async\" class=\"image-element\" src=\"\/images\/elements\/manytooneowner.png\" alt=\"Doctrine 2 many to one association in Skipper ER diagram.\" \/><\/a><\/p>\n<p class=\"image-caption-model\">Generated by <a href=\"#skipper\">Skipper<\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!-- element id 24 --><\/p>\n<p>Many to one inverse side:<\/p>\n<p><!-- which tabs are used --><\/p>\n<p><!-- which content is used --><\/p>\n<p><!-- display the content --><\/p>\n<div class=\"row\">\n<div class=\"large-8 columns\">\n<dl class=\"tabs\" data-tab=\"\">\n<dd class=\"active\"><a href=\"#panel25-1\">Annotations<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel25-2\">XML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel25-3\">YML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel25-5\">Links<\/a><\/dd>\n<\/dl>\n<div class=\"tabs-content\">\n<div id=\"panel25-1\" class=\"content active\">\n<pre><code class=\"language-php rainbow\" data-language=\"language-php\"><span class=\"comment\">\/**\r\n * @ORM\\Entity\r\n *\/<\/span>\r\n<span class=\"keyword\">class<\/span> publisher\r\n{\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\Id\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $id;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\OneToMany(\r\n     *     targetEntity=\"itemRecord\",\r\n     *     mappedBy=\"publisher\"\r\n     * )\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $itemRecord;\r\n}\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel25-2\" class=\"content \">\n<pre><code class=\"language-xml rainbow\" data-language=\"language-xml\"><span class=\"keyword operator\">&lt;<\/span>entity name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"publisher\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>id name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"id\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>one<span class=\"keyword operator\">-<\/span>to<span class=\"keyword operator\">-<\/span>many \r\n   field<span class=\"keyword operator\">=<\/span><span class=\"string\">\"itemRecord\"<\/span> \r\n   target<span class=\"keyword operator\">-<\/span>entity<span class=\"keyword operator\">=<\/span><span class=\"string\">\"itemRecord\"<\/span> \r\n   mapped<span class=\"keyword operator\">-<\/span>by<span class=\"keyword operator\">=<\/span><span class=\"string\">\"publisher\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>\/one<span class=\"keyword operator\">-<\/span>to<span class=\"keyword operator\">-<\/span>many<span class=\"keyword operator\">&gt;<\/span>\r\n<span class=\"keyword operator\">&lt;<\/span>\/entity<span class=\"keyword operator\">&gt;<\/span>\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel25-3\" class=\"content \">\n<pre><code class=\"language-yaml rainbow\" data-language=\"language-yaml\">publisher:\r\n  type: entity\r\n  fields:\r\n    id:\r\n      id: <span class=\"constant language\">true<\/span>\r\n  oneToMany:\r\n    itemRecord:\r\n      targetEntity: itemRecord\r\n      mappedBy: publisher\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel25-5\" class=\"content \">\n<ul>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/xml-mapping.html#defining-one-to-many-associations\">xml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/yaml-mapping.html\">yml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/php-mapping.html\">php mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/annotations-reference.html#onetomany\">annotation reference<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"large-4 large-centered columns\">\n<div class=\"image-tab\">\n<p><a href=\"#skipper\"><img decoding=\"async\" class=\"image-element\" src=\"\/images\/elements\/manytooneinverse.png\" alt=\"Doctrine 2 many to one association imported from schema definition files.\" \/><\/a><\/p>\n<p class=\"image-caption-model\">Generated by <a href=\"#skipper\">Skipper<\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h4>Association with all options enabled<\/h4>\n<p><!-- element id 25 --><\/p>\n<p>Many to one owner side with all properties:<\/p>\n<p><!-- which tabs are used --><\/p>\n<p><!-- which content is used --><\/p>\n<p><!-- display the content --><\/p>\n<div class=\"row\">\n<div class=\"large-8 columns\">\n<dl class=\"tabs\" data-tab=\"\">\n<dd class=\"active\"><a href=\"#panel26-1\">Annotations<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel26-2\">XML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel26-3\">YML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel26-5\">Links<\/a><\/dd>\n<\/dl>\n<div class=\"tabs-content\">\n<div id=\"panel26-1\" class=\"content active\">\n<pre><code class=\"language-php rainbow\" data-language=\"language-php\"><span class=\"comment\">\/**\r\n * @ORM\\Entity\r\n *\/<\/span>\r\n<span class=\"keyword\">class<\/span> itemRecord\r\n{\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\ManyToOne(\r\n     *     targetEntity=\"publisher\",\r\n     *     inversedBy=\"itemRecord\",\r\n     *     fetch=\"EXTRA_LAZY\",\r\n     *     orphanRemoval=true,\r\n     *     cascade={\"all\",\"merge\",\"persist\",\"refresh\",\"remove\"}\r\n     * )\r\n     * @ORM\\JoinColumn(\r\n     *     name=\"publisherId\",\r\n     *     referencedColumnName=\"publisher_id\",\r\n     *     nullable=false,\r\n     *     columnDefinition=\"itemRecord_publisherId\",\r\n     *     onDelete=\"CASCADE\",\r\n     *     onUpdate=\"RESTRICT\"\r\n     * )\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $publisher;\r\n}\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel26-2\" class=\"content \">\n<pre><code class=\"language-xml rainbow\" data-language=\"language-xml\"><span class=\"keyword operator\">&lt;<\/span>entity name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"itemRecord\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>many<span class=\"keyword operator\">-<\/span>to<span class=\"keyword operator\">-<\/span>one \r\n   field<span class=\"keyword operator\">=<\/span><span class=\"string\">\"publisher\"<\/span> \r\n   target<span class=\"keyword operator\">-<\/span>entity<span class=\"keyword operator\">=<\/span><span class=\"string\">\"publisher\"<\/span> \r\n   inversed<span class=\"keyword operator\">-<\/span>by<span class=\"keyword operator\">=<\/span><span class=\"string\">\"itemRecord\"<\/span> \r\n   fetch<span class=\"keyword operator\">=<\/span><span class=\"string\">\"EXTRA_LAZY\"<\/span> \r\n   orphan<span class=\"keyword operator\">-<\/span>removal<span class=\"keyword operator\">=<\/span><span class=\"string\">\"true\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>join<span class=\"keyword operator\">-<\/span>columns<span class=\"keyword operator\">&gt;<\/span>\r\n\t  <span class=\"keyword operator\">&lt;<\/span>join<span class=\"keyword operator\">-<\/span>column \r\n\t   name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"publisherId\"<\/span> \r\n\t   referenced<span class=\"keyword operator\">-<\/span>column<span class=\"keyword operator\">-<\/span>name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"publisher_id\"<\/span> \r\n\t   <span class=\"constant language\">null<\/span>able<span class=\"keyword operator\">=<\/span><span class=\"string\">\"false\"<\/span> \r\n\t   column<span class=\"keyword operator\">-<\/span>definition<span class=\"keyword operator\">=<\/span><span class=\"string\">\"itemRecord_publisherId\"<\/span> \r\n\t   on<span class=\"keyword operator\">-<\/span><span class=\"keyword\">delete<\/span><span class=\"keyword operator\">=<\/span><span class=\"string\">\"CASCADE\"<\/span> \r\n\t   on<span class=\"keyword operator\">-<\/span>update<span class=\"keyword operator\">=<\/span><span class=\"string\">\"RESTRICT\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/join<span class=\"keyword operator\">-<\/span>columns<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>cascade<span class=\"keyword operator\">&gt;<\/span>\r\n\t  <span class=\"keyword operator\">&lt;<\/span>cascade<span class=\"keyword operator\">-<\/span>all\/<span class=\"keyword operator\">&gt;<\/span>\r\n\t  <span class=\"keyword operator\">&lt;<\/span>cascade<span class=\"keyword operator\">-<\/span>merge\/<span class=\"keyword operator\">&gt;<\/span>\r\n\t  <span class=\"keyword operator\">&lt;<\/span>cascade<span class=\"keyword operator\">-<\/span>persist\/<span class=\"keyword operator\">&gt;<\/span>\r\n\t  <span class=\"keyword operator\">&lt;<\/span>cascade<span class=\"keyword operator\">-<\/span>refresh\/<span class=\"keyword operator\">&gt;<\/span>\r\n\t  <span class=\"keyword operator\">&lt;<\/span>cascade<span class=\"keyword operator\">-<\/span>remove\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/cascade<span class=\"keyword operator\">&gt;<\/span>\r\n<span class=\"keyword operator\">&lt;<\/span>\/many<span class=\"keyword operator\">-<\/span>to<span class=\"keyword operator\">-<\/span>one<span class=\"keyword operator\">&gt;<\/span>\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel26-3\" class=\"content \">\n<pre><code class=\"language-yaml rainbow\" data-language=\"language-yaml\">itemRecord:\r\n  type: entity\r\n  fields:\r\n  manyToOne:\r\n    ean:\r\n      targetEntity: ean\r\n      inversedBy: itemRecord\r\n      fetch: LAZY\r\n      orphanRemoval: <span class=\"constant language\">true<\/span>\r\n      cascade: [<span class=\"string\">\"all\"<\/span>, <span class=\"string\">\"merge\"<\/span>, <span class=\"string\">\"persist\"<\/span>, <span class=\"string\">\"refresh\"<\/span>, <span class=\"string\">\"remove\"<\/span>]\r\n      joinColumns:\r\n        eanId:\r\n          referencedColumnName: id\r\n          unique: <span class=\"constant language\">true<\/span>\r\n          onDelete: CASCADE\r\n          onUpdate: RESTRICT\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel26-5\" class=\"content \">\n<ul>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/xml-mapping.html#defining-many-to-one-associations\">xml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/yaml-mapping.html\">yml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/php-mapping.html\">php mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/annotations-reference.html#manytoone\">annotation reference<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"large-4 large-centered columns\">\n<div class=\"image-tab\">\n<p><a href=\"#skipper\"><img decoding=\"async\" class=\"image-element\" src=\"\/images\/elements\/manytooneowner.png\" alt=\"Doctrine 2 many to one association in Skipper ER diagram.\" \/><\/a><\/p>\n<p class=\"image-caption-model\">Generated by <a href=\"#skipper\">Skipper<\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!-- element id 26 --><\/p>\n<p>Many to one inverse side with all properties:<\/p>\n<p><!-- which tabs are used --><\/p>\n<p><!-- which content is used --><\/p>\n<p><!-- display the content --><\/p>\n<div class=\"row\">\n<div class=\"large-8 columns\">\n<dl class=\"tabs\" data-tab=\"\">\n<dd class=\"active\"><a href=\"#panel27-1\">Annotations<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel27-2\">XML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel27-3\">YML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel27-5\">Links<\/a><\/dd>\n<\/dl>\n<div class=\"tabs-content\">\n<div id=\"panel27-1\" class=\"content active\">\n<pre><code class=\"language-php rainbow\" data-language=\"language-php\"><span class=\"comment\">\/**\r\n * @ORM\\Entity\r\n *\/<\/span>\r\n<span class=\"keyword\">class<\/span> publisher\r\n{\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\Id\r\n     * @ORM\\Column(\r\n     *     type=\"integer\"\r\n     * )\r\n     * @ORM\\GeneratedValue(strategy=\"SEQUENCE\")\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $id;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\OneToMany(\r\n     *     targetEntity=\"itemRecord\",\r\n     *     mappedBy=\"publisher\",\r\n     *     fetch=\"EAGER\",\r\n     *     indexBy=\"id\",\r\n     *     cascade={\"all\",\"merge\",\"persist\",\"refresh\",\"remove\"}\r\n     * )\r\n     * @ORM\\OrderBy({\"id\"=\"ASC\"})\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $itemRecord;\r\n}\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel27-2\" class=\"content \">\n<pre><code class=\"language-xml rainbow\" data-language=\"language-xml\"><span class=\"keyword operator\">&lt;<\/span>entity name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"publisher\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>id name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"id\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>one<span class=\"keyword operator\">-<\/span>to<span class=\"keyword operator\">-<\/span>many \r\n   field<span class=\"keyword operator\">=<\/span><span class=\"string\">\"itemRecord\"<\/span> \r\n   target<span class=\"keyword operator\">-<\/span>entity<span class=\"keyword operator\">=<\/span><span class=\"string\">\"itemRecord\"<\/span> \r\n   mapped<span class=\"keyword operator\">-<\/span>by<span class=\"keyword operator\">=<\/span><span class=\"string\">\"publisher\"<\/span> \r\n   fetch<span class=\"keyword operator\">=<\/span><span class=\"string\">\"EAGER\"<\/span> \r\n   index<span class=\"keyword operator\">-<\/span>by<span class=\"keyword operator\">=<\/span><span class=\"string\">\"id\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>cascade<span class=\"keyword operator\">&gt;<\/span>\r\n\t  <span class=\"keyword operator\">&lt;<\/span>cascade<span class=\"keyword operator\">-<\/span>all\/<span class=\"keyword operator\">&gt;<\/span>\r\n\t  <span class=\"keyword operator\">&lt;<\/span>cascade<span class=\"keyword operator\">-<\/span>merge\/<span class=\"keyword operator\">&gt;<\/span>\r\n\t  <span class=\"keyword operator\">&lt;<\/span>cascade<span class=\"keyword operator\">-<\/span>persist\/<span class=\"keyword operator\">&gt;<\/span>\r\n\t  <span class=\"keyword operator\">&lt;<\/span>cascade<span class=\"keyword operator\">-<\/span>refresh\/<span class=\"keyword operator\">&gt;<\/span>\r\n\t  <span class=\"keyword operator\">&lt;<\/span>cascade<span class=\"keyword operator\">-<\/span>remove\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/cascade<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>order<span class=\"keyword operator\">-<\/span>by<span class=\"keyword operator\">&gt;<\/span>\r\n\t  <span class=\"keyword operator\">&lt;<\/span>order<span class=\"keyword operator\">-<\/span>by<span class=\"keyword operator\">-<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"id\"<\/span> direction<span class=\"keyword operator\">=<\/span><span class=\"string\">\"ASC\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/order<span class=\"keyword operator\">-<\/span>by<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>\/one<span class=\"keyword operator\">-<\/span>to<span class=\"keyword operator\">-<\/span>many<span class=\"keyword operator\">&gt;<\/span>\r\n<span class=\"keyword operator\">&lt;<\/span>\/entity<span class=\"keyword operator\">&gt;<\/span>\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel27-3\" class=\"content \">\n<pre><code class=\"language-yaml rainbow\" data-language=\"language-yaml\">publisher:\r\n  type: entity\r\n  fields:\r\n    id:\r\n      id: <span class=\"constant language\">true<\/span>\r\n  oneToMany:\r\n    itemRecord:\r\n      targetEntity: itemRecord\r\n      mappedBy: publisher\r\n      fetch: EAGER\r\n      indexBy: id\r\n      cascade: [<span class=\"string\">\"all\"<\/span>, <span class=\"string\">\"merge\"<\/span>, <span class=\"string\">\"persist\"<\/span>, <span class=\"string\">\"refresh\"<\/span>, <span class=\"string\">\"remove\"<\/span>]\r\n      orderBy:\r\n        id: ASC\r\n\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel27-5\" class=\"content \">\n<ul>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/xml-mapping.html\">xml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/yaml-mapping.html\">yml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/php-mapping.html\">php mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/annotations-reference.html\">annotation reference<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"large-4 large-centered columns\">\n<div class=\"image-tab\">\n<p><a href=\"#skipper\"><img decoding=\"async\" class=\"image-element\" src=\"\/images\/elements\/manytooneinverse.png\" alt=\"Doctrine 2 many to one association imported from schema definition files.\" \/><\/a><\/p>\n<p class=\"image-caption-model\">Generated by <a href=\"#skipper\">Skipper<\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>You can go and see how to <a href=\"#skipper\">do this in few clicks<\/a>.<\/p>\n<h2 id=\"manytomany\">MN Association<\/h2>\n<h4>Many to Many<\/h4>\n<p><!-- element id 27 --><\/p>\n<p>Many to many owner side:<\/p>\n<p><!-- which tabs are used --><\/p>\n<p><!-- which content is used --><\/p>\n<p><!-- display the content --><\/p>\n<div class=\"row\">\n<div class=\"large-8 columns\">\n<dl class=\"tabs\" data-tab=\"\">\n<dd class=\"active\"><a href=\"#panel28-1\">Annotations<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel28-2\">XML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel28-3\">YML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel28-5\">Links<\/a><\/dd>\n<\/dl>\n<div class=\"tabs-content\">\n<div id=\"panel28-1\" class=\"content active\">\n<pre><code class=\"language-php rainbow\" data-language=\"language-php\"><span class=\"comment\">\/**\r\n * @ORM\\Entity\r\n *\/<\/span>\r\n<span class=\"keyword\">class<\/span> author\r\n{\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\Id\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $id;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\ManyToMany(targetEntity=\"itemRecord\", inversedBy=\"author\")\r\n     * @ORM\\JoinTable(\r\n     *     name=\"itemRecordHasAuthor\",\r\n     *     joinColumns={\r\n     *         @ORM\\JoinColumn(\r\n     *             name=\"authorId\",\r\n     *             referencedColumnName=\"id\",\r\n     *             nullable=false\r\n     *         )\r\n     *     },\r\n     *     inverseJoinColumns={@ORM\\JoinColumn(name=\"bookId\", referencedColumnName=\"itemRecord_id\", nullable=false)}\r\n     * )\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $itemRecord;\r\n}\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel28-2\" class=\"content \">\n<pre><code class=\"language-xml rainbow\" data-language=\"language-xml\"><span class=\"keyword operator\">&lt;<\/span>entity name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"itemRecord\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>id name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"id\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>many<span class=\"keyword operator\">-<\/span>to<span class=\"keyword operator\">-<\/span>many \r\n   field<span class=\"keyword operator\">=<\/span><span class=\"string\">\"authors\"<\/span> \r\n   target<span class=\"keyword operator\">-<\/span>entity<span class=\"keyword operator\">=<\/span><span class=\"string\">\"author\"<\/span> \r\n   inversed<span class=\"keyword operator\">-<\/span>by<span class=\"keyword operator\">=<\/span><span class=\"string\">\"itemRecords\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>join<span class=\"keyword operator\">-<\/span>table name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"authorHasitemRecord\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>join<span class=\"keyword operator\">-<\/span>columns<span class=\"keyword operator\">&gt;<\/span>\r\n        <span class=\"keyword operator\">&lt;<\/span>join<span class=\"keyword operator\">-<\/span>column \r\n\t\tname<span class=\"keyword operator\">=<\/span><span class=\"string\">\"item_record_id\"<\/span> \r\n\t\treferenced<span class=\"keyword operator\">-<\/span>column<span class=\"keyword operator\">-<\/span>name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"itemRecord_id\"<\/span> \r\n\t\t<span class=\"constant language\">null<\/span>able<span class=\"keyword operator\">=<\/span><span class=\"string\">\"false\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>\/join<span class=\"keyword operator\">-<\/span>columns<span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>inverse<span class=\"keyword operator\">-<\/span>join<span class=\"keyword operator\">-<\/span>columns<span class=\"keyword operator\">&gt;<\/span>\r\n        <span class=\"keyword operator\">&lt;<\/span>join<span class=\"keyword operator\">-<\/span>column \r\n\t\t name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"author_id\"<\/span> \r\n\t\t referenced<span class=\"keyword operator\">-<\/span>column<span class=\"keyword operator\">-<\/span>name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"id\"<\/span> \r\n\t\t <span class=\"constant language\">null<\/span>able<span class=\"keyword operator\">=<\/span><span class=\"string\">\"false\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>\/inverse<span class=\"keyword operator\">-<\/span>join<span class=\"keyword operator\">-<\/span>columns<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/join<span class=\"keyword operator\">-<\/span>table<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>\/many<span class=\"keyword operator\">-<\/span>to<span class=\"keyword operator\">-<\/span>many<span class=\"keyword operator\">&gt;<\/span>\r\n<span class=\"keyword operator\">&lt;<\/span>\/entity<span class=\"keyword operator\">&gt;<\/span>\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel28-3\" class=\"content \">\n<pre><code class=\"language-yaml rainbow\" data-language=\"language-yaml\">itemRecord:\r\n  type: entity\r\n  manyToMany:\r\n    authors:\r\n      targetEntity: author\r\n      inversedBy: itemRecords\r\n      joinTable:\r\n        name: authorHasitemRecord\r\n        joinColumns:\r\n          item_record_id:\r\n            referencedColumnName: itemRecord_id\r\n            <span class=\"constant language\">null<\/span>able: <span class=\"constant language\">false<\/span>\r\n        inverseJoinColumns:\r\n          author_id:\r\n            referencedColumnName: id\r\n            <span class=\"constant language\">null<\/span>able: <span class=\"constant language\">false<\/span>\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel28-5\" class=\"content \">\n<ul>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/xml-mapping.html#defining-many-to-many-associations\">xml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/yaml-mapping.html\">yml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/php-mapping.html\">php mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/annotations-reference.html#manytomany\">annotation reference<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"large-4 large-centered columns\">\n<div class=\"image-tab\">\n<p><a href=\"#skipper\"><img decoding=\"async\" class=\"image-element\" src=\"\/images\/elements\/manytomanyowner.png\" alt=\"Doctrine 2 many-to-many association in Skipper generated diagram.\" \/><\/a><\/p>\n<p class=\"image-caption-model\">Generated by <a href=\"#skipper\">Skipper<\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!-- element id 28 --><\/p>\n<p>Many to many inverse side:<\/p>\n<p><!-- which tabs are used --><\/p>\n<p><!-- which content is used --><\/p>\n<p><!-- display the content --><\/p>\n<div class=\"row\">\n<div class=\"large-8 columns\">\n<dl class=\"tabs\" data-tab=\"\">\n<dd class=\"active\"><a href=\"#panel29-1\">Annotations<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel29-2\">XML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel29-3\">YML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel29-5\">Links<\/a><\/dd>\n<\/dl>\n<div class=\"tabs-content\">\n<div id=\"panel29-1\" class=\"content active\">\n<pre><code class=\"language-php rainbow\" data-language=\"language-php\"><span class=\"comment\">\/**\r\n * @ORM\\Entity\r\n *\/<\/span>\r\n<span class=\"keyword\">class<\/span> itemRecord\r\n{\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\ManyToMany(targetEntity=\"author\", mappedBy=\"itemRecord\")\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $author;\r\n}\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel29-2\" class=\"content \">\n<pre><code class=\"language-xml rainbow\" data-language=\"language-xml\"><span class=\"keyword operator\">&lt;<\/span>entity name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"author\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>id name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"id\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>many<span class=\"keyword operator\">-<\/span>to<span class=\"keyword operator\">-<\/span>many \r\n   field<span class=\"keyword operator\">=<\/span><span class=\"string\">\"itemRecords\"<\/span> \r\n   target<span class=\"keyword operator\">-<\/span>entity<span class=\"keyword operator\">=<\/span><span class=\"string\">\"itemRecord\"<\/span> \r\n   mapped<span class=\"keyword operator\">-<\/span>by<span class=\"keyword operator\">=<\/span><span class=\"string\">\"authors\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>\/many<span class=\"keyword operator\">-<\/span>to<span class=\"keyword operator\">-<\/span>many<span class=\"keyword operator\">&gt;<\/span>\r\n<span class=\"keyword operator\">&lt;<\/span>\/entity<span class=\"keyword operator\">&gt;<\/span>\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel29-3\" class=\"content \">\n<pre><code class=\"language-yaml rainbow\" data-language=\"language-yaml\">author:\r\n  type: entity\r\n  fields:\r\n    id:\r\n  manyToMany:\r\n    itemRecords:\r\n      targetEntity: itemRecord\r\n      mappedBy: authors\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel29-5\" class=\"content \">\n<ul>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/xml-mapping.html#defining-many-to-many-associations\">xml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/yaml-mapping.html\">yml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/php-mapping.html\">php mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/annotations-reference.html#manytomany\">annotation reference<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"large-4 large-centered columns\">\n<div class=\"image-tab\">\n<p><a href=\"#skipper\"><img decoding=\"async\" class=\"image-element\" src=\"\/images\/elements\/manytomanyinverse.png\" alt=\"Doctrine 2 many-to-many displayed in Skipper visual model.\" \/><\/a><\/p>\n<p class=\"image-caption-model\">Generated by <a href=\"#skipper\">Skipper<\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!-- element id 29 --><\/p>\n<p>Many to many with all options enabled:<\/p>\n<p><!-- which tabs are used --><\/p>\n<p><!-- which content is used --><\/p>\n<p><!-- display the content --><\/p>\n<div class=\"row\">\n<div class=\"large-12 columns\">\n<dl class=\"tabs\" data-tab=\"\">\n<dd class=\"active\"><a href=\"#panel30-1\">Annotations<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel30-2\">XML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel30-3\">YML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel30-5\">Links<\/a><\/dd>\n<\/dl>\n<div class=\"tabs-content\">\n<div id=\"panel30-1\" class=\"content active\">\n<pre><code class=\"language-php rainbow\" data-language=\"language-php\"><span class=\"comment\">\/**\r\n * @ORM\\Entity\r\n *\/<\/span>\r\n<span class=\"keyword\">class<\/span> author\r\n{\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\Id\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $id;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\ManyToMany(targetEntity=\"itemRecord\", inversedBy=\"author\", cascade={\"all\",\"refresh\"})\r\n     * @ORM\\JoinTable(\r\n     *     name=\"itemRecordHasAuthor\",\r\n     *     joinColumns={\r\n     *         @ORM\\JoinColumn(\r\n     *             name=\"authorId\",\r\n     *             referencedColumnName=\"id\",\r\n     *             nullable=false,\r\n     *             fetch=\"EAGER\",\r\n     *             onDelete=\"CASCADE\",\r\n     *             onUpdate=\"RESTRICT\"\r\n     *         )\r\n     *     },\r\n     *     inverseJoinColumns={@ORM\\JoinColumn(name=\"bookId\", referencedColumnName=\"itemRecord_id\", nullable=false)}\r\n     * )\r\n     * @ORM\\OrderBy({\"id\"=\"ASC\"})\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $itemRecord;\r\n}\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel30-2\" class=\"content \">\n<pre><code class=\"language-xml rainbow\" data-language=\"language-xml\"><span class=\"keyword operator\">&lt;<\/span>entity name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"author\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>id name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"id\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"integer\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>generator strategy<span class=\"keyword operator\">=<\/span><span class=\"string\">\"AUTO\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>\/id<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"firstName\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"string\"<\/span> <span class=\"constant language\">null<\/span>able<span class=\"keyword operator\">=<\/span><span class=\"string\">\"false\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"lastName\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"string\"<\/span> <span class=\"constant language\">null<\/span>able<span class=\"keyword operator\">=<\/span><span class=\"string\">\"false\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"birthDate\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"string\"<\/span> <span class=\"constant language\">null<\/span>able<span class=\"keyword operator\">=<\/span><span class=\"string\">\"true\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"awards\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"string\"<\/span> <span class=\"constant language\">null<\/span>able<span class=\"keyword operator\">=<\/span><span class=\"string\">\"true\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>indexes<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>index name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"ix_name_last\"<\/span> columns<span class=\"keyword operator\">=<\/span><span class=\"string\">\"lastName\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>\/indexes<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>unique<span class=\"keyword operator\">-<\/span>constraints<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>unique<span class=\"keyword operator\">-<\/span>constraint\r\n     name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"ix_first_name_last_name_date\"<\/span> \r\n     columns<span class=\"keyword operator\">=<\/span><span class=\"string\">\"firstName,lastName,birthDate\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>\/unique<span class=\"keyword operator\">-<\/span>constraints<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>many<span class=\"keyword operator\">-<\/span>to<span class=\"keyword operator\">-<\/span>many \r\n   field<span class=\"keyword operator\">=<\/span><span class=\"string\">\"itemRecords\"<\/span> \r\n   target<span class=\"keyword operator\">-<\/span>entity<span class=\"keyword operator\">=<\/span><span class=\"string\">\"itemRecord\"<\/span> \r\n   mapped<span class=\"keyword operator\">-<\/span>by<span class=\"keyword operator\">=<\/span><span class=\"string\">\"authors\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>cascade<span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>cascade<span class=\"keyword operator\">-<\/span>all\/<span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>cascade<span class=\"keyword operator\">-<\/span>merge\/<span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>cascade<span class=\"keyword operator\">-<\/span>persist\/<span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>cascade<span class=\"keyword operator\">-<\/span>refresh\/<span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>cascade<span class=\"keyword operator\">-<\/span>remove\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/cascade<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>order<span class=\"keyword operator\">-<\/span>by<span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>order<span class=\"keyword operator\">-<\/span>by<span class=\"keyword operator\">-<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"lastName\"<\/span> direction<span class=\"keyword operator\">=<\/span><span class=\"string\">\"ASC\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/order<span class=\"keyword operator\">-<\/span>by<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>\/many<span class=\"keyword operator\">-<\/span>to<span class=\"keyword operator\">-<\/span>many<span class=\"keyword operator\">&gt;<\/span>\r\n<span class=\"keyword operator\">&lt;<\/span>\/entity<span class=\"keyword operator\">&gt;<\/span>\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel30-3\" class=\"content \">\n<pre><code class=\"language-yaml rainbow\" data-language=\"language-yaml\">author:\r\n  type: entity\r\n  fields:\r\n    id:\r\n      id: <span class=\"constant language\">true<\/span>\r\n  manyToMany:\r\n    itemRecord:\r\n      targetEntity: itemRecord\r\n      inversedBy: author\r\n      cascade: [<span class=\"string\">\"all\"<\/span>, <span class=\"string\">\"refresh\"<\/span>]\r\n      orderBy:\r\n        id: ASC\r\n      joinTable:\r\n        name: itemRecordHasAuthor\r\n        joinColumns:\r\n          authorId:\r\n            referencedColumnName: id\r\n            <span class=\"constant language\">null<\/span>able: <span class=\"constant language\">false<\/span>\r\n            fetch: EAGER\r\n            onDelete: CASCADE\r\n            onUpdate: RESTRICT\r\n        inverseJoinColumns:\r\n          bookId:\r\n            referencedColumnName: itemRecord_id\r\n            <span class=\"constant language\">null<\/span>able: <span class=\"constant language\">false<\/span>\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel30-5\" class=\"content \">\n<ul>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/xml-mapping.html#defining-many-to-many-associations\">xml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/yaml-mapping.html\">yml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/php-mapping.html\">php mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/annotations-reference.html#manytomany\">annotation reference<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<h4>MN Entity<\/h4>\n<p><!-- element id 30 --><\/p>\n<p>Does not exist as a Doctrine2 object, it is handled internally.<\/p>\n<p>You can go and see how to <a href=\"#skipper\">do this in few clicks<\/a>.<\/p>\n<h2 id=\"inheritance\">Inheritance<\/h2>\n<h4>Single table inheritance<\/h4>\n<p><!-- element id 31 --><\/p>\n<p>Single table inheritance parent:<\/p>\n<p><!-- which tabs are used --><\/p>\n<p><!-- which content is used --><\/p>\n<p><!-- display the content --><\/p>\n<div class=\"row\">\n<div class=\"large-8 columns\">\n<dl class=\"tabs\" data-tab=\"\">\n<dd class=\"active\"><a href=\"#panel32-1\">Annotations<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel32-2\">XML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel32-3\">YML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel32-5\">Links<\/a><\/dd>\n<\/dl>\n<div class=\"tabs-content\">\n<div id=\"panel32-1\" class=\"content active\">\n<pre><code class=\"language-php rainbow\" data-language=\"language-php\"><span class=\"comment\">\/**\r\n * @ORM\\Entity\r\n * @ORM\\InheritanceType(\"SINGLE_TABLE\")\r\n * @ORM\\DiscriminatorColumn(name=\"item\", type=\"string\")\r\n * @ORM\\DiscriminatorMap(\r\n *     {\"itemRecord\"=\"itemRecord\",\"book\"=\"book\",\"magazine\"=\"magazine\",\"audioRecord\"=\"audioRecord\"}\r\n * )\r\n *\/<\/span>\r\n<span class=\"keyword\">class<\/span> itemRecord\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel32-2\" class=\"content \">\n<pre><code class=\"language-xml rainbow\" data-language=\"language-xml\"><span class=\"keyword operator\">&lt;<\/span>entity name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"itemRecord\"<\/span> inheritance<span class=\"keyword operator\">-<\/span>type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"SINGLE_TABLE\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>id name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"id\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>discriminator<span class=\"keyword operator\">-<\/span>column name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"item\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"string\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n\t<span class=\"keyword operator\">&lt;<\/span>discriminator<span class=\"keyword operator\">-<\/span>map<span class=\"keyword operator\">&gt;<\/span>\r\n\t\t<span class=\"keyword operator\">&lt;<\/span>discriminator<span class=\"keyword operator\">-<\/span>mapping <span class=\"keyword\">class<\/span><span class=\"keyword operator\">=<\/span><span class=\"string\">\"itemRecord\"<\/span> value<span class=\"keyword operator\">=<\/span><span class=\"string\">\"itemRecord\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n\t\t<span class=\"keyword operator\">&lt;<\/span>discriminator<span class=\"keyword operator\">-<\/span>mapping <span class=\"keyword\">class<\/span><span class=\"keyword operator\">=<\/span><span class=\"string\">\"book\"<\/span> value<span class=\"keyword operator\">=<\/span><span class=\"string\">\"book\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n\t\t<span class=\"keyword operator\">&lt;<\/span>discriminator<span class=\"keyword operator\">-<\/span>mapping <span class=\"keyword\">class<\/span><span class=\"keyword operator\">=<\/span><span class=\"string\">\"magazine\"<\/span> value<span class=\"keyword operator\">=<\/span><span class=\"string\">\"magazine\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n\t\t<span class=\"keyword operator\">&lt;<\/span>discriminator<span class=\"keyword operator\">-<\/span>mapping <span class=\"keyword\">class<\/span><span class=\"keyword operator\">=<\/span><span class=\"string\">\"audioRecord\"<\/span> value<span class=\"keyword operator\">=<\/span><span class=\"string\">\"audioRecord\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n\t<span class=\"keyword operator\">&lt;<\/span>\/discriminator<span class=\"keyword operator\">-<\/span>map<span class=\"keyword operator\">&gt;<\/span>\r\n<span class=\"keyword operator\">&lt;<\/span>\/entity<span class=\"keyword operator\">&gt;<\/span>\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel32-3\" class=\"content \">\n<pre><code class=\"language-yaml rainbow\" data-language=\"language-yaml\">itemRecord:\r\n  type: entity\r\n  inheritanceType: SINGLE_TABLE\r\n  repositoryClass: Doctrine\\ORM\\EntityRepository\r\n  fields:\r\n    id:\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel32-5\" class=\"content \">\n<ul>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/xml-mapping.html#defining-inheritance-mappings\">xml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/yaml-mapping.html\">yml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/php-mapping.html\">php mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/annotations-reference.html#discriminatormap\">annotation reference<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"large-4 large-centered columns\">\n<div class=\"image-tab\">\n<p><a href=\"#skipper\"><img decoding=\"async\" class=\"image-element\" src=\"\/images\/elements\/inh_par.png\" alt=\"Doctrine 2 inheritance displayed in Skipper visual model.\" \/><\/a><\/p>\n<p class=\"image-caption-model\">Generated by <a href=\"#skipper\">Skipper<\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!-- element id 32 --><\/p>\n<p>Single table inheritance child:<\/p>\n<p><!-- which tabs are used --><\/p>\n<p><!-- which content is used --><\/p>\n<p><!-- display the content --><\/p>\n<div class=\"row\">\n<div class=\"large-8 columns\">\n<dl class=\"tabs\" data-tab=\"\">\n<dd class=\"active\"><a href=\"#panel33-1\">Annotations<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel33-2\">XML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel33-3\">YML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel33-5\">Links<\/a><\/dd>\n<\/dl>\n<div class=\"tabs-content\">\n<div id=\"panel33-1\" class=\"content active\">\n<pre><code class=\"language-php rainbow\" data-language=\"language-php\"><span class=\"comment\">\/**\r\n * @ORM\\Entity\r\n *\/<\/span>\r\n<span class=\"keyword\">class<\/span> book <span class=\"keyword\">extends<\/span> itemRecord\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel33-2\" class=\"content \">\n<pre><code class=\"language-xml rainbow\" data-language=\"language-xml\"><span class=\"keyword operator\">&lt;<\/span>entity name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"book\"<\/span> <span class=\"keyword\">extends<\/span><span class=\"keyword operator\">=<\/span><span class=\"string\">\"itemRecord\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"pages\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n<span class=\"keyword operator\">&lt;<\/span>\/entity<span class=\"keyword operator\">&gt;<\/span>\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel33-3\" class=\"content \">\n<pre><code class=\"language-yaml rainbow\" data-language=\"language-yaml\">book:\r\n  type: entity\r\n  <span class=\"keyword\">extends<\/span>: itemRecord\r\n  fields:\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel33-5\" class=\"content \">\n<ul>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/xml-mapping.html#defining-inheritance-mappings\">xml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/yaml-mapping.html\">yml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/php-mapping.html\">php mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/annotations-reference.html#discriminatormap\">annotation reference<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"large-4 large-centered columns\">\n<div class=\"image-tab\">\n<p><a href=\"#skipper\"><img decoding=\"async\" class=\"image-element\" src=\"\/images\/elements\/inh_child.png\" alt=\"Doctrine 2 inheritance generated in the Skipper ER diagram.\" \/><\/a><\/p>\n<p class=\"image-caption-model\">Generated by <a href=\"#skipper\">Skipper<\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h4>Class table inheritance<\/h4>\n<p><!-- element id 33 --><\/p>\n<p>Class table inheritance parent:<\/p>\n<p><!-- which tabs are used --><\/p>\n<p><!-- which content is used --><\/p>\n<p><!-- display the content --><\/p>\n<div class=\"row\">\n<div class=\"large-8 columns\">\n<dl class=\"tabs\" data-tab=\"\">\n<dd class=\"active\"><a href=\"#panel34-1\">Annotations<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel34-2\">XML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel34-3\">YML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel34-5\">Links<\/a><\/dd>\n<\/dl>\n<div class=\"tabs-content\">\n<div id=\"panel34-1\" class=\"content active\">\n<pre><code class=\"language-php rainbow\" data-language=\"language-php\"><span class=\"comment\">\/**\r\n * @ORM\\Entity\r\n * @ORM\\InheritanceType(\"JOINED\")\r\n * @ORM\\DiscriminatorColumn(name=\"item\", type=\"string\")\r\n * @ORM\\DiscriminatorMap(\r\n *     {\"itemRecord\"=\"itemRecord\",\"book\"=\"book\",\"magazine\"=\"magazine\",\"audioRecord\"=\"audioRecord\"}\r\n * )\r\n *\/<\/span>\r\n<span class=\"keyword\">class<\/span> itemRecord\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel34-2\" class=\"content \">\n<pre><code class=\"language-xml rainbow\" data-language=\"language-xml\"><span class=\"keyword operator\">&lt;<\/span>entity name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"itemRecord\"<\/span> inheritance<span class=\"keyword operator\">-<\/span>type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"JOINED\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>id name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"id\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>discriminator<span class=\"keyword operator\">-<\/span>column name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"item\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"string\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>discriminator<span class=\"keyword operator\">-<\/span>map<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>discriminator<span class=\"keyword operator\">-<\/span>mapping <span class=\"keyword\">class<\/span><span class=\"keyword operator\">=<\/span><span class=\"string\">\"itemRecord\"<\/span> value<span class=\"keyword operator\">=<\/span><span class=\"string\">\"itemRecord\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>discriminator<span class=\"keyword operator\">-<\/span>mapping <span class=\"keyword\">class<\/span><span class=\"keyword operator\">=<\/span><span class=\"string\">\"book\"<\/span> value<span class=\"keyword operator\">=<\/span><span class=\"string\">\"book\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>discriminator<span class=\"keyword operator\">-<\/span>mapping <span class=\"keyword\">class<\/span><span class=\"keyword operator\">=<\/span><span class=\"string\">\"magazine\"<\/span> value<span class=\"keyword operator\">=<\/span><span class=\"string\">\"magazine\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>discriminator<span class=\"keyword operator\">-<\/span>mapping <span class=\"keyword\">class<\/span><span class=\"keyword operator\">=<\/span><span class=\"string\">\"audioRecord\"<\/span> value<span class=\"keyword operator\">=<\/span><span class=\"string\">\"audioRecord\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>\/discriminator<span class=\"keyword operator\">-<\/span>map<span class=\"keyword operator\">&gt;<\/span>\r\n<span class=\"keyword operator\">&lt;<\/span>\/entity<span class=\"keyword operator\">&gt;<\/span>\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel34-3\" class=\"content \">\n<pre><code class=\"language-yaml rainbow\" data-language=\"language-yaml\">itemRecord:\r\n  type: entity\r\n  inheritanceType: JOINED\r\n  repositoryClass: Doctrine\\ORM\\EntityRepository\r\n  fields:\r\n    id:\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel34-5\" class=\"content \">\n<ul>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/xml-mapping.html#defining-inheritance-mappings\">xml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/yaml-mapping.html\">yml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/php-mapping.html\">php mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/annotations-reference.html#discriminatormap\">annotation reference<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"large-4 large-centered columns\">\n<div class=\"image-tab\">\n<p><a href=\"#skipper\"><img decoding=\"async\" class=\"image-element\" src=\"\/images\/elements\/inh_par.png\" alt=\"Doctrine 2 inheritance displayed in Skipper visual model.\" \/><\/a><\/p>\n<p class=\"image-caption-model\">Generated by <a href=\"#skipper\">Skipper<\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!-- element id 34 --><\/p>\n<p>Class table inheritance child:<\/p>\n<p><!-- which tabs are used --><\/p>\n<p><!-- which content is used --><\/p>\n<p><!-- display the content --><\/p>\n<div class=\"row\">\n<div class=\"large-8 columns\">\n<dl class=\"tabs\" data-tab=\"\">\n<dd class=\"active\"><a href=\"#panel35-1\">Annotations<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel35-2\">XML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel35-3\">YML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel35-5\">Links<\/a><\/dd>\n<\/dl>\n<div class=\"tabs-content\">\n<div id=\"panel35-1\" class=\"content active\">\n<pre><code class=\"language-php rainbow\" data-language=\"language-php\"><span class=\"comment\">\/**\r\n * @ORM\\Entity\r\n *\/<\/span>\r\n<span class=\"keyword\">class<\/span> book <span class=\"keyword\">extends<\/span> itemRecord\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel35-2\" class=\"content \">\n<pre><code class=\"language-xml rainbow\" data-language=\"language-xml\"><span class=\"keyword operator\">&lt;<\/span>entity name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"book\"<\/span> <span class=\"keyword\">extends<\/span><span class=\"keyword operator\">=<\/span><span class=\"string\">\"itemRecord\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"pages\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n<span class=\"keyword operator\">&lt;<\/span>\/entity<span class=\"keyword operator\">&gt;<\/span>\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel35-3\" class=\"content \">\n<pre><code class=\"language-yaml rainbow\" data-language=\"language-yaml\">book:\r\n  type: entity\r\n  <span class=\"keyword\">extends<\/span>: itemRecord\r\n  fields:\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel35-5\" class=\"content \">\n<ul>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/xml-mapping.html#defining-inheritance-mappings\">xml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/yaml-mapping.html\">yml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/php-mapping.html\">php mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/annotations-reference.html#discriminatormap\">annotation reference<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"large-4 large-centered columns\">\n<div class=\"image-tab\">\n<p><a href=\"#skipper\"><img decoding=\"async\" class=\"image-element\" src=\"\/images\/elements\/inh_child.png\" alt=\"Doctrine 2 inheritance generated in the Skipper ER diagram.\" \/><\/a><\/p>\n<p class=\"image-caption-model\">Generated by <a href=\"#skipper\">Skipper<\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h4>Mapped superclass inheritance<\/h4>\n<p><!-- element id 35 --><\/p>\n<p>Mapped superclass inheritance parent:<\/p>\n<p><!-- which tabs are used --><\/p>\n<p><!-- which content is used --><\/p>\n<p><!-- display the content --><\/p>\n<div class=\"row\">\n<div class=\"large-8 columns\">\n<dl class=\"tabs\" data-tab=\"\">\n<dd class=\"active\"><a href=\"#panel36-1\">Annotations<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel36-2\">XML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel36-3\">YML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel36-5\">Links<\/a><\/dd>\n<\/dl>\n<div class=\"tabs-content\">\n<div id=\"panel36-1\" class=\"content active\">\n<pre><code class=\"language-php rainbow\" data-language=\"language-php\"><span class=\"comment\">\/**\r\n * \r\n * @ORM\\MappedSuperclass(repositoryClass=\"Doctrine\\ORM\\EntityRepository\")\r\n *\/<\/span>\r\n<span class=\"keyword\">class<\/span> itemRecord\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel36-2\" class=\"content \">\n<pre><code class=\"language-xml rainbow\" data-language=\"language-xml\"><span class=\"keyword operator\">&lt;<\/span>mapped<span class=\"keyword operator\">-<\/span>superclass name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"itemRecord\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>id name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"id\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n<span class=\"keyword operator\">&lt;<\/span>\/mapped<span class=\"keyword operator\">-<\/span>superclass<span class=\"keyword operator\">&gt;<\/span>\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel36-3\" class=\"content \">\n<pre><code class=\"language-yaml rainbow\" data-language=\"language-yaml\">itemRecord:\r\n  type: mappedSuperclass\r\n  repositoryClass: Doctrine\\ORM\\EntityRepository\r\n  fields:\r\n    id:\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel36-5\" class=\"content \">\n<ul>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/xml-mapping.html#defining-a-mapped-superclass\">xml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/yaml-mapping.html\">yml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/php-mapping.html\">php mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/annotations-reference.html#mappedsuperclass\">annotation reference<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"large-4 large-centered columns\">\n<div class=\"image-tab\">\n<p><a href=\"#skipper\"><img decoding=\"async\" class=\"image-element\" src=\"\/images\/elements\/inh_par.png\" alt=\"Doctrine 2 inheritance displayed in Skipper visual model.\" \/><\/a><\/p>\n<p class=\"image-caption-model\">Generated by <a href=\"#skipper\">Skipper<\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!-- element id 36 --><\/p>\n<p>Mapped supperclass inheritance child:<\/p>\n<p><!-- which tabs are used --><\/p>\n<p><!-- which content is used --><\/p>\n<p><!-- display the content --><\/p>\n<div class=\"row\">\n<div class=\"large-8 columns\">\n<dl class=\"tabs\" data-tab=\"\">\n<dd class=\"active\"><a href=\"#panel37-1\">Annotations<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel37-2\">XML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel37-3\">YML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel37-5\">Links<\/a><\/dd>\n<\/dl>\n<div class=\"tabs-content\">\n<div id=\"panel37-1\" class=\"content active\">\n<pre><code class=\"language-php rainbow\" data-language=\"language-php\"><span class=\"comment\">\/**\r\n * @ORM\\Entity\r\n *\/<\/span>\r\n<span class=\"keyword\">class<\/span> book <span class=\"keyword\">extends<\/span> itemRecord\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel37-2\" class=\"content \">\n<pre><code class=\"language-xml rainbow\" data-language=\"language-xml\"><span class=\"keyword operator\">&lt;<\/span>entity name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"book\"<\/span> <span class=\"keyword\">extends<\/span><span class=\"keyword operator\">=<\/span><span class=\"string\">\"itemRecord\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"pages\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n<span class=\"keyword operator\">&lt;<\/span>\/entity<span class=\"keyword operator\">&gt;<\/span>\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel37-3\" class=\"content \">\n<pre><code class=\"language-yaml rainbow\" data-language=\"language-yaml\">book:\r\n  type: entity\r\n  <span class=\"keyword\">extends<\/span>: itemRecord\r\n  fields:\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel37-5\" class=\"content \">\n<ul>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/xml-mapping.html#defining-a-mapped-superclass\">xml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/yaml-mapping.html\">yml mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/php-mapping.html\">php mapping<\/a><\/li>\n<li><a href=\"http:\/\/docs.doctrine-project.org\/en\/2.0.x\/reference\/annotations-reference.html#mappedsuperclass\">annotation reference<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"large-4 large-centered columns\">\n<div class=\"image-tab\">\n<p><a href=\"#skipper\"><img decoding=\"async\" class=\"image-element\" src=\"\/images\/elements\/inh_child.png\" alt=\"Doctrine 2 inheritance generated in the Skipper ER diagram.\" \/><\/a><\/p>\n<p class=\"image-caption-model\">Generated by <a href=\"#skipper\">Skipper<\/a><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>You can go and see how to <a href=\"#skipper\">do this in few clicks<\/a>.<\/p>\n<h1>Doctrine Extensions<\/h1>\n<h2 id=\"d2extensions\">Installing Doctrine extensions for Symfony2<\/h2>\n<p><!-- element id 37 --><\/p>\n<p>Install <a href=\"http:\/\/github.com\/KnpLabs\/symfony-with-composer\">Symfony-standard edition<br \/>\nwith composer<\/a>:<\/p>\n<ul>\n<li><code>git clone git:\/\/github.com\/KnpLabs\/symfony-with-composer.git example<\/code><\/li>\n<li><code>cd example &amp;&amp; rm -rf .git &amp;&amp; php bin\/vendors install<\/code><\/li>\n<li>ensure your application <a href=\"http:\/\/your_virtual_host\/app_dev.php\">loads and meets requirements<\/a><\/li>\n<\/ul>\n<p>Add the <strong>gedmo\/doctrine-extensions<\/strong> into <strong>composer.json<\/strong><\/p>\n<pre><code class=\"language-json rainbow\" data-language=\"language-json\">{\r\n    <span class=\"string\">\"require\"<\/span>: {\r\n        <span class=\"string\">\"php\"<\/span>:              <span class=\"string\">\"&gt;=5.3.2\"<\/span>,\r\n        <span class=\"string\">\"symfony\/symfony\"<\/span>:  <span class=\"string\">\"&gt;=2.0.9,&lt;2.1.0-dev\"<\/span>,\r\n        <span class=\"string\">\"doctrine\/orm\"<\/span>:     <span class=\"string\">\"&gt;=2.1.0,&lt;2.2.0-dev\"<\/span>,\r\n        <span class=\"string\">\"twig\/extensions\"<\/span>:  <span class=\"string\">\"*\"<\/span>,\r\n\r\n        <span class=\"string\">\"symfony\/assetic-bundle\"<\/span>:         <span class=\"string\">\"*\"<\/span>,\r\n        <span class=\"string\">\"sensio\/generator-bundle\"<\/span>:        <span class=\"string\">\"2.0.*\"<\/span>,\r\n        <span class=\"string\">\"sensio\/framework-extra-bundle\"<\/span>:  <span class=\"string\">\"2.0.*\"<\/span>,\r\n        <span class=\"string\">\"sensio\/distribution-bundle\"<\/span>:     <span class=\"string\">\"2.0.*\"<\/span>,\r\n        <span class=\"string\">\"jms\/security-extra-bundle\"<\/span>:      <span class=\"string\">\"1.0.*\"<\/span>,\r\n        <span class=\"string\">\"gedmo\/doctrine-extensions\"<\/span>:      <span class=\"string\">\"dev-master\"<\/span>\r\n    },\r\n\r\n    <span class=\"string\">\"autoload\"<\/span>: {\r\n        <span class=\"string\">\"psr-0\"<\/span>: {\r\n            <span class=\"string\">\"Acme\"<\/span>: <span class=\"string\">\"src\/\"<\/span>\r\n        }\r\n    }\r\n}\r\n<\/code><\/pre>\n<p>Update vendors: <code>php composer.phar update gedmo\/doctrine-extensions<\/code><br \/>\nConfigure your database connection parameters: <code>app\/config\/parameters.ini<\/code><\/p>\n<h3>Mapping Doctrine2 for Symfony2<\/h3>\n<p><!-- element id 38 --><\/p>\n<p>If you use <strong>translatable<\/strong>, <strong>tree<\/strong> or <strong>loggable<\/strong><br \/>\nextension you will need to map those abstract mappedsuperclasses. Add mapping info to your <code>doctrine.orm<\/code> configuration, edit <code>app\/config\/config.yml<\/code>:<\/p>\n<pre><code class=\"language-yaml rainbow\" data-language=\"language-yaml\">doctrine:\r\n    dbal:\r\n<span class=\"comment\"># your dbal config here<\/span>\r\n\r\n    orm:\r\n        auto_generate_proxy_classes: %kernel.debug%\r\n        auto_mapping: <span class=\"constant language\">true<\/span>\r\n<span class=\"comment\"># only these lines are added additionally <\/span>\r\n        mappings:\r\n            translatable:\r\n                type: annotation\r\n                alias: Gedmo\r\n                prefix: Gedmo\\Translatable\\Entity\r\n                <span class=\"comment\"># make sure vendor library location is correct<\/span>\r\n                dir: <span class=\"string\">\"%kernel.root_dir%\/..\/vendor\/gedmo\/doctrine-extensions\/lib\/Gedmo\/Translatable\/Entity\"<\/span>\r\n<\/code><\/pre>\n<p>After that, running <strong>php app\/console doctrine:mapping:info<\/strong> you should see the output:<\/p>\n<pre><code data-language=\"\">Found 3 entities mapped in entity manager default:\r\n[OK]   Gedmo\\Translatable\\Entity\\MappedSuperclass\\AbstractPersonalTranslation\r\n[OK]   Gedmo\\Translatable\\Entity\\MappedSuperclass\\AbstractTranslation\r\n[OK]   Gedmo\\Translatable\\Entity\\Translation\r\n<\/code><\/pre>\n<p><strong>Note:<\/strong> there is <strong>Gedmo\\Translatable\\Entity\\Translation<\/strong> which is not a super class, in that case<br \/>\nif you create doctrine schema, it will add <strong>ext_translations<\/strong> table, which might not be useful<br \/>\nto you also. To skip mapping of these entities, you can map <strong>only superclasses<\/strong><\/p>\n<pre><code class=\"language-yaml rainbow\" data-language=\"language-yaml\">mappings:\r\n    translatable:\r\n        type: annotation\r\n        alias: Gedmo\r\n        prefix: Gedmo\\Translatable\\Entity\r\n        <span class=\"comment\"># make sure vendor library location is correct<\/span>\r\n        dir: <span class=\"string\">\"%kernel.root_dir%\/..\/vendor\/gedmo\/doctrine-extensions\/lib\/Gedmo\/Translatable\/Entity\/MappedSuperclass\"<\/span>\r\n<\/code><\/pre>\n<p>The configuration above, adds a <strong>\/MappedSuperclass<\/strong> into directory depth, after running<br \/>\n<strong>php app\/console doctrine:mapping:info<\/strong> you should only see now:<\/p>\n<pre><code data-language=\"\">Found 2 entities mapped in entity manager default:\r\n[OK]   Gedmo\\Translatable\\Entity\\MappedSuperclass\\AbstractPersonalTranslation\r\n[OK]   Gedmo\\Translatable\\Entity\\MappedSuperclass\\AbstractTranslation\r\n<\/code><\/pre>\n<p>To map every extension use:<\/p>\n<pre><code class=\"language-yaml rainbow\" data-language=\"language-yaml\"><span class=\"comment\"># only orm config branch of doctrine<\/span>\r\norm:\r\n    auto_generate_proxy_classes: %kernel.debug%\r\n    auto_mapping: <span class=\"constant language\">true<\/span>\r\n<span class=\"comment\"># only these lines are added additionally <\/span>\r\n    mappings:\r\n        translatable:\r\n            type: annotation\r\n            alias: Gedmo\r\n            prefix: Gedmo\\Translatable\\Entity\r\n            <span class=\"comment\"># make sure vendor library location is correct<\/span>\r\n            dir: <span class=\"string\">\"%kernel.root_dir%\/..\/vendor\/gedmo\/doctrine-extensions\/lib\/Gedmo\/Translatable\/Entity\"<\/span>\r\n        loggable:\r\n            type: annotation\r\n            alias: Gedmo\r\n            prefix: Gedmo\\Loggable\\Entity\r\n            dir: <span class=\"string\">\"%kernel.root_dir%\/..\/vendor\/gedmo\/doctrine-extensions\/lib\/Gedmo\/Loggable\/Entity\"<\/span>\r\n        tree:\r\n            type: annotation\r\n            alias: Gedmo\r\n            prefix: Gedmo\\Tree\\Entity\r\n            dir: <span class=\"string\">\"%kernel.root_dir%\/..\/vendor\/gedmo\/doctrine-extensions\/lib\/Gedmo\/Tree\/Entity\"<\/span>\r\n<\/code><\/pre>\n<h3>Listener services for Doctrine2<\/h3>\n<p><!-- element id 39 --><\/p>\n<p>Edit and create an <em>yml<\/em> service file in your <code>app\/config\/doctrine_extensions.yml<\/code><\/p>\n<pre><code class=\"language-yaml rainbow\" data-language=\"language-yaml\"><span class=\"comment\"># services to handle doctrine extensions<\/span>\r\n<span class=\"comment\"># import it in config.yml<\/span>\r\nservices:\r\n    <span class=\"comment\"># KernelRequest listener<\/span>\r\n    extension.listener:\r\n        <span class=\"keyword\">class<\/span>: Acme\\DemoBundle\\Listener\\DoctrineExtensionListener\r\n        calls:\r\n            <span class=\"keyword operator\">-<\/span> [ setContainer, [ @service_container ] ]\r\n        tags:\r\n            <span class=\"comment\"># translatable sets locale after router processing<\/span>\r\n            <span class=\"keyword operator\">-<\/span> { name: kernel.event_listener, event: kernel.request, method: onLateKernelRequest, priority: <span class=\"keyword operator\">-<\/span><span class=\"constant numeric\">10<\/span> }\r\n            <span class=\"comment\"># loggable hooks user username if one is in security context<\/span>\r\n            <span class=\"keyword operator\">-<\/span> { name: kernel.event_listener, event: kernel.request, method: onKernelRequest }\r\n\r\n\r\n    <span class=\"comment\"># Doctrine Extension listeners to handle behaviors<\/span>\r\n    gedmo.listener.tree:\r\n        <span class=\"keyword\">class<\/span>: Gedmo\\Tree\\TreeListener\r\n        tags:\r\n            <span class=\"keyword operator\">-<\/span> { name: doctrine.event_subscriber, connection: default }\r\n        calls:\r\n            <span class=\"keyword operator\">-<\/span> [ setAnnotationReader, [ @annotation_reader ] ]\r\n            \r\n    gedmo.listener.translatable:\r\n        <span class=\"keyword\">class<\/span>: Gedmo\\Translatable\\TranslatableListener\r\n        tags:\r\n            <span class=\"keyword operator\">-<\/span> { name: doctrine.event_subscriber, connection: default }\r\n        calls:\r\n            <span class=\"keyword operator\">-<\/span> [ setAnnotationReader, [ @annotation_reader ] ]\r\n            <span class=\"keyword operator\">-<\/span> [ setDefaultLocale, [ %locale% ] ]\r\n            <span class=\"keyword operator\">-<\/span> [ setTranslationFallback, [ <span class=\"constant language\">false<\/span> ] ]\r\n    \r\n    gedmo.listener.timestampable:\r\n        <span class=\"keyword\">class<\/span>: Gedmo\\Timestampable\\TimestampableListener\r\n        tags:\r\n            <span class=\"keyword operator\">-<\/span> { name: doctrine.event_subscriber, connection: default }\r\n        calls:\r\n            <span class=\"keyword operator\">-<\/span> [ setAnnotationReader, [ @annotation_reader ] ]\r\n    \r\n    gedmo.listener.sluggable:\r\n        <span class=\"keyword\">class<\/span>: Gedmo\\Sluggable\\SluggableListener\r\n        tags:\r\n            <span class=\"keyword operator\">-<\/span> { name: doctrine.event_subscriber, connection: default }\r\n        calls:\r\n            <span class=\"keyword operator\">-<\/span> [ setAnnotationReader, [ @annotation_reader ] ]\r\n    \r\n    gedmo.listener.sortable:\r\n        <span class=\"keyword\">class<\/span>: Gedmo\\Sortable\\SortableListener\r\n        tags:\r\n            <span class=\"keyword operator\">-<\/span> { name: doctrine.event_subscriber, connection: default }\r\n        calls:\r\n            <span class=\"keyword operator\">-<\/span> [ setAnnotationReader, [ @annotation_reader ] ]\r\n    \r\n    gedmo.listener.loggable:\r\n        <span class=\"keyword\">class<\/span>: Gedmo\\Loggable\\LoggableListener\r\n        tags:\r\n            <span class=\"keyword operator\">-<\/span> { name: doctrine.event_subscriber, connection: default }\r\n        calls:\r\n            <span class=\"keyword operator\">-<\/span> [ setAnnotationReader, [ @annotation_reader ] ]\r\n<\/code><\/pre>\n<p><strong>Note:<\/strong> You will need to create <code>Acme\\DemoBundle\\Listener\\DoctrineExtensionListener<\/code> if you use <strong>loggable<\/strong> or <strong>translatable<\/strong> behaviors. This listener will set the <code>locale used<\/code> from request and <code>username<\/code> to<br \/>\nloggable.<\/p>\n<pre><code class=\"language-php rainbow\" data-language=\"language-php\"><span class=\"keyword operator\">&lt;<\/span>?php\r\n\r\n<span class=\"comment\">\/\/ file: src\/Acme\/DemoBundle\/Listener\/DoctrineExtensionListener.php<\/span>\r\n\r\nnamespace Acme\\DemoBundle\\Listener;\r\n\r\nuse Symfony\\Component\\HttpKernel\\Event\\GetResponseEvent;\r\nuse Symfony\\Component\\DependencyInjection\\ContainerAwareInterface;\r\nuse Symfony\\Component\\DependencyInjection\\ContainerInterface;\r\n\r\n<span class=\"keyword\">class<\/span> DoctrineExtensionListener implements ContainerAwareInterface\r\n{\r\n    <span class=\"comment\">\/**\r\n     * @var ContainerInterface\r\n     *\/<\/span>\r\n    <span class=\"keyword\">protected<\/span> $container;\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">setContainer<\/span>(ContainerInterface $container <span class=\"keyword operator\">=<\/span> <span class=\"constant language\">null<\/span>)\r\n    {\r\n        $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>container <span class=\"keyword operator\">=<\/span> $container;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">onLateKernelRequest<\/span>(GetResponseEvent $event)\r\n    {\r\n        $translatable <span class=\"keyword operator\">=<\/span> $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>container<span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span><span class=\"function call\">get<\/span>(<span class=\"string\">'gedmo.listener.translatable'<\/span>);\r\n        $translatable<span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span><span class=\"function call\">setTranslatableLocale<\/span>($event<span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span><span class=\"function call\">getRequest<\/span>()<span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span><span class=\"function call\">getLocale<\/span>());\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">onKernelRequest<\/span>(GetResponseEvent $event)\r\n    {\r\n        $securityContext <span class=\"keyword operator\">=<\/span> $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>container<span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span><span class=\"function call\">get<\/span>(<span class=\"string\">'security.context'<\/span>, ContainerInterface::NULL_ON_INVALID_REFERENCE);\r\n        <span class=\"keyword\">if<\/span> (<span class=\"constant language\">null<\/span> <span class=\"keyword operator\">!<\/span><span class=\"keyword operator\">=<\/span><span class=\"keyword operator\">=<\/span> $securityContext <span class=\"keyword operator\">&amp;<\/span><span class=\"keyword operator\">&amp;<\/span> <span class=\"constant language\">null<\/span> <span class=\"keyword operator\">!<\/span><span class=\"keyword operator\">=<\/span><span class=\"keyword operator\">=<\/span> $securityContext<span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span><span class=\"function call\">getToken<\/span>() <span class=\"keyword operator\">&amp;<\/span><span class=\"keyword operator\">&amp;<\/span> $securityContext<span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span><span class=\"function call\">isGranted<\/span>(<span class=\"string\">'IS_AUTHENTICATED_REMEMBERED'<\/span>)) {\r\n            $loggable <span class=\"keyword operator\">=<\/span> $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>container<span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span><span class=\"function call\">get<\/span>(<span class=\"string\">'gedmo.listener.loggable'<\/span>);\r\n            $loggable<span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span><span class=\"function call\">setUsername<\/span>($securityContext<span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span><span class=\"function call\">getToken<\/span>()<span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span><span class=\"function call\">getUsername<\/span>());\r\n        }\r\n    }\r\n}\r\n<\/code><\/pre>\n<p>Do not forget to import <strong>doctrine_extensions.yml<\/strong> in your <strong>app\/config\/config.yml<\/strong> etc.:<\/p>\n<pre><code class=\"language-yaml rainbow\" data-language=\"language-yaml\"><span class=\"comment\"># file: app\/config\/config.yml<\/span>\r\nimports:\r\n    <span class=\"keyword operator\">-<\/span> { resource: parameters.yml }\r\n    <span class=\"keyword operator\">-<\/span> { resource: security.yml }\r\n    <span class=\"keyword operator\">-<\/span> { resource: doctrine_extensions.yml }\r\n\r\n<span class=\"comment\"># ... configuration follows<\/span>\r\n<\/code><\/pre>\n<h2>Installing Doctrine extensions for Zend Framework 2<\/h2>\n<p><!-- element id 40 --><\/p>\n<p>Add DoctrineModule, DoctrineORMModule and DoctrineExtensions to composer.json file:<\/p>\n<pre><code class=\"language-json rainbow\" data-language=\"language-json\">{\r\n    <span class=\"string\">\"require\"<\/span>: {\r\n        <span class=\"string\">\"php\"<\/span>: <span class=\"string\">\"&gt;=5.3.3\"<\/span>,\r\n        <span class=\"string\">\"zendframework\/zendframework\"<\/span>: <span class=\"string\">\"2.1.*\"<\/span>,\r\n        <span class=\"string\">\"doctrine\/doctrine-module\"<\/span>: <span class=\"string\">\"0.*\"<\/span>,\r\n        <span class=\"string\">\"doctrine\/doctrine-orm-module\"<\/span>: <span class=\"string\">\"0.*\"<\/span>,\r\n        <span class=\"string\">\"gedmo\/doctrine-extensions\"<\/span>: <span class=\"string\">\"2.3.*\"<\/span>,\r\n    }\r\n}\r\n<\/code><\/pre>\n<p>Then run <code>composer.phar update<\/code>.<\/p>\n<h3>Configuring Doctrine extensions for Zend Framework 2<\/h3>\n<p><!-- element id 41 --><\/p>\n<p>Declaring appropriate subscribers in Event Manager settings. With <a href=\"https:\/\/github.com\/doctrine\/DoctrineORMModule#entities-settings\">entity mapping options<\/a> module configuration file should look like this:<\/p>\n<pre><code class=\"language-php rainbow\" data-language=\"language-php\"><span class=\"keyword\">return<\/span> <span class=\"keyword\">array<\/span>(\r\n    <span class=\"string\">'doctrine'<\/span> <span class=\"keyword operator\">=<\/span><span class=\"keyword operator\">&gt;<\/span> <span class=\"keyword\">array<\/span>(\r\n        <span class=\"string\">'eventmanager'<\/span> <span class=\"keyword operator\">=<\/span><span class=\"keyword operator\">&gt;<\/span> <span class=\"keyword\">array<\/span>(\r\n            <span class=\"string\">'orm_default'<\/span> <span class=\"keyword operator\">=<\/span><span class=\"keyword operator\">&gt;<\/span> <span class=\"keyword\">array<\/span>(\r\n                <span class=\"string\">'subscribers'<\/span> <span class=\"keyword operator\">=<\/span><span class=\"keyword operator\">&gt;<\/span> <span class=\"keyword\">array<\/span>(\r\n                \r\n                    <span class=\"comment\">\/\/ pick any listeners you need<\/span>\r\n                    <span class=\"string\">'Gedmo\\Tree\\TreeListener'<\/span>,\r\n                    <span class=\"string\">'Gedmo\\Timestampable\\TimestampableListener'<\/span>,\r\n                    <span class=\"string\">'Gedmo\\Sluggable\\SluggableListener'<\/span>,\r\n                    <span class=\"string\">'Gedmo\\Loggable\\LoggableListener'<\/span>,\r\n                    <span class=\"string\">'Gedmo\\Sortable\\SortableListener'<\/span>\r\n                ),\r\n            ),\r\n        ),\r\n        <span class=\"string\">'driver'<\/span> <span class=\"keyword operator\">=<\/span><span class=\"keyword operator\">&gt;<\/span> <span class=\"keyword\">array<\/span>(\r\n            <span class=\"string\">'my_driver'<\/span> <span class=\"keyword operator\">=<\/span><span class=\"keyword operator\">&gt;<\/span> <span class=\"keyword\">array<\/span>(\r\n                <span class=\"string\">'class'<\/span> <span class=\"keyword operator\">=<\/span><span class=\"keyword operator\">&gt;<\/span> <span class=\"string\">'Doctrine\\ORM\\Mapping\\Driver\\AnnotationDriver'<\/span>,\r\n                <span class=\"string\">'cache'<\/span> <span class=\"keyword operator\">=<\/span><span class=\"keyword operator\">&gt;<\/span> <span class=\"string\">'array'<\/span>,\r\n                <span class=\"string\">'paths'<\/span> <span class=\"keyword operator\">=<\/span><span class=\"keyword operator\">&gt;<\/span> <span class=\"keyword\">array<\/span>(__DIR__ . <span class=\"string\">'\/..\/src\/MyModule\/Entity'<\/span>)\r\n            ),\r\n            <span class=\"string\">'orm_default'<\/span> <span class=\"keyword operator\">=<\/span><span class=\"keyword operator\">&gt;<\/span> <span class=\"keyword\">array<\/span>(\r\n                <span class=\"string\">'drivers'<\/span> <span class=\"keyword operator\">=<\/span><span class=\"keyword operator\">&gt;<\/span> <span class=\"keyword\">array<\/span>(\r\n                    <span class=\"string\">'MyModule\\Entity'<\/span> <span class=\"keyword operator\">=<\/span><span class=\"keyword operator\">&gt;<\/span> <span class=\"string\">'my_driver'<\/span>\r\n                ),\r\n            ),\r\n        ),\r\n    ),\r\n);\r\n<\/code><\/pre>\n<h2 id=\"behaviors\">Behaviors<\/h2>\n<h3>Tree<\/h3>\n<p><!-- element id 42 --><\/p>\n<p>Tree nested behavior will implement the standard Nested-Set behavior on your Entity.<\/p>\n<p><!-- which tabs are used --><\/p>\n<p><!-- which content is used --><\/p>\n<p><!-- display the content --><\/p>\n<div class=\"row\">\n<div class=\"large-12 columns\">\n<dl class=\"tabs\" data-tab=\"\">\n<dd class=\"active\"><a href=\"#panel43-1\">Annotations<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel43-2\">XML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel43-3\">YML<\/a><\/dd>\n<\/dl>\n<div class=\"tabs-content\">\n<div id=\"panel43-1\" class=\"content active\">\n<pre><code class=\"language-php rainbow\" data-language=\"language-php\"><span class=\"keyword operator\">&lt;<\/span>?php\r\nnamespace Entity;\r\n\r\nuse Gedmo\\Mapping\\Annotation <span class=\"keyword\">as<\/span> Gedmo;\r\nuse Doctrine\\ORM\\Mapping <span class=\"keyword\">as<\/span> ORM;\r\n\r\n<span class=\"comment\">\/**\r\n * @Gedmo\\Tree(type=\"nested\")\r\n * @ORM\\Table(name=\"categories\")\r\n * use repository for handy tree functions\r\n * @ORM\\Entity(repositoryClass=\"Gedmo\\Tree\\Entity\\Repository\\NestedTreeRepository\")\r\n *\/<\/span>\r\n<span class=\"keyword\">class<\/span> Category\r\n{\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\Column(name=\"id\", type=\"integer\")\r\n     * @ORM\\Id\r\n     * @ORM\\GeneratedValue\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $id;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\Column(name=\"title\", type=\"string\", length=64)\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $title;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @Gedmo\\TreeLeft\r\n     * @ORM\\Column(name=\"lft\", type=\"integer\")\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $lft;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @Gedmo\\TreeLevel\r\n     * @ORM\\Column(name=\"lvl\", type=\"integer\")\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $lvl;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @Gedmo\\TreeRight\r\n     * @ORM\\Column(name=\"rgt\", type=\"integer\")\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $rgt;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @Gedmo\\TreeRoot\r\n     * @ORM\\Column(name=\"root\", type=\"integer\", nullable=true)\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $root;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @Gedmo\\TreeParent\r\n     * @ORM\\ManyToOne(targetEntity=\"Category\", inversedBy=\"children\")\r\n     * @ORM\\JoinColumn(name=\"parent_id\", referencedColumnName=\"id\", onDelete=\"CASCADE\")\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $parent;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\OneToMany(targetEntity=\"Category\", mappedBy=\"parent\")\r\n     * @ORM\\OrderBy({\"lft\" = \"ASC\"})\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $children;\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">getId<\/span>()\r\n    {\r\n        <span class=\"keyword\">return<\/span> $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>id;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">setTitle<\/span>($title)\r\n    {\r\n        $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>title <span class=\"keyword operator\">=<\/span> $title;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">getTitle<\/span>()\r\n    {\r\n        <span class=\"keyword\">return<\/span> $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>title;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">setParent<\/span>(Category $parent <span class=\"keyword operator\">=<\/span> <span class=\"constant language\">null<\/span>)\r\n    {\r\n        $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>parent <span class=\"keyword operator\">=<\/span> $parent;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">getParent<\/span>()\r\n    {\r\n        <span class=\"keyword\">return<\/span> $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>parent;\r\n    }\r\n}\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel43-2\" class=\"content \">\n<pre><code class=\"language-xml rainbow\" data-language=\"language-xml\"><span class=\"keyword operator\">&lt;<\/span>?xml version<span class=\"keyword operator\">=<\/span><span class=\"string\">\"1.0\"<\/span> encoding<span class=\"keyword operator\">=<\/span><span class=\"string\">\"UTF-8\"<\/span>?<span class=\"keyword operator\">&gt;<\/span>\r\n<span class=\"keyword operator\">&lt;<\/span>doctrine<span class=\"keyword operator\">-<\/span>mapping \r\n xmlns<span class=\"keyword operator\">=<\/span><span class=\"string\">\"http:\/\/doctrine-project.org\/schemas\/orm\/doctrine-mapping\"<\/span>\r\n xmlns:gedmo<span class=\"keyword operator\">=<\/span><span class=\"string\">\"http:\/\/gediminasm.org\/schemas\/orm\/doctrine-extensions-mapping\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n\r\n  <span class=\"keyword operator\">&lt;<\/span>entity name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"Mapping\\Fixture\\Xml\\NestedTree\"<\/span> \r\n   table<span class=\"keyword operator\">=<\/span><span class=\"string\">\"nested_trees\"<\/span> \r\n   repository<span class=\"keyword operator\">-<\/span><span class=\"keyword\">class<\/span><span class=\"keyword operator\">=<\/span><span class=\"string\">\"Gedmo\\Tree\\Entity\\Repository\\NestedTreeRepository\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n\r\n    <span class=\"keyword operator\">&lt;<\/span>indexes<span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>index name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"name_idx\"<\/span> columns<span class=\"keyword operator\">=<\/span><span class=\"string\">\"name\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/indexes<span class=\"keyword operator\">&gt;<\/span>\r\n\r\n    <span class=\"keyword operator\">&lt;<\/span>id name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"id\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"integer\"<\/span> column<span class=\"keyword operator\">=<\/span><span class=\"string\">\"id\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>generator strategy<span class=\"keyword operator\">=<\/span><span class=\"string\">\"AUTO\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/id<span class=\"keyword operator\">&gt;<\/span>\r\n\r\n    <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"name\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"string\"<\/span> length<span class=\"keyword operator\">=<\/span><span class=\"string\">\"128\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"left\"<\/span> column<span class=\"keyword operator\">=<\/span><span class=\"string\">\"lft\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"integer\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>gedmo:tree<span class=\"keyword operator\">-<\/span>left\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/field<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"right\"<\/span> column<span class=\"keyword operator\">=<\/span><span class=\"string\">\"rgt\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"integer\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>gedmo:tree<span class=\"keyword operator\">-<\/span>right\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/field<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"root\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"integer\"<\/span> <span class=\"constant language\">null<\/span>able<span class=\"keyword operator\">=<\/span><span class=\"string\">\"true\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>gedmo:tree<span class=\"keyword operator\">-<\/span>root\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/field<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"level\"<\/span> column<span class=\"keyword operator\">=<\/span><span class=\"string\">\"lvl\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"integer\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>gedmo:tree<span class=\"keyword operator\">-<\/span>level\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/field<span class=\"keyword operator\">&gt;<\/span>\r\n\r\n    <span class=\"keyword operator\">&lt;<\/span>many<span class=\"keyword operator\">-<\/span>to<span class=\"keyword operator\">-<\/span>one \r\n     field<span class=\"keyword operator\">=<\/span><span class=\"string\">\"parent\"<\/span> \r\n     target<span class=\"keyword operator\">-<\/span>entity<span class=\"keyword operator\">=<\/span><span class=\"string\">\"NestedTree\"<\/span> \r\n     inversed<span class=\"keyword operator\">-<\/span>by<span class=\"keyword operator\">=<\/span><span class=\"string\">\"children\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>join<span class=\"keyword operator\">-<\/span>column \r\n       name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"parent_id\"<\/span> \r\n       referenced<span class=\"keyword operator\">-<\/span>column<span class=\"keyword operator\">-<\/span>name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"id\"<\/span> \r\n       on<span class=\"keyword operator\">-<\/span><span class=\"keyword\">delete<\/span><span class=\"keyword operator\">=<\/span><span class=\"string\">\"CASCADE\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>gedmo:tree<span class=\"keyword operator\">-<\/span>parent\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/many<span class=\"keyword operator\">-<\/span>to<span class=\"keyword operator\">-<\/span>one<span class=\"keyword operator\">&gt;<\/span>\r\n\r\n    <span class=\"keyword operator\">&lt;<\/span>one<span class=\"keyword operator\">-<\/span>to<span class=\"keyword operator\">-<\/span>many field<span class=\"keyword operator\">=<\/span><span class=\"string\">\"children\"<\/span> target<span class=\"keyword operator\">-<\/span>entity<span class=\"keyword operator\">=<\/span><span class=\"string\">\"NestedTree\"<\/span> mapped<span class=\"keyword operator\">-<\/span>by<span class=\"keyword operator\">=<\/span><span class=\"string\">\"parent\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>order<span class=\"keyword operator\">-<\/span>by<span class=\"keyword operator\">&gt;<\/span>\r\n        <span class=\"keyword operator\">&lt;<\/span>order<span class=\"keyword operator\">-<\/span>by<span class=\"keyword operator\">-<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"left\"<\/span> direction<span class=\"keyword operator\">=<\/span><span class=\"string\">\"ASC\"<\/span> \/<span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>\/order<span class=\"keyword operator\">-<\/span>by<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/one<span class=\"keyword operator\">-<\/span>to<span class=\"keyword operator\">-<\/span>many<span class=\"keyword operator\">&gt;<\/span>\r\n\r\n    <span class=\"keyword operator\">&lt;<\/span>gedmo:tree type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"nested\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n\r\n  <span class=\"keyword operator\">&lt;<\/span>\/entity<span class=\"keyword operator\">&gt;<\/span>\r\n\r\n<span class=\"keyword operator\">&lt;<\/span>\/doctrine<span class=\"keyword operator\">-<\/span>mapping<span class=\"keyword operator\">&gt;<\/span>\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel43-3\" class=\"content \">\n<pre><code class=\"language-yaml rainbow\" data-language=\"language-yaml\"><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">-<\/span>\r\nEntity\\Category:\r\n  type: entity\r\n  repositoryClass: Gedmo\\Tree\\Entity\\Repository\\NestedTreeRepository\r\n  table: categories\r\n  gedmo:\r\n    tree:\r\n      type: nested\r\n  id:\r\n    id:\r\n      type: <span class=\"keyword\">integer<\/span>\r\n      generator:\r\n        strategy: AUTO\r\n  fields:\r\n    title:\r\n      type: <span class=\"keyword\">string<\/span>\r\n      length: <span class=\"constant numeric\">64<\/span>\r\n    lft:\r\n      type: <span class=\"keyword\">integer<\/span>\r\n      gedmo:\r\n        <span class=\"keyword operator\">-<\/span> treeLeft\r\n    rgt:\r\n      type: <span class=\"keyword\">integer<\/span>\r\n      gedmo:\r\n        <span class=\"keyword operator\">-<\/span> treeRight\r\n    root:\r\n      type: <span class=\"keyword\">integer<\/span>\r\n      <span class=\"constant language\">null<\/span>able: <span class=\"constant language\">true<\/span>\r\n      gedmo:\r\n        <span class=\"keyword operator\">-<\/span> treeRoot\r\n    lvl:\r\n      type: <span class=\"keyword\">integer<\/span>\r\n      gedmo:\r\n        <span class=\"keyword operator\">-<\/span> treeLevel\r\n  manyToOne:\r\n    parent:\r\n      targetEntity: Entity\\Category\r\n      inversedBy: children\r\n      joinColumn:\r\n        name: parent_id\r\n        referencedColumnName: id\r\n        onDelete: CASCADE\r\n      gedmo:\r\n        <span class=\"keyword operator\">-<\/span> treeParent\r\n  oneToMany:\r\n    children:\r\n      targetEntity: Entity\\Category\r\n      mappedBy: parent\r\n      orderBy:\r\n        lft: ASC\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>For more details <a href=\"https:\/\/github.com\/l3pp4rd\/DoctrineExtensions\/blob\/master\/doc\/tree.md\">check the documentation<\/a>.<\/p>\n<h3>Translatable<\/h3>\n<p><!-- element id 43 --><\/p>\n<p>Translatable behavior offers a very handy solution for translating specific record fields in different languages.<\/p>\n<p><!-- which tabs are used --><\/p>\n<p><!-- which content is used --><\/p>\n<p><!-- display the content --><\/p>\n<div class=\"row\">\n<div class=\"large-12 columns\">\n<dl class=\"tabs\" data-tab=\"\">\n<dd class=\"active\"><a href=\"#panel44-1\">Annotations<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel44-2\">XML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel44-3\">YML<\/a><\/dd>\n<\/dl>\n<div class=\"tabs-content\">\n<div id=\"panel44-1\" class=\"content active\">\n<pre><code class=\"language-php rainbow\" data-language=\"language-php\"><span class=\"keyword operator\">&lt;<\/span>?php\r\nnamespace Entity;\r\n\r\nuse Gedmo\\Mapping\\Annotation <span class=\"keyword\">as<\/span> Gedmo;\r\nuse Doctrine\\ORM\\Mapping <span class=\"keyword\">as<\/span> ORM;\r\nuse Gedmo\\Translatable\\Translatable;\r\n\r\n<span class=\"comment\">\/**\r\n * @ORM\\Table(name=\"articles\")\r\n * @ORM\\Entity\r\n *\/<\/span>\r\n<span class=\"keyword\">class<\/span> Article implements Translatable\r\n{\r\n    <span class=\"comment\">\/** @ORM\\Id @ORM\\GeneratedValue @ORM\\Column(type=\"integer\") *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $id;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @Gedmo\\Translatable\r\n     * @ORM\\Column(name=\"title\", type=\"string\", length=128)\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $title;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @Gedmo\\Translatable\r\n     * @ORM\\Column(name=\"content\", type=\"text\")\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $content;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @Gedmo\\Locale\r\n     * Used locale to override Translation listener`s locale\r\n     * this is not a mapped field of entity metadata, just a simple property\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $locale;\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">getId<\/span>()\r\n    {\r\n        <span class=\"keyword\">return<\/span> $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>id;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">setTitle<\/span>($title)\r\n    {\r\n        $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>title <span class=\"keyword operator\">=<\/span> $title;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">getTitle<\/span>()\r\n    {\r\n        <span class=\"keyword\">return<\/span> $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>title;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">setContent<\/span>($content)\r\n    {\r\n        $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>content <span class=\"keyword operator\">=<\/span> $content;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">getContent<\/span>()\r\n    {\r\n        <span class=\"keyword\">return<\/span> $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>content;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">setTranslatableLocale<\/span>($locale)\r\n    {\r\n        $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>locale <span class=\"keyword operator\">=<\/span> $locale;\r\n    }\r\n}\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel44-2\" class=\"content \">\n<pre><code class=\"language-xml rainbow\" data-language=\"language-xml\"><span class=\"keyword operator\">&lt;<\/span>?xml version<span class=\"keyword operator\">=<\/span><span class=\"string\">\"1.0\"<\/span> encoding<span class=\"keyword operator\">=<\/span><span class=\"string\">\"UTF-8\"<\/span>?<span class=\"keyword operator\">&gt;<\/span>\r\n<span class=\"keyword operator\">&lt;<\/span>doctrine<span class=\"keyword operator\">-<\/span>mapping \r\n xmlns<span class=\"keyword operator\">=<\/span><span class=\"string\">\"http:\/\/doctrine-project.org\/schemas\/orm\/doctrine-mapping\"<\/span>\r\n xmlns:gedmo<span class=\"keyword operator\">=<\/span><span class=\"string\">\"http:\/\/gediminasm.org\/schemas\/orm\/doctrine-extensions-mapping\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n\r\n  <span class=\"keyword operator\">&lt;<\/span>entity \r\n   name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"Mapping\\Fixture\\Xml\\Translatable\"<\/span> \r\n   table<span class=\"keyword operator\">=<\/span><span class=\"string\">\"translatables\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n\r\n    <span class=\"keyword operator\">&lt;<\/span>id name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"id\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"integer\"<\/span> column<span class=\"keyword operator\">=<\/span><span class=\"string\">\"id\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>generator strategy<span class=\"keyword operator\">=<\/span><span class=\"string\">\"AUTO\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/id<span class=\"keyword operator\">&gt;<\/span>\r\n\r\n    <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"title\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"string\"<\/span> length<span class=\"keyword operator\">=<\/span><span class=\"string\">\"128\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>gedmo:translatable\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/field<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"content\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"text\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>gedmo:translatable\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/field<span class=\"keyword operator\">&gt;<\/span>\r\n\r\n    <span class=\"keyword operator\">&lt;<\/span>gedmo:translation \r\n     entity<span class=\"keyword operator\">=<\/span><span class=\"string\">\"Gedmo\\Translatable\\Entity\\Translation\"<\/span> \r\n     locale<span class=\"keyword operator\">=<\/span><span class=\"string\">\"locale\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n\r\n  <span class=\"keyword operator\">&lt;<\/span>\/entity<span class=\"keyword operator\">&gt;<\/span>\r\n\r\n<span class=\"keyword operator\">&lt;<\/span>\/doctrine<span class=\"keyword operator\">-<\/span>mapping<span class=\"keyword operator\">&gt;<\/span>\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel44-3\" class=\"content \">\n<pre><code class=\"language-yaml rainbow\" data-language=\"language-yaml\"><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">-<\/span>\r\nEntity\\Article:\r\n  type: entity\r\n  table: articles\r\n  gedmo:\r\n    translation:\r\n      locale: localeField\r\n<span class=\"comment\"># using specific personal translation class:<\/span>\r\n<span class=\"comment\">#     entity: Translatable\\Fixture\\CategoryTranslation<\/span>\r\n  id:\r\n    id:\r\n      type: <span class=\"keyword\">integer<\/span>\r\n      generator:\r\n        strategy: AUTO\r\n  fields:\r\n    title:\r\n      type: <span class=\"keyword\">string<\/span>\r\n      length: <span class=\"constant numeric\">64<\/span>\r\n      gedmo:\r\n        <span class=\"keyword operator\">-<\/span> translatable\r\n    content:\r\n      type: text\r\n      gedmo:\r\n        <span class=\"keyword operator\">-<\/span> translatable\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>For more details <a href=\"https:\/\/github.com\/l3pp4rd\/DoctrineExtensions\/blob\/master\/doc\/translatable.md\">check the documentation<\/a>.<\/p>\n<h3>Sluggable<\/h3>\n<p><!-- element id 44 --><\/p>\n<p>Sluggable behavior will build the slug of predefined fields on a given field which should store the slug.<\/p>\n<p><!-- which tabs are used --><\/p>\n<p><!-- which content is used --><\/p>\n<p><!-- display the content --><\/p>\n<div class=\"row\">\n<div class=\"large-12 columns\">\n<dl class=\"tabs\" data-tab=\"\">\n<dd class=\"active\"><a href=\"#panel45-1\">Annotations<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel45-2\">XML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel45-3\">YML<\/a><\/dd>\n<\/dl>\n<div class=\"tabs-content\">\n<div id=\"panel45-1\" class=\"content active\">\n<pre><code class=\"language-php rainbow\" data-language=\"language-php\"><span class=\"keyword operator\">&lt;<\/span>?php\r\nnamespace Entity;\r\n\r\nuse Gedmo\\Mapping\\Annotation <span class=\"keyword\">as<\/span> Gedmo;\r\nuse Doctrine\\ORM\\Mapping <span class=\"keyword\">as<\/span> ORM;\r\n\r\n<span class=\"comment\">\/**\r\n * @ORM\\Table(name=\"articles\")\r\n * @ORM\\Entity\r\n *\/<\/span>\r\n<span class=\"keyword\">class<\/span> Article\r\n{\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\Id\r\n     * @ORM\\GeneratedValue\r\n     * @ORM\\Column(type=\"integer\")\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $id;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\Column(length=64)\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $title;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\Column(length=16)\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $code;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @Gedmo\\Slug(fields={\"title\", \"code\"})\r\n     * @ORM\\Column(length=128, unique=true)\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $slug;\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">getId<\/span>()\r\n    {\r\n        <span class=\"keyword\">return<\/span> $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>id;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">setTitle<\/span>($title)\r\n    {\r\n        $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>title <span class=\"keyword operator\">=<\/span> $title;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">getTitle<\/span>()\r\n    {\r\n        <span class=\"keyword\">return<\/span> $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>title;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">setCode<\/span>($code)\r\n    {\r\n        $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>code <span class=\"keyword operator\">=<\/span> $code;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">getCode<\/span>()\r\n    {\r\n        <span class=\"keyword\">return<\/span> $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>code;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">getSlug<\/span>()\r\n    {\r\n        <span class=\"keyword\">return<\/span> $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>slug;\r\n    }\r\n}\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel45-2\" class=\"content \">\n<pre><code class=\"language-xml rainbow\" data-language=\"language-xml\"><span class=\"keyword operator\">&lt;<\/span>?xml version<span class=\"keyword operator\">=<\/span><span class=\"string\">\"1.0\"<\/span> encoding<span class=\"keyword operator\">=<\/span><span class=\"string\">\"UTF-8\"<\/span>?<span class=\"keyword operator\">&gt;<\/span>\r\n<span class=\"keyword operator\">&lt;<\/span>doctrine<span class=\"keyword operator\">-<\/span>mapping \r\n xmlns<span class=\"keyword operator\">=<\/span><span class=\"string\">\"http:\/\/doctrine-project.org\/schemas\/orm\/doctrine-mapping\"<\/span>\r\n xmlns:gedmo<span class=\"keyword operator\">=<\/span><span class=\"string\">\"http:\/\/gediminasm.org\/schemas\/orm\/doctrine-extensions-mapping\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>entity name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"Entity\\Article\"<\/span> table<span class=\"keyword operator\">=<\/span><span class=\"string\">\"sluggables\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>id name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"id\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"integer\"<\/span> column<span class=\"keyword operator\">=<\/span><span class=\"string\">\"id\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>generator strategy<span class=\"keyword operator\">=<\/span><span class=\"string\">\"AUTO\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/id<span class=\"keyword operator\">&gt;<\/span>\r\n\r\n    <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"title\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"string\"<\/span> length<span class=\"keyword operator\">=<\/span><span class=\"string\">\"128\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"code\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"string\"<\/span> length<span class=\"keyword operator\">=<\/span><span class=\"string\">\"16\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"ean\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"string\"<\/span> length<span class=\"keyword operator\">=<\/span><span class=\"string\">\"13\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"slug\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"string\"<\/span> length<span class=\"keyword operator\">=<\/span><span class=\"string\">\"156\"<\/span> unique<span class=\"keyword operator\">=<\/span><span class=\"string\">\"true\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>gedmo:slug unique<span class=\"keyword operator\">=<\/span><span class=\"string\">\"true\"<\/span> style<span class=\"keyword operator\">=<\/span><span class=\"string\">\"camel\"<\/span> updatable<span class=\"keyword operator\">=<\/span><span class=\"string\">\"false\"<\/span> separator<span class=\"keyword operator\">=<\/span><span class=\"string\">\"_\"<\/span> fields<span class=\"keyword operator\">=<\/span><span class=\"string\">\"title,code,ean\"<\/span> \/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/field<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>\/entity<span class=\"keyword operator\">&gt;<\/span>\r\n<span class=\"keyword operator\">&lt;<\/span>\/doctrine<span class=\"keyword operator\">-<\/span>mapping<span class=\"keyword operator\">&gt;<\/span>\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel45-3\" class=\"content \">\n<pre><code class=\"language-yaml rainbow\" data-language=\"language-yaml\"><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">-<\/span>\r\nEntity\\Article:\r\n  type: entity\r\n  table: articles\r\n  id:\r\n    id:\r\n      type: <span class=\"keyword\">integer<\/span>\r\n      generator:\r\n        strategy: AUTO\r\n  fields:\r\n    title:\r\n      type: <span class=\"keyword\">string<\/span>\r\n      length: <span class=\"constant numeric\">64<\/span>\r\n    code:\r\n      type: <span class=\"keyword\">string<\/span>\r\n      length: <span class=\"constant numeric\">16<\/span>\r\n    slug:\r\n      type: <span class=\"keyword\">string<\/span>\r\n      length: <span class=\"constant numeric\">128<\/span>\r\n      gedmo:\r\n        slug:\r\n          separator: _\r\n          style: camel\r\n          fields:\r\n            <span class=\"keyword operator\">-<\/span> title\r\n            <span class=\"keyword operator\">-<\/span> code\r\n  indexes:\r\n    search_idx:\r\n      columns: slug\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>For more details <a href=\"https:\/\/github.com\/l3pp4rd\/DoctrineExtensions\/blob\/master\/doc\/sluggable.md\">check the documentation<\/a>.<\/p>\n<h3>Timestampable<\/h3>\n<p><!-- element id 45 --><\/p>\n<p>Timestampable behavior will automate the update of date fields on your Entities or Documents.<\/p>\n<p><!-- which tabs are used --><\/p>\n<p><!-- which content is used --><\/p>\n<p><!-- display the content --><\/p>\n<div class=\"row\">\n<div class=\"large-12 columns\">\n<dl class=\"tabs\" data-tab=\"\">\n<dd class=\"active\"><a href=\"#panel46-1\">Annotations<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel46-2\">XML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel46-3\">YML<\/a><\/dd>\n<\/dl>\n<div class=\"tabs-content\">\n<div id=\"panel46-1\" class=\"content active\">\n<pre><code class=\"language-php rainbow\" data-language=\"language-php\"><span class=\"keyword operator\">&lt;<\/span>?php\r\nnamespace Entity;\r\n\r\nuse Gedmo\\Mapping\\Annotation <span class=\"keyword\">as<\/span> Gedmo;\r\nuse Doctrine\\ORM\\Mapping <span class=\"keyword\">as<\/span> ORM;\r\n\r\n<span class=\"comment\">\/**\r\n * @ORM\\Entity\r\n *\/<\/span>\r\n<span class=\"keyword\">class<\/span> Article\r\n{\r\n    <span class=\"comment\">\/** @ORM\\Id @ORM\\GeneratedValue @ORM\\Column(type=\"integer\") *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $id;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\Column(type=\"string\", length=128)\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $title;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\Column(name=\"body\", type=\"string\")\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $body;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @var datetime $created\r\n     *\r\n     * @Gedmo\\Timestampable(on=\"create\")\r\n     * @ORM\\Column(type=\"datetime\")\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $created;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @var datetime $updated\r\n     *\r\n     * @Gedmo\\Timestampable(on=\"update\")\r\n     * @ORM\\Column(type=\"datetime\")\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $updated;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @var datetime $contentChanged\r\n     *\r\n     * @ORM\\Column(name=\"content_changed\", type=\"datetime\", nullable=true)\r\n     * @Gedmo\\Timestampable(on=\"change\", field={\"title\", \"body\"})\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $contentChanged;\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">getId<\/span>()\r\n    {\r\n        <span class=\"keyword\">return<\/span> $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>id;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">setTitle<\/span>($title)\r\n    {\r\n        $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>title <span class=\"keyword operator\">=<\/span> $title;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">getTitle<\/span>()\r\n    {\r\n        <span class=\"keyword\">return<\/span> $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>title;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">setBody<\/span>($body)\r\n    {\r\n        $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>body <span class=\"keyword operator\">=<\/span> $body;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">getBody<\/span>()\r\n    {\r\n        <span class=\"keyword\">return<\/span> $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>body;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">getCreated<\/span>()\r\n    {\r\n        <span class=\"keyword\">return<\/span> $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>created;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">getUpdated<\/span>()\r\n    {\r\n        <span class=\"keyword\">return<\/span> $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>updated;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">getContentChanged<\/span>()\r\n    {\r\n        <span class=\"keyword\">return<\/span> $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>contentChanged;\r\n    }\r\n}\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel46-2\" class=\"content \">\n<pre><code class=\"language-xml rainbow\" data-language=\"language-xml\"><span class=\"keyword operator\">&lt;<\/span>?xml version<span class=\"keyword operator\">=<\/span><span class=\"string\">\"1.0\"<\/span> encoding<span class=\"keyword operator\">=<\/span><span class=\"string\">\"UTF-8\"<\/span>?<span class=\"keyword operator\">&gt;<\/span>\r\n<span class=\"keyword operator\">&lt;<\/span>doctrine<span class=\"keyword operator\">-<\/span>mapping \r\n xmlns<span class=\"keyword operator\">=<\/span><span class=\"string\">\"http:\/\/doctrine-project.org\/schemas\/orm\/doctrine-mapping\"<\/span>\r\n xmlns:gedmo<span class=\"keyword operator\">=<\/span><span class=\"string\">\"http:\/\/gediminasm.org\/schemas\/orm\/doctrine-extensions-mapping\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n\r\n    <span class=\"keyword operator\">&lt;<\/span>entity \r\n     name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"Mapping\\Fixture\\Xml\\Timestampable\"<\/span> \r\n     table<span class=\"keyword operator\">=<\/span><span class=\"string\">\"timestampables\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n        <span class=\"keyword operator\">&lt;<\/span>id name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"id\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"integer\"<\/span> column<span class=\"keyword operator\">=<\/span><span class=\"string\">\"id\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n            <span class=\"keyword operator\">&lt;<\/span>generator strategy<span class=\"keyword operator\">=<\/span><span class=\"string\">\"AUTO\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n        <span class=\"keyword operator\">&lt;<\/span>\/id<span class=\"keyword operator\">&gt;<\/span>\r\n\r\n        <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"created\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"datetime\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n            <span class=\"keyword operator\">&lt;<\/span>gedmo:timestampable on<span class=\"keyword operator\">=<\/span><span class=\"string\">\"create\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n        <span class=\"keyword operator\">&lt;<\/span>\/field<span class=\"keyword operator\">&gt;<\/span>\r\n        <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"updated\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"datetime\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n            <span class=\"keyword operator\">&lt;<\/span>gedmo:timestampable on<span class=\"keyword operator\">=<\/span><span class=\"string\">\"update\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n        <span class=\"keyword operator\">&lt;<\/span>\/field<span class=\"keyword operator\">&gt;<\/span>\r\n        <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"published\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"datetime\"<\/span> <span class=\"constant language\">null<\/span>able<span class=\"keyword operator\">=<\/span><span class=\"string\">\"true\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n            <span class=\"keyword operator\">&lt;<\/span>gedmo:timestampable \r\n             on<span class=\"keyword operator\">=<\/span><span class=\"string\">\"change\"<\/span> \r\n             field<span class=\"keyword operator\">=<\/span><span class=\"string\">\"status.title\"<\/span> \r\n             value<span class=\"keyword operator\">=<\/span><span class=\"string\">\"Published\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n        <span class=\"keyword operator\">&lt;<\/span>\/field<span class=\"keyword operator\">&gt;<\/span>\r\n\r\n        <span class=\"keyword operator\">&lt;<\/span>many<span class=\"keyword operator\">-<\/span>to<span class=\"keyword operator\">-<\/span>one field<span class=\"keyword operator\">=<\/span><span class=\"string\">\"status\"<\/span> target<span class=\"keyword operator\">-<\/span>entity<span class=\"keyword operator\">=<\/span><span class=\"string\">\"Status\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n            <span class=\"keyword operator\">&lt;<\/span>join<span class=\"keyword operator\">-<\/span>column name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"status_id\"<\/span> referenced<span class=\"keyword operator\">-<\/span>column<span class=\"keyword operator\">-<\/span>name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"id\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n        <span class=\"keyword operator\">&lt;<\/span>\/many<span class=\"keyword operator\">-<\/span>to<span class=\"keyword operator\">-<\/span>one<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/entity<span class=\"keyword operator\">&gt;<\/span>\r\n\r\n<span class=\"keyword operator\">&lt;<\/span>\/doctrine<span class=\"keyword operator\">-<\/span>mapping<span class=\"keyword operator\">&gt;<\/span>\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel46-3\" class=\"content \">\n<pre><code class=\"language-yaml rainbow\" data-language=\"language-yaml\"><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">-<\/span>\r\nEntity\\Article:\r\n  type: entity\r\n  table: articles\r\n  id:\r\n    id:\r\n      type: <span class=\"keyword\">integer<\/span>\r\n      generator:\r\n        strategy: AUTO\r\n  fields:\r\n    title:\r\n      type: <span class=\"keyword\">string<\/span>\r\n      length: <span class=\"constant numeric\">64<\/span>\r\n    created:\r\n      type: date\r\n      gedmo:\r\n        timestampable:\r\n          on: create\r\n    updated:\r\n      type: datetime\r\n      gedmo:\r\n        timestampable:\r\n          on: update\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>For more details <a href=\"https:\/\/github.com\/l3pp4rd\/DoctrineExtensions\/blob\/master\/doc\/timestampable.md\">check the documentation<\/a>.<\/p>\n<h3>Blameable<\/h3>\n<p><!-- element id 46 --><\/p>\n<p>Blameable behavior will automate the update of username or user reference fields on your Entities or Documents.<\/p>\n<p><!-- which tabs are used --><\/p>\n<p><!-- which content is used --><\/p>\n<p><!-- display the content --><\/p>\n<div class=\"row\">\n<div class=\"large-12 columns\">\n<dl class=\"tabs\" data-tab=\"\">\n<dd class=\"active\"><a href=\"#panel47-1\">Annotations<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel47-2\">XML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel47-3\">YML<\/a><\/dd>\n<\/dl>\n<div class=\"tabs-content\">\n<div id=\"panel47-1\" class=\"content active\">\n<pre><code class=\"language-php rainbow\" data-language=\"language-php\"><span class=\"keyword operator\">&lt;<\/span>?php\r\nnamespace Entity;\r\n\r\nuse Gedmo\\Mapping\\Annotation <span class=\"keyword\">as<\/span> Gedmo;\r\nuse Doctrine\\ORM\\Mapping <span class=\"keyword\">as<\/span> ORM;\r\n\r\n<span class=\"comment\">\/**\r\n * @ORM\\Entity\r\n *\/<\/span>\r\n<span class=\"keyword\">class<\/span> Article\r\n{\r\n    <span class=\"comment\">\/** @ORM\\Id @ORM\\GeneratedValue @ORM\\Column(type=\"integer\") *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $id;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\Column(type=\"string\", length=128)\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $title;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\Column(name=\"body\", type=\"string\")\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $body;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @var string $createdBy\r\n     *\r\n     * @Gedmo\\Blameable(on=\"create\")\r\n     * @ORM\\Column(type=\"string\")\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $createdBy;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @var string $updatedBy\r\n     *\r\n     * @Gedmo\\Blameable(on=\"update\")\r\n     * @ORM\\Column(type=\"string\")\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $updatedBy;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @var datetime $contentChangedBy\r\n     *\r\n     * @ORM\\Column(name=\"content_changed_by\", type=\"string\", nullable=true)\r\n     * @Gedmo\\Timestampable(on=\"change\", field={\"title\", \"body\"})\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $contentChangedBy;\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">getId<\/span>()\r\n    {\r\n        <span class=\"keyword\">return<\/span> $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>id;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">setTitle<\/span>($title)\r\n    {\r\n        $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>title <span class=\"keyword operator\">=<\/span> $title;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">getTitle<\/span>()\r\n    {\r\n        <span class=\"keyword\">return<\/span> $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>title;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">setBody<\/span>($body)\r\n    {\r\n        $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>body <span class=\"keyword operator\">=<\/span> $body;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">getBody<\/span>()\r\n    {\r\n        <span class=\"keyword\">return<\/span> $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>body;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">getCreatedBy<\/span>()\r\n    {\r\n        <span class=\"keyword\">return<\/span> $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>createdBy;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">getUpdatedBy<\/span>()\r\n    {\r\n        <span class=\"keyword\">return<\/span> $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>updatedBy;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">getContentChangedBy<\/span>()\r\n    {\r\n        <span class=\"keyword\">return<\/span> $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>contentChangedBy;\r\n    }\r\n}\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel47-2\" class=\"content \">\n<pre><code class=\"language-xml rainbow\" data-language=\"language-xml\"><span class=\"keyword operator\">&lt;<\/span>?xml version<span class=\"keyword operator\">=<\/span><span class=\"string\">\"1.0\"<\/span> encoding<span class=\"keyword operator\">=<\/span><span class=\"string\">\"UTF-8\"<\/span>?<span class=\"keyword operator\">&gt;<\/span>\r\n<span class=\"keyword operator\">&lt;<\/span>doctrine<span class=\"keyword operator\">-<\/span>mapping \r\n xmlns<span class=\"keyword operator\">=<\/span><span class=\"string\">\"http:\/\/doctrine-project.org\/schemas\/orm\/doctrine-mapping\"<\/span>\r\n xmlns:gedmo<span class=\"keyword operator\">=<\/span><span class=\"string\">\"http:\/\/gediminasm.org\/schemas\/orm\/doctrine-extensions-mapping\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n\r\n  <span class=\"keyword operator\">&lt;<\/span>entity name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"Mapping\\Fixture\\Xml\\Blameable\"<\/span> table<span class=\"keyword operator\">=<\/span><span class=\"string\">\"blameables\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>id name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"id\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"integer\"<\/span> column<span class=\"keyword operator\">=<\/span><span class=\"string\">\"id\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>generator strategy<span class=\"keyword operator\">=<\/span><span class=\"string\">\"AUTO\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/id<span class=\"keyword operator\">&gt;<\/span>\r\n\r\n    <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"createdBy\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"string\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>gedmo:blameable on<span class=\"keyword operator\">=<\/span><span class=\"string\">\"create\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/field<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"updatedBy\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"string\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>gedmo:blameable on<span class=\"keyword operator\">=<\/span><span class=\"string\">\"update\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/field<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"publishedBy\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"string\"<\/span> <span class=\"constant language\">null<\/span>able<span class=\"keyword operator\">=<\/span><span class=\"string\">\"true\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>gedmo:blameable on<span class=\"keyword operator\">=<\/span><span class=\"string\">\"change\"<\/span> field<span class=\"keyword operator\">=<\/span><span class=\"string\">\"status.title\"<\/span> value<span class=\"keyword operator\">=<\/span><span class=\"string\">\"Published\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/field<span class=\"keyword operator\">&gt;<\/span>\r\n\r\n    <span class=\"keyword operator\">&lt;<\/span>many<span class=\"keyword operator\">-<\/span>to<span class=\"keyword operator\">-<\/span>one field<span class=\"keyword operator\">=<\/span><span class=\"string\">\"status\"<\/span> target<span class=\"keyword operator\">-<\/span>entity<span class=\"keyword operator\">=<\/span><span class=\"string\">\"Status\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>join<span class=\"keyword operator\">-<\/span>column name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"status_id\"<\/span> referenced<span class=\"keyword operator\">-<\/span>column<span class=\"keyword operator\">-<\/span>name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"id\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/many<span class=\"keyword operator\">-<\/span>to<span class=\"keyword operator\">-<\/span>one<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>\/entity<span class=\"keyword operator\">&gt;<\/span>\r\n\r\n<span class=\"keyword operator\">&lt;<\/span>\/doctrine<span class=\"keyword operator\">-<\/span>mapping<span class=\"keyword operator\">&gt;<\/span>\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel47-3\" class=\"content \">\n<pre><code class=\"language-yaml rainbow\" data-language=\"language-yaml\"><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">-<\/span>\r\nEntity\\Article:\r\n  type: entity\r\n  table: articles\r\n  id:\r\n    id:\r\n      type: <span class=\"keyword\">integer<\/span>\r\n      generator:\r\n        strategy: AUTO\r\n  fields:\r\n    title:\r\n      type: <span class=\"keyword\">string<\/span>\r\n      length: <span class=\"constant numeric\">64<\/span>\r\n    createdBy:\r\n      type: <span class=\"keyword\">string<\/span>\r\n      gedmo:\r\n        blameable:\r\n          on: create\r\n    updatedBy:\r\n      type: <span class=\"keyword\">string<\/span>\r\n      gedmo:\r\n        blameable:\r\n          on: update\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>For more details <a href=\"https:\/\/github.com\/l3pp4rd\/DoctrineExtensions\/blob\/master\/doc\/blameable.md\">check the documentation<\/a>.<\/p>\n<h3>Loggable<\/h3>\n<p><!-- element id 47 --><\/p>\n<p>Loggable behavior tracks your record changes and is able to manage versions.<\/p>\n<p><!-- which tabs are used --><\/p>\n<p><!-- which content is used --><\/p>\n<p><!-- display the content --><\/p>\n<div class=\"row\">\n<div class=\"large-12 columns\">\n<dl class=\"tabs\" data-tab=\"\">\n<dd class=\"active\"><a href=\"#panel48-1\">Annotations<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel48-2\">XML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel48-3\">YML<\/a><\/dd>\n<\/dl>\n<div class=\"tabs-content\">\n<div id=\"panel48-1\" class=\"content active\">\n<pre><code class=\"language-php rainbow\" data-language=\"language-php\"><span class=\"keyword operator\">&lt;<\/span>?php\r\nnamespace Entity;\r\n\r\nuse Gedmo\\Mapping\\Annotation <span class=\"keyword\">as<\/span> Gedmo;\r\nuse Doctrine\\ORM\\Mapping <span class=\"keyword\">as<\/span> ORM;\r\n\r\n<span class=\"comment\">\/**\r\n * @Entity\r\n * @Gedmo\\Loggable\r\n *\/<\/span>\r\n<span class=\"keyword\">class<\/span> Article\r\n{\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\Column(name=\"id\", type=\"integer\")\r\n     * @ORM\\Id\r\n     * @ORM\\GeneratedValue(strategy=\"IDENTITY\")\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $id;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @Gedmo\\Versioned\r\n     * @ORM\\Column(name=\"title\", type=\"string\", length=8)\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $title;\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">getId<\/span>()\r\n    {\r\n        <span class=\"keyword\">return<\/span> $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>id;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">setTitle<\/span>($title)\r\n    {\r\n        $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>title <span class=\"keyword operator\">=<\/span> $title;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">getTitle<\/span>()\r\n    {\r\n        <span class=\"keyword\">return<\/span> $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>title;\r\n    }\r\n}\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel48-2\" class=\"content \">\n<pre><code class=\"language-xml rainbow\" data-language=\"language-xml\"><span class=\"keyword operator\">&lt;<\/span>?xml version<span class=\"keyword operator\">=<\/span><span class=\"string\">\"1.0\"<\/span> encoding<span class=\"keyword operator\">=<\/span><span class=\"string\">\"UTF-8\"<\/span>?<span class=\"keyword operator\">&gt;<\/span>\r\n<span class=\"keyword operator\">&lt;<\/span>doctrine<span class=\"keyword operator\">-<\/span>mapping \r\n xmlns<span class=\"keyword operator\">=<\/span><span class=\"string\">\"http:\/\/doctrine-project.org\/schemas\/orm\/doctrine-mapping\"<\/span>\r\n xmlns:gedmo<span class=\"keyword operator\">=<\/span><span class=\"string\">\"http:\/\/gediminasm.org\/schemas\/orm\/doctrine-extensions-mapping\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n\r\n  <span class=\"keyword operator\">&lt;<\/span>entity name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"Mapping\\Fixture\\Xml\\Loggable\"<\/span> table<span class=\"keyword operator\">=<\/span><span class=\"string\">\"loggables\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n\r\n    <span class=\"keyword operator\">&lt;<\/span>id name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"id\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"integer\"<\/span> column<span class=\"keyword operator\">=<\/span><span class=\"string\">\"id\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>generator strategy<span class=\"keyword operator\">=<\/span><span class=\"string\">\"AUTO\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/id<span class=\"keyword operator\">&gt;<\/span>\r\n\r\n    <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"title\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"string\"<\/span> length<span class=\"keyword operator\">=<\/span><span class=\"string\">\"128\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>gedmo:versioned\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/field<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>many<span class=\"keyword operator\">-<\/span>to<span class=\"keyword operator\">-<\/span>one field<span class=\"keyword operator\">=<\/span><span class=\"string\">\"status\"<\/span> target<span class=\"keyword operator\">-<\/span>entity<span class=\"keyword operator\">=<\/span><span class=\"string\">\"Status\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>join<span class=\"keyword operator\">-<\/span>column name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"status_id\"<\/span> referenced<span class=\"keyword operator\">-<\/span>column<span class=\"keyword operator\">-<\/span>name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"id\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>gedmo:versioned\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/many<span class=\"keyword operator\">-<\/span>to<span class=\"keyword operator\">-<\/span>one<span class=\"keyword operator\">&gt;<\/span>\r\n\r\n    <span class=\"keyword operator\">&lt;<\/span>gedmo:loggable log<span class=\"keyword operator\">-<\/span>entry<span class=\"keyword operator\">-<\/span><span class=\"keyword\">class<\/span><span class=\"keyword operator\">=<\/span><span class=\"string\">\"Gedmo\\Loggable\\Entity\\LogEntry\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n\r\n  <span class=\"keyword operator\">&lt;<\/span>\/entity<span class=\"keyword operator\">&gt;<\/span>\r\n<span class=\"keyword operator\">&lt;<\/span>\/doctrine<span class=\"keyword operator\">-<\/span>mapping<span class=\"keyword operator\">&gt;<\/span>\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel48-3\" class=\"content \">\n<pre><code class=\"language-yaml rainbow\" data-language=\"language-yaml\"><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">-<\/span>\r\nEntity\\Article:\r\n  type: entity\r\n  table: articles\r\n  gedmo:\r\n    loggable:\r\n<span class=\"comment\"># using specific personal LogEntryClass class:<\/span>\r\n      logEntryClass: My\\LogEntry\r\n<span class=\"comment\"># without specifying the LogEntryClass class:<\/span>\r\n<span class=\"comment\">#   loggable: true<\/span>\r\n  id:\r\n    id:\r\n      type: <span class=\"keyword\">integer<\/span>\r\n      generator:\r\n        strategy: AUTO\r\n  fields:\r\n    title:\r\n      type: <span class=\"keyword\">string<\/span>\r\n      length: <span class=\"constant numeric\">64<\/span>\r\n      gedmo:\r\n        <span class=\"keyword operator\">-<\/span> versioned\r\n    content:\r\n      type: text\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>For more details <a href=\"https:\/\/github.com\/l3pp4rd\/DoctrineExtensions\/blob\/master\/doc\/loggable.md\">check the documentation<\/a>.<\/p>\n<h3>Sortable<\/h3>\n<p><!-- element id 48 --><\/p>\n<p>Sortable behavior will maintain a position field for ordering entities.<\/p>\n<p><!-- which tabs are used --><\/p>\n<p><!-- which content is used --><\/p>\n<p><!-- display the content --><\/p>\n<div class=\"row\">\n<div class=\"large-12 columns\">\n<dl class=\"tabs\" data-tab=\"\">\n<dd class=\"active\"><a href=\"#panel49-1\">Annotations<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel49-2\">XML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel49-3\">YML<\/a><\/dd>\n<\/dl>\n<div class=\"tabs-content\">\n<div id=\"panel49-1\" class=\"content active\">\n<pre><code class=\"language-php rainbow\" data-language=\"language-php\"><span class=\"keyword operator\">&lt;<\/span>?php\r\nnamespace Entity;\r\n\r\nuse Gedmo\\Mapping\\Annotation <span class=\"keyword\">as<\/span> Gedmo;\r\nuse Doctrine\\ORM\\Mapping <span class=\"keyword\">as<\/span> ORM;\r\n\r\n<span class=\"comment\">\/**\r\n * @ORM\\Table(name=\"items\")\r\n * @ORM\\Entity(repositoryClass=\"Gedmo\\Sortable\\Entity\\Repository\\SortableRepository\")\r\n *\/<\/span>\r\n<span class=\"keyword\">class<\/span> Item\r\n{\r\n    <span class=\"comment\">\/** @ORM\\Id @ORM\\GeneratedValue @ORM\\Column(type=\"integer\") *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $id;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\Column(name=\"name\", type=\"string\", length=64)\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $name;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @Gedmo\\SortablePosition\r\n     * @ORM\\Column(name=\"position\", type=\"integer\")\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $position;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @Gedmo\\SortableGroup\r\n     * @ORM\\Column(name=\"category\", type=\"string\", length=128)\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $category;\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">getId<\/span>()\r\n    {\r\n        <span class=\"keyword\">return<\/span> $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>id;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">setName<\/span>($name)\r\n    {\r\n        $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>name <span class=\"keyword operator\">=<\/span> $name;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">getName<\/span>()\r\n    {\r\n        <span class=\"keyword\">return<\/span> $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>name;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">setPosition<\/span>($position)\r\n    {\r\n        $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>position <span class=\"keyword operator\">=<\/span> $position;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">getPosition<\/span>()\r\n    {\r\n        <span class=\"keyword\">return<\/span> $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>position;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">setCategory<\/span>($category)\r\n    {\r\n        $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>category <span class=\"keyword operator\">=<\/span> $category;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">getCategory<\/span>()\r\n    {\r\n        <span class=\"keyword\">return<\/span> $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>category;\r\n    }\r\n}\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel49-2\" class=\"content \">\n<pre><code class=\"language-xml rainbow\" data-language=\"language-xml\"><span class=\"keyword operator\">&lt;<\/span>?xml version<span class=\"keyword operator\">=<\/span><span class=\"string\">\"1.0\"<\/span> encoding<span class=\"keyword operator\">=<\/span><span class=\"string\">\"UTF-8\"<\/span>?<span class=\"keyword operator\">&gt;<\/span>\r\n<span class=\"keyword operator\">&lt;<\/span>doctrine<span class=\"keyword operator\">-<\/span>mapping \r\n xmlns<span class=\"keyword operator\">=<\/span><span class=\"string\">\"http:\/\/doctrine-project.org\/schemas\/orm\/doctrine-mapping\"<\/span>\r\n xmlns:gedmo<span class=\"keyword operator\">=<\/span><span class=\"string\">\"http:\/\/gediminasm.org\/schemas\/orm\/doctrine-extensions-mapping\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>entity name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"Entity\\Item\"<\/span> table<span class=\"keyword operator\">=<\/span><span class=\"string\">\"items\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>id name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"id\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"integer\"<\/span> column<span class=\"keyword operator\">=<\/span><span class=\"string\">\"id\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>generator strategy<span class=\"keyword operator\">=<\/span><span class=\"string\">\"AUTO\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/id<span class=\"keyword operator\">&gt;<\/span>\r\n\r\n    <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"name\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"string\"<\/span> length<span class=\"keyword operator\">=<\/span><span class=\"string\">\"128\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/field<span class=\"keyword operator\">&gt;<\/span>\r\n\r\n    <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"position\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"integer\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>gedmo:sortable<span class=\"keyword operator\">-<\/span>position\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/field<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"category\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"string\"<\/span> length<span class=\"keyword operator\">=<\/span><span class=\"string\">\"128\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>gedmo:sortable<span class=\"keyword operator\">-<\/span>group \/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/field<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>\/entity<span class=\"keyword operator\">&gt;<\/span>\r\n<span class=\"keyword operator\">&lt;<\/span>\/doctrine<span class=\"keyword operator\">-<\/span>mapping<span class=\"keyword operator\">&gt;<\/span>\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel49-3\" class=\"content \">\n<pre><code class=\"language-yaml rainbow\" data-language=\"language-yaml\"><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">-<\/span>\r\nEntity\\Item:\r\n  type: entity\r\n  table: items\r\n  id:\r\n    id:\r\n      type: <span class=\"keyword\">integer<\/span>\r\n      generator:\r\n        strategy: AUTO\r\n  fields:\r\n    name:\r\n      type: <span class=\"keyword\">string<\/span>\r\n      length: <span class=\"constant numeric\">64<\/span>\r\n    position:\r\n      type: <span class=\"keyword\">integer<\/span>\r\n      gedmo:\r\n        <span class=\"keyword operator\">-<\/span> sortablePosition\r\n    category:\r\n      type: <span class=\"keyword\">string<\/span>\r\n      length: <span class=\"constant numeric\">128<\/span>\r\n      gedmo:\r\n        <span class=\"keyword operator\">-<\/span> sortableGroup\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>For more details <a href=\"https:\/\/github.com\/l3pp4rd\/DoctrineExtensions\/blob\/master\/doc\/sortable.md\">check the documentation<\/a>.<\/p>\n<h3>Softdeleteable<\/h3>\n<p><!-- element id 49 --><\/p>\n<p>SoftDeleteable behavior allows to \u201csoft delete\u201d objects, filtering them at SELECT time by marking them as with a timestamp, but not explicitly removing them from the database.<\/p>\n<p><!-- which tabs are used --><\/p>\n<p><!-- which content is used --><\/p>\n<p><!-- display the content --><\/p>\n<div class=\"row\">\n<div class=\"large-12 columns\">\n<dl class=\"tabs\" data-tab=\"\">\n<dd class=\"active\"><a href=\"#panel50-1\">Annotations<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel50-2\">XML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel50-3\">YML<\/a><\/dd>\n<\/dl>\n<div class=\"tabs-content\">\n<div id=\"panel50-1\" class=\"content active\">\n<pre><code class=\"language-php rainbow\" data-language=\"language-php\"><span class=\"keyword operator\">&lt;<\/span>?php\r\nnamespace Entity;\r\n\r\nuse Gedmo\\Mapping\\Annotation <span class=\"keyword\">as<\/span> Gedmo;\r\nuse Doctrine\\ORM\\Mapping <span class=\"keyword\">as<\/span> ORM;\r\n\r\n<span class=\"comment\">\/**\r\n * @ORM\\Entity\r\n * @Gedmo\\SoftDeleteable(fieldName=\"deletedAt\", timeAware=false)\r\n *\/<\/span>\r\n<span class=\"keyword\">class<\/span> Article\r\n{\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\Column(name=\"id\", type=\"integer\")\r\n     * @ORM\\Id\r\n     * @ORM\\GeneratedValue(strategy=\"IDENTITY\")\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $id;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\Column(name=\"title\", type=\"string\")\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $title;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\Column(name=\"deletedAt\", type=\"datetime\", nullable=true)\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $deletedAt;\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">getId<\/span>()\r\n    {\r\n        <span class=\"keyword\">return<\/span> $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>id;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">setTitle<\/span>($title)\r\n    {\r\n        $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>title <span class=\"keyword operator\">=<\/span> $title;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">getTitle<\/span>()\r\n    {\r\n        <span class=\"keyword\">return<\/span> $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>title;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">getDeletedAt<\/span>()\r\n    {\r\n        <span class=\"keyword\">return<\/span> $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>deletedAt;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">setDeletedAt<\/span>($deletedAt)\r\n    {\r\n        $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>deletedAt <span class=\"keyword operator\">=<\/span> $deletedAt;\r\n    }\r\n}\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel50-2\" class=\"content \">\n<pre><code class=\"language-xml rainbow\" data-language=\"language-xml\"><span class=\"keyword operator\">&lt;<\/span>?xml version<span class=\"keyword operator\">=<\/span><span class=\"string\">\"1.0\"<\/span> encoding<span class=\"keyword operator\">=<\/span><span class=\"string\">\"UTF-8\"<\/span>?<span class=\"keyword operator\">&gt;<\/span>\r\n<span class=\"keyword operator\">&lt;<\/span>doctrine<span class=\"keyword operator\">-<\/span>mapping \r\n xmlns<span class=\"keyword operator\">=<\/span><span class=\"string\">\"http:\/\/doctrine-project.org\/schemas\/orm\/doctrine-mapping\"<\/span>\r\n xmlns:gedmo<span class=\"keyword operator\">=<\/span><span class=\"string\">\"http:\/\/gediminasm.org\/schemas\/orm\/doctrine-extensions-mapping\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n\r\n  <span class=\"keyword operator\">&lt;<\/span>entity name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"Mapping\\Fixture\\Xml\\Timestampable\"<\/span> table<span class=\"keyword operator\">=<\/span><span class=\"string\">\"timestampables\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>id name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"id\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"integer\"<\/span> column<span class=\"keyword operator\">=<\/span><span class=\"string\">\"id\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>generator strategy<span class=\"keyword operator\">=<\/span><span class=\"string\">\"AUTO\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/id<span class=\"keyword operator\">&gt;<\/span>\r\n\r\n    <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"title\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"string\"<\/span> \/<span class=\"keyword operator\">&gt;<\/span>\r\n\r\n    <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"deletedAt\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"datetime\"<\/span> <span class=\"constant language\">null<\/span>able<span class=\"keyword operator\">=<\/span><span class=\"string\">\"true\"<\/span> \/<span class=\"keyword operator\">&gt;<\/span>\r\n\r\n    <span class=\"keyword operator\">&lt;<\/span>gedmo:soft<span class=\"keyword operator\">-<\/span>deleteable field<span class=\"keyword operator\">-<\/span>name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"deletedAt\"<\/span> time<span class=\"keyword operator\">-<\/span>aware<span class=\"keyword operator\">=<\/span><span class=\"string\">\"false\"<\/span> \/<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>\/entity<span class=\"keyword operator\">&gt;<\/span>\r\n\r\n<span class=\"keyword operator\">&lt;<\/span>\/doctrine<span class=\"keyword operator\">-<\/span>mapping<span class=\"keyword operator\">&gt;<\/span>\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel50-3\" class=\"content \">\n<pre><code class=\"language-yaml rainbow\" data-language=\"language-yaml\"><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">-<\/span>\r\nEntity\\Article:\r\n  type: entity\r\n  table: articles\r\n  gedmo:\r\n    soft_deleteable:\r\n      field_name: deletedAt\r\n      time_aware: <span class=\"constant language\">false<\/span>\r\n  id:\r\n    id:\r\n      type: <span class=\"keyword\">integer<\/span>\r\n      generator:\r\n        strategy: AUTO\r\n  fields:\r\n    title:\r\n      type: <span class=\"keyword\">string<\/span>\r\n    deletedAt:\r\n      type: date\r\n      <span class=\"constant language\">null<\/span>able: <span class=\"constant language\">true<\/span>\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>For more details <a href=\"https:\/\/github.com\/l3pp4rd\/DoctrineExtensions\/blob\/master\/doc\/softdeleteable.md\">check the documentation<\/a>.<\/p>\n<h3>Uploadable<\/h3>\n<p><!-- element id 50 --><\/p>\n<p>Uploadable behavior provides the tools to manage the persistence of files with Doctrine 2, including automatic handling of moving, renaming and removal of files and other features.<\/p>\n<p><!-- which tabs are used --><\/p>\n<p><!-- which content is used --><\/p>\n<p><!-- display the content --><\/p>\n<div class=\"row\">\n<div class=\"large-12 columns\">\n<dl class=\"tabs\" data-tab=\"\">\n<dd class=\"active\"><a href=\"#panel51-1\">Annotations<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel51-2\">XML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel51-3\">YML<\/a><\/dd>\n<\/dl>\n<div class=\"tabs-content\">\n<div id=\"panel51-1\" class=\"content active\">\n<pre><code class=\"language-php rainbow\" data-language=\"language-php\"><span class=\"keyword operator\">&lt;<\/span>?php\r\nnamespace Entity;\r\n\r\nuse Gedmo\\Mapping\\Annotation <span class=\"keyword\">as<\/span> Gedmo;\r\nuse Doctrine\\ORM\\Mapping <span class=\"keyword\">as<\/span> ORM;\r\n\r\n<span class=\"comment\">\/**\r\n * @ORM\\Entity\r\n * @Gedmo\\Uploadable(path=\"\/my\/path\", callback=\"myCallbackMethod\", filenameGenerator=\"SHA1\", allowOverwrite=true, appendNumber=true)\r\n *\/<\/span>\r\n<span class=\"keyword\">class<\/span> File\r\n{\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\Column(name=\"id\", type=\"integer\")\r\n     * @ORM\\Id\r\n     * @ORM\\GeneratedValue(strategy=\"IDENTITY\")\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $id;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\Column(name=\"path\", type=\"string\")\r\n     * @Gedmo\\UploadableFilePath\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $path;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\Column(name=\"name\", type=\"string\")\r\n     * @Gedmo\\UploadableFileName\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $name;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\Column(name=\"mime_type\", type=\"string\")\r\n     * @Gedmo\\UploadableFileMimeType\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $mimeType;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\Column(name=\"size\", type=\"decimal\")\r\n     * @Gedmo\\UploadableFileSize\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $size;\r\n\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">myCallbackMethod<\/span>(<span class=\"keyword\">array<\/span> $info)\r\n    {\r\n        <span class=\"comment\">\/\/ Do some stuff with the file..<\/span>\r\n    }\r\n\r\n    <span class=\"comment\">\/\/ Other methods..<\/span>\r\n}\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel51-2\" class=\"content \">\n<pre><code class=\"language-xml rainbow\" data-language=\"language-xml\"><span class=\"keyword operator\">&lt;<\/span>?xml version<span class=\"keyword operator\">=<\/span><span class=\"string\">\"1.0\"<\/span> encoding<span class=\"keyword operator\">=<\/span><span class=\"string\">\"UTF-8\"<\/span>?<span class=\"keyword operator\">&gt;<\/span>\r\n\r\n<span class=\"keyword operator\">&lt;<\/span>doctrine<span class=\"keyword operator\">-<\/span>mapping \r\n xmlns<span class=\"keyword operator\">=<\/span><span class=\"string\">\"http:\/\/doctrine-project.org\/schemas\/orm\/doctrine-mapping\"<\/span>\r\n xmlns:gedmo<span class=\"keyword operator\">=<\/span><span class=\"string\">\"http:\/\/gediminasm.org\/schemas\/orm\/doctrine-extensions-mapping\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n\r\n  <span class=\"keyword operator\">&lt;<\/span>entity name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"Entity\\File\"<\/span> table<span class=\"keyword operator\">=<\/span><span class=\"string\">\"files\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n\r\n    <span class=\"keyword operator\">&lt;<\/span>id name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"id\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"integer\"<\/span> column<span class=\"keyword operator\">=<\/span><span class=\"string\">\"id\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>generator strategy<span class=\"keyword operator\">=<\/span><span class=\"string\">\"AUTO\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/id<span class=\"keyword operator\">&gt;<\/span>\r\n\r\n    <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"mimeType\"<\/span> column<span class=\"keyword operator\">=<\/span><span class=\"string\">\"mime\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"string\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>gedmo:uploadable<span class=\"keyword operator\">-<\/span>file<span class=\"keyword operator\">-<\/span>mime<span class=\"keyword operator\">-<\/span>type \/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/field<span class=\"keyword operator\">&gt;<\/span>\r\n\r\n    <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"size\"<\/span> column<span class=\"keyword operator\">=<\/span><span class=\"string\">\"size\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"decimal\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>gedmo:uploadable<span class=\"keyword operator\">-<\/span>file<span class=\"keyword operator\">-<\/span>size \/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/field<span class=\"keyword operator\">&gt;<\/span>\r\n\r\n    <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"name\"<\/span> column<span class=\"keyword operator\">=<\/span><span class=\"string\">\"name\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"string\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>gedmo:uploadable<span class=\"keyword operator\">-<\/span>file<span class=\"keyword operator\">-<\/span>name \/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/field<span class=\"keyword operator\">&gt;<\/span>\r\n\r\n    <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"path\"<\/span> column<span class=\"keyword operator\">=<\/span><span class=\"string\">\"path\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"string\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>gedmo:uploadable<span class=\"keyword operator\">-<\/span>file<span class=\"keyword operator\">-<\/span>path \/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/field<span class=\"keyword operator\">&gt;<\/span>\r\n\r\n    <span class=\"keyword operator\">&lt;<\/span>gedmo:uploadable\r\n      allow<span class=\"keyword operator\">-<\/span>overwrite<span class=\"keyword operator\">=<\/span><span class=\"string\">\"true\"<\/span>\r\n      append<span class=\"keyword operator\">-<\/span>number<span class=\"keyword operator\">=<\/span><span class=\"string\">\"true\"<\/span>\r\n      path<span class=\"keyword operator\">=<\/span><span class=\"string\">\"\/my\/path\"<\/span>\r\n      path<span class=\"keyword operator\">-<\/span>method<span class=\"keyword operator\">=<\/span><span class=\"string\">\"getPath\"<\/span>\r\n      callback<span class=\"keyword operator\">=<\/span><span class=\"string\">\"callbackMethod\"<\/span>\r\n      filename<span class=\"keyword operator\">-<\/span>generator<span class=\"keyword operator\">=<\/span><span class=\"string\">\"SHA1\"<\/span> \/<span class=\"keyword operator\">&gt;<\/span>\r\n\r\n  <span class=\"keyword operator\">&lt;<\/span>\/entity<span class=\"keyword operator\">&gt;<\/span>\r\n\r\n<span class=\"keyword operator\">&lt;<\/span>\/doctrine<span class=\"keyword operator\">-<\/span>mapping<span class=\"keyword operator\">&gt;<\/span>\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel51-3\" class=\"content \">\n<pre><code class=\"language-yaml rainbow\" data-language=\"language-yaml\"><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">-<\/span>\r\nEntity\\File:\r\n  type: entity\r\n  table: files\r\n  gedmo:\r\n    uploadable:\r\n      allowOverwrite: <span class=\"constant language\">true<\/span>\r\n      appendNumber: <span class=\"constant language\">true<\/span>\r\n      path: <span class=\"string\">'\/my\/path'<\/span>\r\n      pathMethod: getPath\r\n      callback: callbackMethod\r\n      filenameGenerator: SHA1\r\n  id:\r\n    id:\r\n      type: <span class=\"keyword\">integer<\/span>\r\n      generator:\r\n        strategy: AUTO\r\n  fields:\r\n    path:\r\n      type: <span class=\"keyword\">string<\/span>\r\n      gedmo:\r\n        <span class=\"keyword operator\">-<\/span> uploadableFilePath\r\n    path:\r\n      type: <span class=\"keyword\">string<\/span>\r\n      gedmo:\r\n        <span class=\"keyword operator\">-<\/span> uploadableFileName\r\n    mimeType:\r\n      type: <span class=\"keyword\">string<\/span>\r\n      gedmo:\r\n        <span class=\"keyword operator\">-<\/span> uploadableFileMimeType\r\n    size:\r\n      type: decimal\r\n      gedmo:\r\n        <span class=\"keyword operator\">-<\/span> uploadableFileSize\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>For more details <a href=\"https:\/\/github.com\/l3pp4rd\/DoctrineExtensions\/blob\/master\/doc\/uploadable.md\">check the documentation<\/a>.<\/p>\n<h3>ReferenceIntegrity<\/h3>\n<p><!-- element id 51 --><\/p>\n<p>ReferenceIntegrity behavior will automate the reference integrity for referenced documents.<\/p>\n<p><!-- which tabs are used --><\/p>\n<p><!-- which content is used --><\/p>\n<p><!-- display the content --><\/p>\n<div class=\"row\">\n<div class=\"large-12 columns\">\n<dl class=\"tabs\" data-tab=\"\">\n<dd class=\"active\"><a href=\"#panel52-1\">Annotations<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel52-3\">YML<\/a><\/dd>\n<\/dl>\n<div class=\"tabs-content\">\n<div id=\"panel52-1\" class=\"content active\">\n<pre><code class=\"language-php rainbow\" data-language=\"language-php\"><span class=\"keyword operator\">&lt;<\/span>?php\r\nnamespace Document;\r\n\r\nuse Doctrine\\ODM\\MongoDB\\Mapping\\Annotations <span class=\"keyword\">as<\/span> ODM;\r\nuse Gedmo\\Mapping\\Annotation <span class=\"keyword\">as<\/span> Gedmo;\r\n\r\n<span class=\"comment\">\/**\r\n * @ODM\\Document(collection=\"types\")\r\n *\/<\/span>\r\n<span class=\"keyword\">class<\/span> Type\r\n{\r\n    <span class=\"comment\">\/**\r\n     * @ODM\\Id\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $id;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @ODM\\String\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $title;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @ODM\\ReferenceOne(targetDocument=\"Article\", mappedBy=\"type\")\r\n     * @Gedmo\\ReferenceIntegrity(\"nullify\")\r\n     * @var Article\r\n     *\/<\/span>\r\n    <span class=\"keyword\">protected<\/span> $article;\r\n\r\n    <span class=\"comment\">\/\/ ...<\/span>\r\n}\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel52-3\" class=\"content \">\n<pre><code class=\"language-yaml rainbow\" data-language=\"language-yaml\"><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">-<\/span>\r\nDocument\\Type:\r\n  type: document\r\n  collection: types\r\n  fields:\r\n      id:\r\n          id:     <span class=\"constant language\">true<\/span>\r\n      title:\r\n          type:   <span class=\"keyword\">string<\/span>\r\n      article:\r\n          reference: <span class=\"constant language\">true<\/span>\r\n          type: one\r\n          mappedBy: type\r\n          targetDocument: Document\\Article\r\n          gedmo:\r\n              referenceIntegrity: <span class=\"constant language\">null<\/span>ify   <span class=\"comment\"># or restrict<\/span>\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>For more details <a href=\"https:\/\/github.com\/l3pp4rd\/DoctrineExtensions\/blob\/master\/doc\/reference_integrity.md\">check the documentation<\/a>.<\/p>\n<h3>IpTraceable<\/h3>\n<p><!-- element id 52 --><\/p>\n<p>IpTraceable behavior will automate the update of IP trace on your Entities or Documents.<\/p>\n<p><!-- which tabs are used --><\/p>\n<p><!-- which content is used --><\/p>\n<p><!-- display the content --><\/p>\n<div class=\"row\">\n<div class=\"large-12 columns\">\n<dl class=\"tabs\" data-tab=\"\">\n<dd class=\"active\"><a href=\"#panel53-1\">Annotations<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel53-2\">XML<\/a><\/dd>\n<dd class=\"\"><a href=\"#panel53-3\">YML<\/a><\/dd>\n<\/dl>\n<div class=\"tabs-content\">\n<div id=\"panel53-1\" class=\"content active\">\n<pre><code class=\"language-php rainbow\" data-language=\"language-php\"><span class=\"keyword operator\">&lt;<\/span>?php\r\nnamespace Entity;\r\n\r\nuse Gedmo\\Mapping\\Annotation <span class=\"keyword\">as<\/span> Gedmo;\r\nuse Doctrine\\ORM\\Mapping <span class=\"keyword\">as<\/span> ORM;\r\n\r\n<span class=\"comment\">\/**\r\n * @ORM\\Entity\r\n *\/<\/span>\r\n<span class=\"keyword\">class<\/span> Article\r\n{\r\n    <span class=\"comment\">\/** @ORM\\Id @ORM\\GeneratedValue @ORM\\Column(type=\"integer\") *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $id;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\Column(type=\"string\", length=128)\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $title;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @ORM\\Column(name=\"body\", type=\"string\")\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $body;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @var string $createdFromIp\r\n     *\r\n     * @Gedmo\\IpTraceable(on=\"create\")\r\n     * @ORM\\Column(type=\"string\", length=45, nullable=true)\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $createdFromIp;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @var string $updatedFromIp\r\n     *\r\n     * @Gedmo\\IpTraceable(on=\"update\")\r\n     * @ORM\\Column(type=\"string\", length=45, nullable=true)\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $updatedFromIp;\r\n\r\n    <span class=\"comment\">\/**\r\n     * @var datetime $contentChangedFromIp\r\n     *\r\n     * @ORM\\Column(name=\"content_changed_by\", type=\"string\", nullable=true, length=45)\r\n     * @Gedmo\\IpTraceable(on=\"change\", field={\"title\", \"body\"})\r\n     *\/<\/span>\r\n    <span class=\"keyword\">private<\/span> $contentChangedFromIp;\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">getId<\/span>()\r\n    {\r\n        <span class=\"keyword\">return<\/span> $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>id;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">setTitle<\/span>($title)\r\n    {\r\n        $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>title <span class=\"keyword operator\">=<\/span> $title;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">getTitle<\/span>()\r\n    {\r\n        <span class=\"keyword\">return<\/span> $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>title;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">setBody<\/span>($body)\r\n    {\r\n        $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>body <span class=\"keyword operator\">=<\/span> $body;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">getBody<\/span>()\r\n    {\r\n        <span class=\"keyword\">return<\/span> $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>body;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">getCreatedFromIp<\/span>()\r\n    {\r\n        <span class=\"keyword\">return<\/span> $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>createdFromIp;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">getUpdatedFromIp<\/span>()\r\n    {\r\n        <span class=\"keyword\">return<\/span> $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>updatedFromIp;\r\n    }\r\n\r\n    <span class=\"keyword\">public<\/span> <span class=\"storage function\">function<\/span> <span class=\"entity name function\">getContentChangedFromIp<\/span>()\r\n    {\r\n        <span class=\"keyword\">return<\/span> $<span class=\"keyword\">this<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">&gt;<\/span>contentChangedFromIp;\r\n    }\r\n}\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel53-2\" class=\"content \">\n<pre><code class=\"language-xml rainbow\" data-language=\"language-xml\"><span class=\"keyword operator\">&lt;<\/span>?xml version<span class=\"keyword operator\">=<\/span><span class=\"string\">\"1.0\"<\/span> encoding<span class=\"keyword operator\">=<\/span><span class=\"string\">\"UTF-8\"<\/span>?<span class=\"keyword operator\">&gt;<\/span>\r\n<span class=\"keyword operator\">&lt;<\/span>doctrine<span class=\"keyword operator\">-<\/span>mapping \r\n xmlns<span class=\"keyword operator\">=<\/span><span class=\"string\">\"http:\/\/doctrine-project.org\/schemas\/orm\/doctrine-mapping\"<\/span>\r\n xmlns:gedmo<span class=\"keyword operator\">=<\/span><span class=\"string\">\"http:\/\/gediminasm.org\/schemas\/orm\/doctrine-extensions-mapping\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n\r\n  <span class=\"keyword operator\">&lt;<\/span>entity name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"Mapping\\Fixture\\Xml\\IpTraceable\"<\/span> table<span class=\"keyword operator\">=<\/span><span class=\"string\">\"ip-traceable\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>id name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"id\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"integer\"<\/span> column<span class=\"keyword operator\">=<\/span><span class=\"string\">\"id\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>generator strategy<span class=\"keyword operator\">=<\/span><span class=\"string\">\"AUTO\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/id<span class=\"keyword operator\">&gt;<\/span>\r\n\r\n    <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"createdFromIp\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"string\"<\/span>, length<span class=\"keyword operator\">=<\/span><span class=\"string\">\"45\"<\/span>, <span class=\"constant language\">null<\/span>able<span class=\"keyword operator\">=<\/span><span class=\"string\">\"true\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>gedmo:ip<span class=\"keyword operator\">-<\/span>traceable on<span class=\"keyword operator\">=<\/span><span class=\"string\">\"create\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/field<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"updatedFromIp\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"string\"<\/span>, length<span class=\"keyword operator\">=<\/span><span class=\"string\">\"45\"<\/span>, <span class=\"constant language\">null<\/span>able<span class=\"keyword operator\">=<\/span><span class=\"string\">\"true\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>gedmo:ip<span class=\"keyword operator\">-<\/span>traceable on<span class=\"keyword operator\">=<\/span><span class=\"string\">\"update\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/field<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>field name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"publishedFromIp\"<\/span> type<span class=\"keyword operator\">=<\/span><span class=\"string\">\"string\"<\/span> <span class=\"constant language\">null<\/span>able<span class=\"keyword operator\">=<\/span><span class=\"string\">\"true\"<\/span>, length<span class=\"keyword operator\">=<\/span><span class=\"string\">\"45\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>gedmo:ip<span class=\"keyword operator\">-<\/span>traceable on<span class=\"keyword operator\">=<\/span><span class=\"string\">\"change\"<\/span> field<span class=\"keyword operator\">=<\/span><span class=\"string\">\"status.title\"<\/span> value<span class=\"keyword operator\">=<\/span><span class=\"string\">\"Published\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/field<span class=\"keyword operator\">&gt;<\/span>\r\n\r\n    <span class=\"keyword operator\">&lt;<\/span>many<span class=\"keyword operator\">-<\/span>to<span class=\"keyword operator\">-<\/span>one field<span class=\"keyword operator\">=<\/span><span class=\"string\">\"status\"<\/span> target<span class=\"keyword operator\">-<\/span>entity<span class=\"keyword operator\">=<\/span><span class=\"string\">\"Status\"<\/span><span class=\"keyword operator\">&gt;<\/span>\r\n      <span class=\"keyword operator\">&lt;<\/span>join<span class=\"keyword operator\">-<\/span>column name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"status_id\"<\/span> referenced<span class=\"keyword operator\">-<\/span>column<span class=\"keyword operator\">-<\/span>name<span class=\"keyword operator\">=<\/span><span class=\"string\">\"id\"<\/span>\/<span class=\"keyword operator\">&gt;<\/span>\r\n    <span class=\"keyword operator\">&lt;<\/span>\/many<span class=\"keyword operator\">-<\/span>to<span class=\"keyword operator\">-<\/span>one<span class=\"keyword operator\">&gt;<\/span>\r\n  <span class=\"keyword operator\">&lt;<\/span>\/entity<span class=\"keyword operator\">&gt;<\/span>\r\n\r\n<span class=\"keyword operator\">&lt;<\/span>\/doctrine<span class=\"keyword operator\">-<\/span>mapping<span class=\"keyword operator\">&gt;<\/span>\r\n<\/code><\/pre>\n<\/div>\n<div id=\"panel53-3\" class=\"content \">\n<pre><code class=\"language-yaml rainbow\" data-language=\"language-yaml\"><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">-<\/span><span class=\"keyword operator\">-<\/span>\r\nEntity\\Article:\r\n  type: entity\r\n  table: articles\r\n  id:\r\n    id:\r\n      type: <span class=\"keyword\">integer<\/span>\r\n      generator:\r\n        strategy: AUTO\r\n  fields:\r\n    title:\r\n      type: <span class=\"keyword\">string<\/span>\r\n      length: <span class=\"constant numeric\">64<\/span>\r\n    createdFromIp:\r\n      type: <span class=\"keyword\">string<\/span>\r\n      length: <span class=\"constant numeric\">45<\/span>\r\n      <span class=\"constant language\">null<\/span>able: <span class=\"constant language\">true<\/span>\r\n      gedmo:\r\n        ipTraceable:\r\n          on: create\r\n    updatedFromIp:\r\n      type: <span class=\"keyword\">string<\/span>\r\n      length: <span class=\"constant numeric\">45<\/span>\r\n      <span class=\"constant language\">null<\/span>able: <span class=\"constant language\">true<\/span>\r\n      gedmo:\r\n        ipTraceable:\r\n          on: update\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>For more details <a href=\"https:\/\/github.com\/l3pp4rd\/DoctrineExtensions\/blob\/master\/doc\/ip_traceable.md\">check the documentation<\/a>.<\/p>\n<div class=\"row\">\n<div class=\"large-6 columns\">\n<h1 id=\"skipper\">Skipper<\/h1>\n<\/div>\n<div class=\"large-6 columns\" style=\"text-align: right;\"><a href=\"http:\/\/www.skipper18.com \"><br \/>\n<\/a><\/p>\n<h3>Visit website<\/h3>\n<\/div>\n<\/div>\n<p><a href=\"http:\/\/www.skipper18.com \"><img decoding=\"async\" src=\"\/images\/skipper\/skipper.png\" alt=\"Skipper application\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<div class=\"row\">\n<div class=\"large-8 columns\">\n<p>Element definitions on this page were modelled and generated by Skipper, visual schema editor for ORM frameworks.<\/p>\n<p>Skipper greatly simplifies work with Doctrine 2 and saves huge amount of time. Every example entity and relation used in this Cheatsheet can be achieved with just a few clicks with Skipper. Generated code is clean and elegant and complies with all coding standards.<\/p>\n<p>To learn how Skipper works visit the <a href=\"http:\/\/help.skipper18.com\/en\/product-tour\">product tour<\/a>.<\/p>\n<h3>Export to Doctrine 2 definitions<\/h3>\n<\/div>\n<div class=\"large-4 large-centered columns\">\n<p><img decoding=\"async\" class=\"image\" src=\"\/images\/skipper\/entityeditor.png\" alt=\"Entity editor\" \/><\/p>\n<p class=\"image-caption\">Entity editor<\/p>\n<\/div>\n<\/div>\n<div class=\"row\">\n<div class=\"large-8 columns\">\n<p>Skipper allows to model and export the definition for every Doctrine 2 element and its properties. Further advantages of automated export are:<\/p>\n<ul>\n<li>Editing and generating of definitions is fully repeatable.<\/li>\n<li>Standardized definitions are immediately ready-to-use.<\/li>\n<li>All typos and syntax errors are 100% eliminated.<\/li>\n<\/ul>\n<p>Useful links:<br \/>\n<a href=\"http:\/\/help.skipper18.com\/en\/project-export\">Project export<\/a> &#8211; more info about Skipper definitions export<br \/>\n<a href=\"http:\/\/help.skipper18.com\/en\/Doctrine 2-import-project#h4\">Export to Doctrine 2<\/a> &#8211; how to export your changes to definition schema files<\/p>\n<h3>Import of a project<\/h3>\n<\/div>\n<div class=\"large-4 large-centered columns\">\n<p><a href=\"http:\/\/help.skipper18.com\/en\/project-export\"><img decoding=\"async\" class=\"image\" src=\"\/images\/skipper\/export.png\" alt=\"Export dialog\" \/><\/a><\/p>\n<p class=\"image-caption\">Export dialog<\/p>\n<\/div>\n<\/div>\n<div class=\"row\">\n<div class=\"large-8 columns\">\n<p>Any existing Doctrine 2 project can be simply and quickly imported to Skipper. This enables:<\/p>\n<ul>\n<li>To visualize logic of any project.<\/li>\n<li>To start to use application in any phase of the project.<\/li>\n<\/ul>\n<p>Useful links:<br \/>\n<a href=\"http:\/\/help.skipper18.com\/en\/project-import\">Project import<\/a> &#8211; general information about import feature<br \/>\n<a href=\"http:\/\/help.skipper18.com\/en\/Doctrine 2-import-project\">Doctrine 2 project import<\/a> &#8211; how to import existing project to Skipper<\/p>\n<h3>Summary of Skipper benefits<\/h3>\n<\/div>\n<div class=\"large-4 large-centered columns\">\n<p><a href=\"http:\/\/help.skipper18.com\/en\/project-import\"><img decoding=\"async\" class=\"image\" src=\"\/images\/skipper\/import.png\" alt=\"Import dialog\" \/><\/a><\/p>\n<p class=\"image-caption\">Import dialog<\/p>\n<\/div>\n<\/div>\n<div class=\"row\">\n<div class=\"large-8 columns\">\n<ul>\n<li>Allows to create and maintain the project four times faster.<\/li>\n<li>Replaces manual definitions writing and reduces errors.<\/li>\n<li>Displays the model schema in a form of interactive enhanced ER diagram.<\/li>\n<li>Emphasizes the creative part of a project and eliminates the stereotype.<\/li>\n<li>Increases work comfort.<\/li>\n<li>Provides quality project documentation.<\/li>\n<li>Reduces requirements on knowledge and experience of programmers.<\/li>\n<li>Simplifies the cooperation between team members.<\/li>\n<\/ul>\n<h3>Skipper download<\/h3>\n<\/div>\n<div class=\"large-4 large-centered columns\">\n<p><a href=\"http:\/\/help.skipper18.com\/en\/product-tour\"><img decoding=\"async\" class=\"image\" src=\"\/images\/skipper\/big_model.png\" alt=\"Atlantic model\" \/><\/a><\/p>\n<p class=\"image-caption\">Atlantic model<\/p>\n<\/div>\n<\/div>\n<div class=\"row\">\n<div class=\"large-8 columns\">\n<p>You can try Skipper during its 14-day evaluation period. Trial version offers full application functionality without any limitation and no credit card is needed.<\/p>\n<p>Download trial version from the tool websites at <a href=\"http:\/\/www.skipper18.com\/en\/download\">www.skipper18.com\/download<\/a>.<\/p>\n<\/div>\n<div class=\"large-4 large-centered columns\"><center><br \/>\n<a href=\"http:\/\/www.skipper18.com\/en\/download\"><img decoding=\"async\" src=\"\/images\/skipper\/button.png\" alt=\"Download Skipper\" \/><\/a><\/center><\/div>\n<\/div>\n<h1 id=\"links\">See also<\/h1>\n<div class=\"row\">\n<p><!--####Official sites--><\/p>\n<div class=\"large-4 columns\">\n<p><!-- element id 53 --><\/p>\n<ul>\n<li><a href=\"http:\/\/symfony.com\/\">Symfony website<\/a><\/li>\n<li><a href=\"http:\/\/framework.zend.com\/\">Zend framework website<\/a><\/li>\n<li><a href=\"http:\/\/www.doctrine-project.org\">Doctrine2 project<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/l3pp4rd\/DoctrineExtensions\">Doctrine extensions<\/a><\/li>\n<\/ul>\n<\/div>\n<p><!--####Interesting and helpful sites--><\/p>\n<div class=\"large-4 columns\">\n<p><!-- element id 54 --><\/p>\n<ul>\n<li><a href=\"http:\/\/www.symfony2cheatsheet.com\/\">Symfony Cheatsheet<\/a><\/li>\n<li><a href=\"http:\/\/rollnapi-tomanderson.rhcloud.com\/\">Roll\u2019n\u2019Api<\/a><\/li>\n<\/ul>\n<\/div>\n<p><!--####Blogs--><\/p>\n<div class=\"large-4 columns\">\n<p><!-- element id 55 --><\/p>\n<ul>\n<li><a href=\"http:\/\/www.gediminasm.org\/\">l3pp4rd\u2019s developer blog<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<p>Do you know any other helpful or interesting sites that should be linked here?<br \/>\nLet us know: <a href=\"mailto:developers@ormcheatsheet.com\">developers@ormcheatsheet.com<\/a><\/p>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Entity Id Field Indexes Association Many to Many Inheritance Doctrine extensions Behaviors Skipper Links<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[],"_links":{"self":[{"href":"http:\/\/xfloyd.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/876"}],"collection":[{"href":"http:\/\/xfloyd.net\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/xfloyd.net\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/xfloyd.net\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/xfloyd.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=876"}],"version-history":[{"count":3,"href":"http:\/\/xfloyd.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/876\/revisions"}],"predecessor-version":[{"id":890,"href":"http:\/\/xfloyd.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/876\/revisions\/890"}],"wp:attachment":[{"href":"http:\/\/xfloyd.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=876"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/xfloyd.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=876"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/xfloyd.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=876"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}