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

    • 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

        Activity

          People

            Unassigned Unassigned
            andrew.longosz@ibexa.co Andrew 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