• Как использовать Tree в Doctrine2 behavioral extensions?

    @Roman-G Автор вопроса
    Александр Латышев: Да, через composer всё получилось. Спасибо.
  • Как использовать Tree в Doctrine2 behavioral extensions?

    @Roman-G Автор вопроса
    Установка всех полей так же не помогла:
    <?php
    
    use Gedmo\Mapping\Annotation as Gedmo;
    use Doctrine\ORM\Mapping as ORM;
    
    /**
     * @Gedmo\Tree(type="nested")
     * @ORM\Table(name="Tree")
     * @ORM\Entity(repositoryClass="Gedmo\Tree\Entity\Repository\NestedTreeRepository")
     */
    class Tree
    {
        /**
         * @ORM\Column(name="id", type="integer")
         * @ORM\Id
         * @ORM\GeneratedValue
         */
        private $id;
    
        /**
         * @Gedmo\TreeLeft
         * @ORM\Column(name="lft", type="integer")
         */
        private $lft;
    
        /**
         * @Gedmo\TreeLevel
         * @ORM\Column(name="lvl", type="integer")
         */
        private $lvl;
    
        /**
         * @Gedmo\TreeRight
         * @ORM\Column(name="rgt", type="integer")
         */
        private $rgt;
    
        /**
         * @Gedmo\TreeRoot
         * @ORM\Column(name="root", type="integer", nullable=true)
         */
        private $root;
    
        /**
         * @Gedmo\TreeParent
         * @ORM\ManyToOne(targetEntity="Tree", inversedBy="children")
         * @ORM\JoinColumn(name="parent_id", referencedColumnName="id", onDelete="CASCADE")
         */
        private $parent;
    
        /**
         * @ORM\OneToMany(targetEntity="Tree", mappedBy="parent")
         * @ORM\OrderBy({"lft" = "ASC"})
         */
        private $children;
    }


    Возможно я упустил какие-то нюансы с установкой.
    Устанавливал не через composer, просто скопировал папку lib из проекта Doctrine2 behavioral extensions.
    Далее обновил composer.json:
    {
      "require": {
        "doctrine/orm": "2.5.0"
      }, 
      
      "autoload": {
        "psr-4": {
          "": "src/"
        }, 
        "psr-0": { "Gedmo\\": "lib/" }
      }
    }


    Потом сделал:
    composer dump-autoload

    И добавил в tree.php
    $treeListener = new Gedmo\Tree\TreeListener();
    
    $entityManager->getEventManager()->addEventSubscriber($treeListener);


    Если не пользоваться репозиторием, то вроде работает, узлы добавляются.
    Проблемы возникают, когда нужно использовать репозиторий.
  • Как использовать Tree в Doctrine2 behavioral extensions?

    @Roman-G Автор вопроса
    Та же самая ошибка:
    Fatal error: Uncaught exception 'Doctrine\ORM\Mapping\MappingException' with message 'Class "Tree" is not a valid entity or mapped super class.' in C:\OpenServer\domains\doctrine\vendor\doctrine\orm\lib\Doctrine\ORM\Mapping\MappingException.php on line 346

    <?php
    
    use Gedmo\Mapping\Annotation as Gedmo;
    use Doctrine\ORM\Mapping as ORM;
    
    /**
     * @Gedmo\Tree(type="nested")
     * @ORM\Table(name="Tree")
     * @ORM\Entity(repositoryClass="Gedmo\Tree\Entity\Repository\NestedTreeRepository")
     */
    class Tree {
      
      /**
       * @ORM\Id @ORM\GeneratedValue @ORM\Column(type="integer")
       * 
       * @var int
       */
      private $id;
      
      public function getId() {
        return $this->id;
      }
    }
  • Как использовать Tree в Doctrine2 behavioral extensions?

    @Roman-G Автор вопроса
    Пробовал.

    В этом случае происходит другая ошибка:
    Fatal error: Uncaught exception 'Doctrine\ORM\Mapping\MappingException' with message 'Class "Tree" is not a valid entity or mapped super class.' in C:\OpenServer\domains\doctrine\vendor\doctrine\orm\lib\Doctrine\ORM\Mapping\MappingException.php on line 346
  • Какую CMS выбрать для корпоративного сайта?

    @Roman-G Автор вопроса
    DrunkMaster: Спасибо за ответ. Требования дополнил.
  • Какую CMS выбрать для корпоративного сайта?

    @Roman-G Автор вопроса
    А что насчет архитектуры самого WordPress'а?
    Если нужно будет что-то допилить в стандартном модуле?
    Примерный процент некачественного кода?
    Уязвимости?