Skip to content

Commit

Permalink
Issue #3104015 by alexpott, TravisCarden, xjm, longwave, Spokje, catc…
Browse files Browse the repository at this point in the history
…h, fgm, Berdir, tedbow, Bruno Vincent: Replace ZendFramework/* dependencies with their Laminas equivalents
  • Loading branch information
catch committed Mar 25, 2020
1 parent 026674b commit e28bc61
Show file tree
Hide file tree
Showing 10 changed files with 58 additions and 55 deletions.
4 changes: 2 additions & 2 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,12 @@
"guzzlehttp/guzzle": "^6.3",
"symfony-cmf/routing": "^1.4",
"easyrdf/easyrdf": "^0.9",
"zendframework/zend-feed": "^2.12",
"laminas/laminas-feed": "^2.12",
"stack/builder": "^1.0",
"egulias/email-validator": "^2.0",
"masterminds/html5": "^2.1",
"symfony/psr-http-message-bridge": "^1.1.2",
"zendframework/zend-diactoros": "^1.8",
"laminas/laminas-diactoros": "^1.8",
"composer/semver": "^1.0",
"asm89/stack-cors": "^1.1",
"pear/archive_tar": "^1.4.9",
Expand Down
50 changes: 25 additions & 25 deletions core.services.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1446,78 +1446,78 @@ services:
class: Drupal\Component\Bridge\ZfExtensionManagerSfContainer
calls:
- [setContainer, ['@service_container']]
- [setStandalone, ['\Zend\Feed\Reader\StandaloneExtensionManager']]
- [setStandalone, ['\Laminas\Feed\Reader\StandaloneExtensionManager']]
arguments: ['feed.reader.']
feed.bridge.writer:
class: Drupal\Component\Bridge\ZfExtensionManagerSfContainer
calls:
- [setContainer, ['@service_container']]
- [setStandalone, ['\Zend\Feed\Writer\StandaloneExtensionManager']]
- [setStandalone, ['\Laminas\Feed\Writer\StandaloneExtensionManager']]
arguments: ['feed.writer.']
# Zend Feed reader plugins. Plugin instances should not be shared.
# Laminas Feed reader plugins. Plugin instances should not be shared.
feed.reader.dublincoreentry:
class: Zend\Feed\Reader\Extension\DublinCore\Entry
class: Laminas\Feed\Reader\Extension\DublinCore\Entry
shared: false
feed.reader.dublincorefeed:
class: Zend\Feed\Reader\Extension\DublinCore\Feed
class: Laminas\Feed\Reader\Extension\DublinCore\Feed
shared: false
feed.reader.contententry:
class: Zend\Feed\Reader\Extension\Content\Entry
class: Laminas\Feed\Reader\Extension\Content\Entry
shared: false
feed.reader.atomentry:
class: Zend\Feed\Reader\Extension\Atom\Entry
class: Laminas\Feed\Reader\Extension\Atom\Entry
shared: false
feed.reader.atomfeed:
class: Zend\Feed\Reader\Extension\Atom\Feed
class: Laminas\Feed\Reader\Extension\Atom\Feed
shared: false
feed.reader.slashentry:
class: Zend\Feed\Reader\Extension\Slash\Entry
class: Laminas\Feed\Reader\Extension\Slash\Entry
shared: false
feed.reader.wellformedwebentry:
class: Zend\Feed\Reader\Extension\WellFormedWeb\Entry
class: Laminas\Feed\Reader\Extension\WellFormedWeb\Entry
shared: false
feed.reader.threadentry:
class: Zend\Feed\Reader\Extension\Thread\Entry
class: Laminas\Feed\Reader\Extension\Thread\Entry
shared: false
feed.reader.podcastentry:
class: Zend\Feed\Reader\Extension\Podcast\Entry
class: Laminas\Feed\Reader\Extension\Podcast\Entry
shared: false
feed.reader.podcastfeed:
class: Zend\Feed\Reader\Extension\Podcast\Feed
class: Laminas\Feed\Reader\Extension\Podcast\Feed
shared: false
# Zend Feed writer plugins. Plugins should be set as prototype scope.
# Laminas Feed writer plugins. Plugins should be set as prototype scope.
feed.writer.atomrendererfeed:
class: Zend\Feed\Writer\Extension\Atom\Renderer\Feed
class: Laminas\Feed\Writer\Extension\Atom\Renderer\Feed
shared: false
feed.writer.contentrendererentry:
class: Zend\Feed\Writer\Extension\Content\Renderer\Entry
class: Laminas\Feed\Writer\Extension\Content\Renderer\Entry
shared: false
feed.writer.dublincorerendererentry:
class: Zend\Feed\Writer\Extension\DublinCore\Renderer\Entry
class: Laminas\Feed\Writer\Extension\DublinCore\Renderer\Entry
shared: false
feed.writer.dublincorerendererfeed:
class: Zend\Feed\Writer\Extension\DublinCore\Renderer\Feed
class: Laminas\Feed\Writer\Extension\DublinCore\Renderer\Feed
shared: false
feed.writer.itunesentry:
class: Zend\Feed\Writer\Extension\ITunes\Entry
class: Laminas\Feed\Writer\Extension\ITunes\Entry
shared: false
feed.writer.itunesfeed:
class: Zend\Feed\Writer\Extension\ITunes\Feed
class: Laminas\Feed\Writer\Extension\ITunes\Feed
shared: false
feed.writer.itunesrendererentry:
class: Zend\Feed\Writer\Extension\ITunes\Renderer\Entry
class: Laminas\Feed\Writer\Extension\ITunes\Renderer\Entry
shared: false
feed.writer.itunesrendererfeed:
class: Zend\Feed\Writer\Extension\ITunes\Renderer\Feed
class: Laminas\Feed\Writer\Extension\ITunes\Renderer\Feed
shared: false
feed.writer.slashrendererentry:
class: Zend\Feed\Writer\Extension\Slash\Renderer\Entry
class: Laminas\Feed\Writer\Extension\Slash\Renderer\Entry
shared: false
feed.writer.threadingrendererentry:
class: Zend\Feed\Writer\Extension\Threading\Renderer\Entry
class: Laminas\Feed\Writer\Extension\Threading\Renderer\Entry
shared: false
feed.writer.wellformedwebrendererentry:
class: Zend\Feed\Writer\Extension\WellFormedWeb\Renderer\Entry
class: Laminas\Feed\Writer\Extension\WellFormedWeb\Renderer\Entry
shared: false
theme.manager:
class: Drupal\Core\Theme\ThemeManager
Expand Down
33 changes: 18 additions & 15 deletions lib/Drupal/Component/Bridge/ZfExtensionManagerSfContainer.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,26 +5,27 @@
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException;
use Zend\Feed\Reader\ExtensionManagerInterface as ReaderManagerInterface;
use Zend\Feed\Writer\ExtensionManagerInterface as WriterManagerInterface;
use Laminas\Feed\Reader\ExtensionManagerInterface as ReaderManagerInterface;
use Laminas\Feed\Writer\ExtensionManagerInterface as WriterManagerInterface;

/**
* Defines a bridge between the ZF2 service manager to Symfony container.
* Defines a bridge between the Laminas service manager to Symfony container.
*/
class ZfExtensionManagerSfContainer implements ReaderManagerInterface, WriterManagerInterface, ContainerAwareInterface {

/**
* This property was based from Zend Framework (http://framework.zend.com/)
* A map of characters to be replaced through strtr.
*
* @link http://github.com/zendframework/zf2 for the canonical source repository
* @copyright Copyright (c) 2005-2013 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
* This property is based on Laminas service manager.
*
* A map of characters to be replaced through strtr.
* @link https://github.com/laminas/laminas-servicemanager for the canonical source repository
* @copyright Copyright (c) 2019, Laminas Foundation. (https://getlaminas.org/)
* @license https://github.com/laminas/laminas-servicemanager/blob/master/LICENSE.md
*
* @var array
*
* @see \Drupal\Component\Bridge\ZfExtensionManagerSfContainer::canonicalizeName().
* @see https://github.com/laminas/laminas-servicemanager/blob/2.7.11/src/ServiceManager.php#L114
*/
protected $canonicalNamesReplacements = ['-' => '', '_' => '', ' ' => '', '\\' => '', '/' => ''];

Expand All @@ -50,7 +51,7 @@ class ZfExtensionManagerSfContainer implements ReaderManagerInterface, WriterMan
protected $canonicalNames;

/**
* @var \Zend\Feed\Reader\ExtensionManagerInterface|\Zend\Feed\Writer\ExtensionManagerInterface
* @var \Laminas\Feed\Reader\ExtensionManagerInterface|\Laminas\Feed\Writer\ExtensionManagerInterface
*/
protected $standalone;

Expand Down Expand Up @@ -90,19 +91,21 @@ public function has($extension) {
}

/**
* This method was based from Zend Framework (http://framework.zend.com/)
* Canonicalize the extension name to a service name.
*
* @link http://github.com/zendframework/zf2 for the canonical source repository
* @copyright Copyright (c) 2005-2013 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
* This method is based on Laminas service manager.
*
* Canonicalize the extension name to a service name.
* @link https://github.com/laminas/laminas-servicemanager for the canonical source repository
* @copyright Copyright (c) 2019, Laminas Foundation. (https://getlaminas.org/)
* @license https://github.com/laminas/laminas-servicemanager/blob/master/LICENSE.md
*
* @param string $name
* The extension name.
*
* @return string
* The service name, without the prefix.
*
* @see https://github.com/laminas/laminas-servicemanager/blob/2.7.11/src/ServiceManager.php#L900
*/
protected function canonicalizeName($name) {
if (isset($this->canonicalNames[$name])) {
Expand All @@ -124,7 +127,7 @@ public function setContainer(ContainerInterface $container = NULL) {
*/
public function setStandalone($class) {
if (!is_subclass_of($class, ReaderManagerInterface::class) && !is_subclass_of($class, WriterManagerInterface::class)) {
throw new \RuntimeException("$class must implement Zend\Feed\Reader\ExtensionManagerInterface or Zend\Feed\Writer\ExtensionManagerInterface");
throw new \RuntimeException("$class must implement Laminas\Feed\Reader\ExtensionManagerInterface or Laminas\Feed\Writer\ExtensionManagerInterface");
}
$this->standalone = new $class();
}
Expand Down
2 changes: 1 addition & 1 deletion lib/Drupal/Component/Bridge/composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"license": "GPL-2.0-or-later",
"require": {
"php": ">=7.0.8",
"zendframework/zend-feed": "^2.12"
"laminas/laminas-feed": "^2.12"
},
"autoload": {
"psr-4": {
Expand Down
6 changes: 3 additions & 3 deletions lib/Drupal/Core/Composer/Composer.php
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,9 @@ class Composer {
'jcalderonzumba/gastonjs' => ['docs', 'examples', 'tests'],
'jcalderonzumba/mink-phantomjs-driver' => ['tests'],
'justinrainbow/json-schema' => ['demo'],
'laminas/laminas-escaper' => ['doc'],
'laminas/laminas-feed' => ['doc'],
'laminas/laminas-stdlib' => ['doc'],
'masterminds/html5' => ['bin', 'test'],
'mikey179/vfsStream' => ['src/test'],
'myclabs/deep-copy' => ['doc'],
Expand Down Expand Up @@ -89,9 +92,6 @@ class Composer {
'symfony-cmf/routing' => ['Test', 'Tests'],
'theseer/tokenizer' => ['tests'],
'twig/twig' => ['doc', 'ext', 'test', 'tests'],
'zendframework/zend-escaper' => ['doc'],
'zendframework/zend-feed' => ['doc'],
'zendframework/zend-stdlib' => ['doc'],
];

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
use Drupal\aggregator\Plugin\ParserInterface;
use Drupal\aggregator\FeedInterface;
use Drupal\Core\Messenger\MessengerTrait;
use Zend\Feed\Reader\Reader;
use Zend\Feed\Reader\Exception\ExceptionInterface;
use Laminas\Feed\Reader\Reader;
use Laminas\Feed\Reader\Exception\ExceptionInterface;

/**
* Defines a default parser implementation.
Expand All @@ -27,7 +27,7 @@ class DefaultParser implements ParserInterface {
* {@inheritdoc}
*/
public function parse(FeedInterface $feed) {
// Set our bridge extension manager to Zend Feed.
// Set our bridge extension manager to Laminas Feed.
Reader::setExtensionManager(\Drupal::service('feed.bridge.reader'));
try {
$channel = Reader::importString($feed->source_string);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

use Drupal\FunctionalJavascriptTests\WebDriverTestBase;
use Drupal\Tests\contextual\FunctionalJavascript\ContextualLinkClickTrait;
use Zend\Stdlib\ArrayUtils;
use Laminas\Stdlib\ArrayUtils;

/**
* Tests toggling of content preview.
Expand Down
2 changes: 1 addition & 1 deletion modules/simpletest/src/WebTestBase.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
use Drupal\Tests\TestFileCreationTrait;
use Drupal\Tests\user\Traits\UserCreationTrait as BaseUserCreationTrait;
use Drupal\Tests\XdebugRequestTrait;
use Zend\Diactoros\Uri;
use Laminas\Diactoros\Uri;

/**
* Test case for typical Drupal tests.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
use Symfony\Cmf\Component\Routing\RouteObjectInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Zend\Diactoros\Response\HtmlResponse;
use Laminas\Diactoros\Response\HtmlResponse;

/**
* Controller routines for testing the routing system.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
use PHPUnit\Framework\TestCase;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException;
use Zend\Feed\Reader\Extension\Atom\Entry;
use Zend\Feed\Reader\StandaloneExtensionManager;
use Laminas\Feed\Reader\Extension\Atom\Entry;
use Laminas\Feed\Reader\StandaloneExtensionManager;

/**
* @coversDefaultClass \Drupal\Component\Bridge\ZfExtensionManagerSfContainer
Expand Down Expand Up @@ -59,7 +59,7 @@ public function testHas() {
*/
public function testSetStandaloneException() {
$this->expectException(\RuntimeException::class);
$this->expectExceptionMessage('Drupal\Tests\Component\Bridge\ZfExtensionManagerSfContainerTest must implement Zend\Feed\Reader\ExtensionManagerInterface or Zend\Feed\Writer\ExtensionManagerInterface');
$this->expectExceptionMessage('Drupal\Tests\Component\Bridge\ZfExtensionManagerSfContainerTest must implement Laminas\Feed\Reader\ExtensionManagerInterface or Laminas\Feed\Writer\ExtensionManagerInterface');
$bridge = new ZfExtensionManagerSfContainer();
$bridge->setStandalone(static::class);
}
Expand Down

0 comments on commit e28bc61

Please sign in to comment.