Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x

StaticReflectionParser.php

Same filename in this branch
  1. 11.1.x core/lib/Drupal/Component/Annotation/Doctrine/StaticReflectionParser.php

Namespace

Drupal\migrate\Plugin\Discovery

File

core/modules/migrate/src/Plugin/Discovery/StaticReflectionParser.php

View source
<?php

namespace Drupal\migrate\Plugin\Discovery;

use Drupal\Component\Annotation\Doctrine\StaticReflectionParser as BaseStaticReflectionParser;

/**
 * Allows getting the reflection parser for the parent class.
 *
 * @internal
 *   This is a temporary solution to the fact that migration source plugins have
 *   more than one provider. This functionality will be moved to core in
 *   https://www.drupal.org/node/2786355.
 */
class StaticReflectionParser extends BaseStaticReflectionParser {
    
    /**
     * If the current class extends another, get the parser for the latter.
     *
     * @param \Drupal\Component\Annotation\Doctrine\StaticReflectionParser $parser
     *   The current static parser.
     * @param $finder
     *   The class finder. Must implement
     *   \Drupal\Component\ClassFinder\ClassFinderInterface, but can do so
     *   implicitly (i.e., implements the interface's methods but not the actual
     *   interface).
     *
     * @return static|null
     *   The static parser for the parent if there's a parent class or NULL.
     */
    public static function getParentParser(BaseStaticReflectionParser $parser, $finder) {
        // Ensure the class has been parsed before accessing the parentClassName
        // property.
        $parser->parse();
        if ($parser->parentClassName) {
            return new static($parser->parentClassName, $finder, $parser->classAnnotationOptimize);
        }
    }

}

Classes

Title Deprecated Summary
StaticReflectionParser Allows getting the reflection parser for the parent class.
RSS feed
Powered by Drupal