Uploaded image for project: 'eZ Publish / Platform'
  1. eZ Publish / Platform
  2. EZP-30921

As a Developer I want deprecated Zeta Components database abstraction layer to be dropped in favor of Doctrine DBAL

    XMLWordPrintable

    Details

    • Story Points:
      8

      Description

      Summary

      Our ezpublish-kernel codebase still uses interfaces from the \eZ\Publish\Core\Persistence\Database namespace and their implementations in the \eZ\Publish\Core\Persistence\Doctrine namespace.

      They've been deprecated since eZ Platform v1.13 (ezpublish-kernel v6.13) in favor of \Doctrine\DBAL which provides easier to use, richer, and more powerful DB abstraction.

      This Story has been estimated as complex because we need to rewrite at least:

      • Persistence Handlers,
      • Criterion handlers for Legacy Search Engine (probably will yield BC breaks),
      • Some tests.

      Further changes will be discovered when working on this.

      It is recommended that EZP-24921 and EZP-30922 are done right after this one, within the scope of the eZ Platform v3.0 final.

      Full (hopefully) list of classes to be refactored:

      Misc (and small):

      • \eZ\Bundle\EzPublishCoreBundle\Imagine\VariationPurger\LegacyStorageImageFileRowReader
      • \eZ\Bundle\EzPublishIOBundle\Migration\FileLister\FileRowReader\LegacyStorageFileRowReader
      • \eZ\Publish\Core\Persistence\Legacy\TransactionHandler
      • \eZ\Publish\Core\Persistence\Legacy\User\Role\LimitationHandler\ObjectStateHandler
      • \eZ\Publish\Core\Persistence\Legacy\Content\FieldValue\Converter\RelationListConverter

      Legacy Storage Content Model gateways (EZP-31088):

      • \eZ\Publish\Core\Persistence\Legacy\Content\Gateway\DoctrineDatabase
      • \eZ\Publish\Core\Persistence\Legacy\Content\Language\Gateway\DoctrineDatabase
      • \eZ\Publish\Core\Persistence\Legacy\Content\Location\Gateway\DoctrineDatabase
      • \eZ\Publish\Core\Persistence\Legacy\Content\Section\Gateway\DoctrineDatabase
      • \eZ\Publish\Core\Persistence\Legacy\Content\ObjectState\Gateway\DoctrineDatabase
      • \eZ\Publish\Core\Persistence\Legacy\Content\Type\Gateway\DoctrineDatabase
      • \eZ\Publish\Core\Persistence\Legacy\Content\UrlAlias\Gateway\DoctrineDatabase
      • \eZ\Publish\Core\Persistence\Legacy\Content\UrlWildcard\Gateway\DoctrineDatabase
      • \eZ\Publish\Core\Persistence\Legacy\User\Gateway\DoctrineDatabase
      • \eZ\Publish\Core\Persistence\Legacy\User\Role\Gateway\DoctrineDatabase

      Legacy Storage URL Query Criterion Handler gateways (EZP-31300):

      • \eZ\Publish\Core\Persistence\Legacy\URL\Gateway\DoctrineDatabase
      • \eZ\Publish\Core\Persistence\Legacy\URL\Query\CriteriaConverter
      • \eZ\Publish\Core\Persistence\Legacy\URL\Query\CriterionHandler\Base
      • \eZ\Publish\Core\Persistence\Legacy\URL\Query\CriterionHandler\LogicalAnd
      • \eZ\Publish\Core\Persistence\Legacy\URL\Query\CriterionHandler\LogicalNot
      • \eZ\Publish\Core\Persistence\Legacy\URL\Query\CriterionHandler\LogicalOr
      • \eZ\Publish\Core\Persistence\Legacy\URL\Query\CriterionHandler\MatchAll
      • \eZ\Publish\Core\Persistence\Legacy\URL\Query\CriterionHandler\MatchNone
      • \eZ\Publish\Core\Persistence\Legacy\URL\Query\CriterionHandler\Pattern
      • \eZ\Publish\Core\Persistence\Legacy\URL\Query\CriterionHandler
      • \eZ\Publish\Core\Persistence\Legacy\URL\Query\CriterionHandler\SectionIdentifier
      • \eZ\Publish\Core\Persistence\Legacy\URL\Query\CriterionHandler\SectionId
      • \eZ\Publish\Core\Persistence\Legacy\URL\Query\CriterionHandler\Validity
      • \eZ\Publish\Core\Persistence\Legacy\URL\Query\CriterionHandler\VisibleOnly

      Legacy Search Engine Word Indexer gateways (EZP-31301):

      • \eZ\Publish\Core\Search\Legacy\Content\WordIndexer\Gateway\DoctrineDatabase
      • \eZ\Publish\Core\Search\Legacy\Content\WordIndexer\Repository\SearchIndex

      Search Engine Indexers (EZP-31517):

      • \eZ\Publish\Core\Search\Common\Indexer
      • \eZ\Publish\Core\Search\Common\IncrementalIndexer
      • \eZ\Publish\Core\Search\Legacy\Content\Indexer
      • \EzSystems\EzPlatformSolrSearchEngine\Indexer

      Legacy Search Engine gateways, Criteria and Sort clause handlers (EZP-31302):

      • \eZ\Publish\Core\Search\Legacy\Content\Gateway\DoctrineDatabase
      • \eZ\Publish\Core\Search\Legacy\Content\Location\Gateway\DoctrineDatabase
      • \eZ\Publish\Core\Search\Legacy\Content\Common\Gateway\CriterionHandler
      • \eZ\Publish\Core\Search\Legacy\Content\Common\Gateway\CriterionHandler\Collection
      • \eZ\Publish\Core\Search\Legacy\Content\Common\Gateway\CriterionHandler\ContentId
      • \eZ\Publish\Core\Search\Legacy\Content\Common\Gateway\CriterionHandler\ContentTypeGroupId
      • \eZ\Publish\Core\Search\Legacy\Content\Common\Gateway\CriterionHandler\ContentTypeId
      • \eZ\Publish\Core\Search\Legacy\Content\Common\Gateway\CriterionHandler\ContentTypeIdentifier
      • \eZ\Publish\Core\Search\Legacy\Content\Common\Gateway\CriterionHandler\Converter
      • \eZ\Publish\Core\Search\Legacy\Content\Common\Gateway\CriterionHandler\DateMetadata
      • \eZ\Publish\Core\Search\Legacy\Content\Common\Gateway\CriterionHandler\Field
      • \eZ\Publish\Core\Search\Legacy\Content\Common\Gateway\CriterionHandler\FieldBase
      • \eZ\Publish\Core\Search\Legacy\Content\Common\Gateway\CriterionHandler\FieldEmpty
      • \eZ\Publish\Core\Search\Legacy\Content\Common\Gateway\CriterionHandler\FieldRelation
      • \eZ\Publish\Core\Search\Legacy\Content\Common\Gateway\CriterionHandler\FullText
      • \eZ\Publish\Core\Search\Legacy\Content\Common\Gateway\CriterionHandler\Handler
      • \eZ\Publish\Core\Search\Legacy\Content\Common\Gateway\CriterionHandler\Keyword
      • \eZ\Publish\Core\Search\Legacy\Content\Common\Gateway\CriterionHandler\LanguageCode
      • \eZ\Publish\Core\Search\Legacy\Content\Common\Gateway\CriterionHandler\LogicalAnd
      • \eZ\Publish\Core\Search\Legacy\Content\Common\Gateway\CriterionHandler\LogicalNot
      • \eZ\Publish\Core\Search\Legacy\Content\Common\Gateway\CriterionHandler\LogicalOr
      • \eZ\Publish\Core\Search\Legacy\Content\Common\Gateway\CriterionHandler\MapLocationDistance
      • \eZ\Publish\Core\Search\Legacy\Content\Common\Gateway\CriterionHandler\MatchAll
      • \eZ\Publish\Core\Search\Legacy\Content\Common\Gateway\CriterionHandler\MatchNone
      • \eZ\Publish\Core\Search\Legacy\Content\Common\Gateway\CriterionHandler\ObjectStateId
      • \eZ\Publish\Core\Search\Legacy\Content\Common\Gateway\CriterionHandler\RemoteId
      • \eZ\Publish\Core\Search\Legacy\Content\Common\Gateway\CriterionHandler\SectionId
      • \eZ\Publish\Core\Search\Legacy\Content\Common\Gateway\CriterionHandler\Simple
      • \eZ\Publish\Core\Search\Legacy\Content\Common\Gateway\CriterionHandler\UserMetadata
      • \eZ\Publish\Core\Search\Legacy\Content\Location\Gateway\CriterionHandler\Ancestor
      • \eZ\Publish\Core\Search\Legacy\Content\Location\Gateway\CriterionHandler\Location\Depth
      • \eZ\Publish\Core\Search\Legacy\Content\Location\Gateway\CriterionHandler\LocationId
      • \eZ\Publish\Core\Search\Legacy\Content\Location\Gateway\CriterionHandler\Location\IsMainLocation
      • \eZ\Publish\Core\Search\Legacy\Content\Location\Gateway\CriterionHandler\Location\Priority
      • \eZ\Publish\Core\Search\Legacy\Content\Location\Gateway\CriterionHandler\LocationRemoteId
      • \eZ\Publish\Core\Search\Legacy\Content\Location\Gateway\CriterionHandler\ParentLocationId
      • \eZ\Publish\Core\Search\Legacy\Content\Location\Gateway\CriterionHandler\Subtree
      • \eZ\Publish\Core\Search\Legacy\Content\Location\Gateway\CriterionHandler\Visibility
      • \eZ\Publish\Core\Search\Legacy\Content\Common\Gateway\SortClauseHandler
      • \eZ\Publish\Core\Search\Legacy\Content\Common\Gateway\SortClauseHandler\AbstractRandom
      • \eZ\Publish\Core\Search\Legacy\Content\Common\Gateway\SortClauseHandler\ContentId
      • \eZ\Publish\Core\Search\Legacy\Content\Common\Gateway\SortClauseHandler\ContentName
      • \eZ\Publish\Core\Search\Legacy\Content\Common\Gateway\SortClauseHandler\DateModified
      • \eZ\Publish\Core\Search\Legacy\Content\Common\Gateway\SortClauseHandler\DatePublished
      • \eZ\Publish\Core\Search\Legacy\Content\Common\Gateway\SortClauseHandler\Field
      • \eZ\Publish\Core\Search\Legacy\Content\Common\Gateway\SortClauseHandler\MapLocationDistance
      • \eZ\Publish\Core\Search\Legacy\Content\Common\Gateway\SortClauseHandler\SectionIdentifier
      • \eZ\Publish\Core\Search\Legacy\Content\Common\Gateway\SortClauseHandler\SectionName
      • \eZ\Publish\Core\Search\Legacy\Content\Location\Gateway\DoctrineDatabase
      • \eZ\Publish\Core\Search\Legacy\Content\Location\Gateway\SortClauseHandler\Location\Depth
      • \eZ\Publish\Core\Search\Legacy\Content\Location\Gateway\SortClauseHandler\Location\Id
      • \eZ\Publish\Core\Search\Legacy\Content\Location\Gateway\SortClauseHandler\Location\IsMainLocation
      • \eZ\Publish\Core\Search\Legacy\Content\Location\Gateway\SortClauseHandler\Location\Path
      • \eZ\Publish\Core\Search\Legacy\Content\Location\Gateway\SortClauseHandler\Location\Priority
      • \eZ\Publish\Core\Search\Legacy\Content\Location\Gateway\SortClauseHandler\Location\Visibility

        Attachments

          Issue Links

          There are no Sub-Tasks for this issue.

            Activity

              People

              Assignee:
              Unassigned
              Reporter:
              andrzej.longosz@ez.no Andrzej Longosz
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - 1 day
                  1d
                  Remaining:
                  Remaining Estimate - 1 day
                  1d
                  Logged:
                  Time Spent - Not Specified
                  Not Specified