"PHP" / Говнокод #19947 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
<?php
namespace DoctrineExtensions;
use \Doctrine\ORM\Event\LoadClassMetadataEventArgs;
/**
 * Расширение для Doctrine ORM
 * Позволяет отслеживать и работать не со всей базой, а только с таблицами с префиксом
 * Необходимо для уживания с битриксом
 *
 * Class TablePrefix
 * @package DoctrineExtensions
 */
class TablePrefix
{
    protected $prefix = '';
    public function __construct($prefix)
    {
        $this->prefix = (string) $prefix;
    }
    public function loadClassMetadata(LoadClassMetadataEventArgs $eventArgs)
    {
        $classMetadata = $eventArgs->getClassMetadata();
        $classMetadata->setTableName($this->prefix . $classMetadata->getTableName());
        foreach ($classMetadata->getAssociationMappings() as $fieldName => $mapping) {
            if ($mapping['type'] == \Doctrine\ORM\Mapping\ClassMetadataInfo::MANY_TO_MANY) {
                $mappedTableName = $classMetadata->associationMappings[$fieldName]['joinTable']['name'];
                $classMetadata->associationMappings[$fieldName]['joinTable']['name'] = $this->prefix . $mappedTableName;
            }
        }
    }
}

Адепты битрикса добрались до Doctrine ORM. И вот что из этого получилось.
Заставь дурака ORM подключать, он и events задрочит.

Запостил: Keeper Keeper, (Updated )

Комментарии (1) RSS

Добавить комментарий

Помни, guest, за тобой могут следить!

    А не использовать ли нам bbcode?


    8