This commit is contained in:
KhaiNguyen
2020-02-13 10:39:37 +07:00
commit 59401cb805
12867 changed files with 4646216 additions and 0 deletions

View File

@@ -0,0 +1,7 @@
<?php
// autoload.php @generated by Composer
require_once __DIR__ . '/composer/autoload_real.php';
return ComposerAutoloaderInita410e01cd5a7f541b8842d66f197f91f::getLoader();

View File

@@ -0,0 +1,445 @@
<?php
/*
* This file is part of Composer.
*
* (c) Nils Adermann <naderman@naderman.de>
* Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Composer\Autoload;
/**
* ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
*
* $loader = new \Composer\Autoload\ClassLoader();
*
* // register classes with namespaces
* $loader->add('Symfony\Component', __DIR__.'/component');
* $loader->add('Symfony', __DIR__.'/framework');
*
* // activate the autoloader
* $loader->register();
*
* // to enable searching the include path (eg. for PEAR packages)
* $loader->setUseIncludePath(true);
*
* In this example, if you try to use a class in the Symfony\Component
* namespace or one of its children (Symfony\Component\Console for instance),
* the autoloader will first look for the class under the component/
* directory, and it will then fallback to the framework/ directory if not
* found before giving up.
*
* This class is loosely based on the Symfony UniversalClassLoader.
*
* @author Fabien Potencier <fabien@symfony.com>
* @author Jordi Boggiano <j.boggiano@seld.be>
* @see http://www.php-fig.org/psr/psr-0/
* @see http://www.php-fig.org/psr/psr-4/
*/
class ClassLoader
{
// PSR-4
private $prefixLengthsPsr4 = array();
private $prefixDirsPsr4 = array();
private $fallbackDirsPsr4 = array();
// PSR-0
private $prefixesPsr0 = array();
private $fallbackDirsPsr0 = array();
private $useIncludePath = false;
private $classMap = array();
private $classMapAuthoritative = false;
private $missingClasses = array();
private $apcuPrefix;
public function getPrefixes()
{
if (!empty($this->prefixesPsr0)) {
return call_user_func_array('array_merge', $this->prefixesPsr0);
}
return array();
}
public function getPrefixesPsr4()
{
return $this->prefixDirsPsr4;
}
public function getFallbackDirs()
{
return $this->fallbackDirsPsr0;
}
public function getFallbackDirsPsr4()
{
return $this->fallbackDirsPsr4;
}
public function getClassMap()
{
return $this->classMap;
}
/**
* @param array $classMap Class to filename map
*/
public function addClassMap(array $classMap)
{
if ($this->classMap) {
$this->classMap = array_merge($this->classMap, $classMap);
} else {
$this->classMap = $classMap;
}
}
/**
* Registers a set of PSR-0 directories for a given prefix, either
* appending or prepending to the ones previously set for this prefix.
*
* @param string $prefix The prefix
* @param array|string $paths The PSR-0 root directories
* @param bool $prepend Whether to prepend the directories
*/
public function add($prefix, $paths, $prepend = false)
{
if (!$prefix) {
if ($prepend) {
$this->fallbackDirsPsr0 = array_merge(
(array) $paths,
$this->fallbackDirsPsr0
);
} else {
$this->fallbackDirsPsr0 = array_merge(
$this->fallbackDirsPsr0,
(array) $paths
);
}
return;
}
$first = $prefix[0];
if (!isset($this->prefixesPsr0[$first][$prefix])) {
$this->prefixesPsr0[$first][$prefix] = (array) $paths;
return;
}
if ($prepend) {
$this->prefixesPsr0[$first][$prefix] = array_merge(
(array) $paths,
$this->prefixesPsr0[$first][$prefix]
);
} else {
$this->prefixesPsr0[$first][$prefix] = array_merge(
$this->prefixesPsr0[$first][$prefix],
(array) $paths
);
}
}
/**
* Registers a set of PSR-4 directories for a given namespace, either
* appending or prepending to the ones previously set for this namespace.
*
* @param string $prefix The prefix/namespace, with trailing '\\'
* @param array|string $paths The PSR-4 base directories
* @param bool $prepend Whether to prepend the directories
*
* @throws \InvalidArgumentException
*/
public function addPsr4($prefix, $paths, $prepend = false)
{
if (!$prefix) {
// Register directories for the root namespace.
if ($prepend) {
$this->fallbackDirsPsr4 = array_merge(
(array) $paths,
$this->fallbackDirsPsr4
);
} else {
$this->fallbackDirsPsr4 = array_merge(
$this->fallbackDirsPsr4,
(array) $paths
);
}
} elseif (!isset($this->prefixDirsPsr4[$prefix])) {
// Register directories for a new namespace.
$length = strlen($prefix);
if ('\\' !== $prefix[$length - 1]) {
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
}
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
$this->prefixDirsPsr4[$prefix] = (array) $paths;
} elseif ($prepend) {
// Prepend directories for an already registered namespace.
$this->prefixDirsPsr4[$prefix] = array_merge(
(array) $paths,
$this->prefixDirsPsr4[$prefix]
);
} else {
// Append directories for an already registered namespace.
$this->prefixDirsPsr4[$prefix] = array_merge(
$this->prefixDirsPsr4[$prefix],
(array) $paths
);
}
}
/**
* Registers a set of PSR-0 directories for a given prefix,
* replacing any others previously set for this prefix.
*
* @param string $prefix The prefix
* @param array|string $paths The PSR-0 base directories
*/
public function set($prefix, $paths)
{
if (!$prefix) {
$this->fallbackDirsPsr0 = (array) $paths;
} else {
$this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
}
}
/**
* Registers a set of PSR-4 directories for a given namespace,
* replacing any others previously set for this namespace.
*
* @param string $prefix The prefix/namespace, with trailing '\\'
* @param array|string $paths The PSR-4 base directories
*
* @throws \InvalidArgumentException
*/
public function setPsr4($prefix, $paths)
{
if (!$prefix) {
$this->fallbackDirsPsr4 = (array) $paths;
} else {
$length = strlen($prefix);
if ('\\' !== $prefix[$length - 1]) {
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
}
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
$this->prefixDirsPsr4[$prefix] = (array) $paths;
}
}
/**
* Turns on searching the include path for class files.
*
* @param bool $useIncludePath
*/
public function setUseIncludePath($useIncludePath)
{
$this->useIncludePath = $useIncludePath;
}
/**
* Can be used to check if the autoloader uses the include path to check
* for classes.
*
* @return bool
*/
public function getUseIncludePath()
{
return $this->useIncludePath;
}
/**
* Turns off searching the prefix and fallback directories for classes
* that have not been registered with the class map.
*
* @param bool $classMapAuthoritative
*/
public function setClassMapAuthoritative($classMapAuthoritative)
{
$this->classMapAuthoritative = $classMapAuthoritative;
}
/**
* Should class lookup fail if not found in the current class map?
*
* @return bool
*/
public function isClassMapAuthoritative()
{
return $this->classMapAuthoritative;
}
/**
* APCu prefix to use to cache found/not-found classes, if the extension is enabled.
*
* @param string|null $apcuPrefix
*/
public function setApcuPrefix($apcuPrefix)
{
$this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null;
}
/**
* The APCu prefix in use, or null if APCu caching is not enabled.
*
* @return string|null
*/
public function getApcuPrefix()
{
return $this->apcuPrefix;
}
/**
* Registers this instance as an autoloader.
*
* @param bool $prepend Whether to prepend the autoloader or not
*/
public function register($prepend = false)
{
spl_autoload_register(array($this, 'loadClass'), true, $prepend);
}
/**
* Unregisters this instance as an autoloader.
*/
public function unregister()
{
spl_autoload_unregister(array($this, 'loadClass'));
}
/**
* Loads the given class or interface.
*
* @param string $class The name of the class
* @return bool|null True if loaded, null otherwise
*/
public function loadClass($class)
{
if ($file = $this->findFile($class)) {
includeFile($file);
return true;
}
}
/**
* Finds the path to the file where the class is defined.
*
* @param string $class The name of the class
*
* @return string|false The path if found, false otherwise
*/
public function findFile($class)
{
// class map lookup
if (isset($this->classMap[$class])) {
return $this->classMap[$class];
}
if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) {
return false;
}
if (null !== $this->apcuPrefix) {
$file = apcu_fetch($this->apcuPrefix.$class, $hit);
if ($hit) {
return $file;
}
}
$file = $this->findFileWithExtension($class, '.php');
// Search for Hack files if we are running on HHVM
if (false === $file && defined('HHVM_VERSION')) {
$file = $this->findFileWithExtension($class, '.hh');
}
if (null !== $this->apcuPrefix) {
apcu_add($this->apcuPrefix.$class, $file);
}
if (false === $file) {
// Remember that this class does not exist.
$this->missingClasses[$class] = true;
}
return $file;
}
private function findFileWithExtension($class, $ext)
{
// PSR-4 lookup
$logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
$first = $class[0];
if (isset($this->prefixLengthsPsr4[$first])) {
$subPath = $class;
while (false !== $lastPos = strrpos($subPath, '\\')) {
$subPath = substr($subPath, 0, $lastPos);
$search = $subPath . '\\';
if (isset($this->prefixDirsPsr4[$search])) {
$pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
foreach ($this->prefixDirsPsr4[$search] as $dir) {
if (file_exists($file = $dir . $pathEnd)) {
return $file;
}
}
}
}
}
// PSR-4 fallback dirs
foreach ($this->fallbackDirsPsr4 as $dir) {
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
return $file;
}
}
// PSR-0 lookup
if (false !== $pos = strrpos($class, '\\')) {
// namespaced class name
$logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
. strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
} else {
// PEAR-like class name
$logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
}
if (isset($this->prefixesPsr0[$first])) {
foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
if (0 === strpos($class, $prefix)) {
foreach ($dirs as $dir) {
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
return $file;
}
}
}
}
}
// PSR-0 fallback dirs
foreach ($this->fallbackDirsPsr0 as $dir) {
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
return $file;
}
}
// PSR-0 include paths.
if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
return $file;
}
return false;
}
}
/**
* Scope isolated include.
*
* Prevents access to $this/self from included files.
*/
function includeFile($file)
{
include $file;
}

View File

@@ -0,0 +1,21 @@
Copyright (c) Nils Adermann, Jordi Boggiano
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is furnished
to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

View File

@@ -0,0 +1,688 @@
<?php
// autoload_classmap.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
'Composer\\Installers\\AglInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/AglInstaller.php',
'Composer\\Installers\\AimeosInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/AimeosInstaller.php',
'Composer\\Installers\\AnnotateCmsInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/AnnotateCmsInstaller.php',
'Composer\\Installers\\AsgardInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/AsgardInstaller.php',
'Composer\\Installers\\AttogramInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/AttogramInstaller.php',
'Composer\\Installers\\BaseInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/BaseInstaller.php',
'Composer\\Installers\\BitrixInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/BitrixInstaller.php',
'Composer\\Installers\\BonefishInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/BonefishInstaller.php',
'Composer\\Installers\\CakePHPInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/CakePHPInstaller.php',
'Composer\\Installers\\ChefInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ChefInstaller.php',
'Composer\\Installers\\CiviCrmInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/CiviCrmInstaller.php',
'Composer\\Installers\\ClanCatsFrameworkInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ClanCatsFrameworkInstaller.php',
'Composer\\Installers\\CockpitInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/CockpitInstaller.php',
'Composer\\Installers\\CodeIgniterInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/CodeIgniterInstaller.php',
'Composer\\Installers\\Concrete5Installer' => $vendorDir . '/composer/installers/src/Composer/Installers/Concrete5Installer.php',
'Composer\\Installers\\CraftInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/CraftInstaller.php',
'Composer\\Installers\\CroogoInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/CroogoInstaller.php',
'Composer\\Installers\\DecibelInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/DecibelInstaller.php',
'Composer\\Installers\\DokuWikiInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/DokuWikiInstaller.php',
'Composer\\Installers\\DolibarrInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/DolibarrInstaller.php',
'Composer\\Installers\\DrupalInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/DrupalInstaller.php',
'Composer\\Installers\\ElggInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ElggInstaller.php',
'Composer\\Installers\\EliasisInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/EliasisInstaller.php',
'Composer\\Installers\\ExpressionEngineInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ExpressionEngineInstaller.php',
'Composer\\Installers\\EzPlatformInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/EzPlatformInstaller.php',
'Composer\\Installers\\FuelInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/FuelInstaller.php',
'Composer\\Installers\\FuelphpInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/FuelphpInstaller.php',
'Composer\\Installers\\GravInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/GravInstaller.php',
'Composer\\Installers\\HuradInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/HuradInstaller.php',
'Composer\\Installers\\ImageCMSInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ImageCMSInstaller.php',
'Composer\\Installers\\Installer' => $vendorDir . '/composer/installers/src/Composer/Installers/Installer.php',
'Composer\\Installers\\ItopInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ItopInstaller.php',
'Composer\\Installers\\JoomlaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/JoomlaInstaller.php',
'Composer\\Installers\\KanboardInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/KanboardInstaller.php',
'Composer\\Installers\\KirbyInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/KirbyInstaller.php',
'Composer\\Installers\\KodiCMSInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/KodiCMSInstaller.php',
'Composer\\Installers\\KohanaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/KohanaInstaller.php',
'Composer\\Installers\\LanManagementSystemInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/LanManagementSystemInstaller.php',
'Composer\\Installers\\LaravelInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/LaravelInstaller.php',
'Composer\\Installers\\LavaLiteInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/LavaLiteInstaller.php',
'Composer\\Installers\\LithiumInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/LithiumInstaller.php',
'Composer\\Installers\\MODULEWorkInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MODULEWorkInstaller.php',
'Composer\\Installers\\MODXEvoInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MODXEvoInstaller.php',
'Composer\\Installers\\MagentoInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MagentoInstaller.php',
'Composer\\Installers\\MajimaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MajimaInstaller.php',
'Composer\\Installers\\MakoInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MakoInstaller.php',
'Composer\\Installers\\MauticInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MauticInstaller.php',
'Composer\\Installers\\MayaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MayaInstaller.php',
'Composer\\Installers\\MediaWikiInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MediaWikiInstaller.php',
'Composer\\Installers\\MicroweberInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MicroweberInstaller.php',
'Composer\\Installers\\ModxInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ModxInstaller.php',
'Composer\\Installers\\MoodleInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/MoodleInstaller.php',
'Composer\\Installers\\OctoberInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/OctoberInstaller.php',
'Composer\\Installers\\OntoWikiInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/OntoWikiInstaller.php',
'Composer\\Installers\\OsclassInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/OsclassInstaller.php',
'Composer\\Installers\\OxidInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/OxidInstaller.php',
'Composer\\Installers\\PPIInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PPIInstaller.php',
'Composer\\Installers\\PhiftyInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PhiftyInstaller.php',
'Composer\\Installers\\PhpBBInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PhpBBInstaller.php',
'Composer\\Installers\\PimcoreInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PimcoreInstaller.php',
'Composer\\Installers\\PiwikInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PiwikInstaller.php',
'Composer\\Installers\\PlentymarketsInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PlentymarketsInstaller.php',
'Composer\\Installers\\Plugin' => $vendorDir . '/composer/installers/src/Composer/Installers/Plugin.php',
'Composer\\Installers\\PortoInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PortoInstaller.php',
'Composer\\Installers\\PrestashopInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PrestashopInstaller.php',
'Composer\\Installers\\PuppetInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PuppetInstaller.php',
'Composer\\Installers\\PxcmsInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/PxcmsInstaller.php',
'Composer\\Installers\\RadPHPInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/RadPHPInstaller.php',
'Composer\\Installers\\ReIndexInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ReIndexInstaller.php',
'Composer\\Installers\\RedaxoInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/RedaxoInstaller.php',
'Composer\\Installers\\RoundcubeInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/RoundcubeInstaller.php',
'Composer\\Installers\\SMFInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/SMFInstaller.php',
'Composer\\Installers\\ShopwareInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ShopwareInstaller.php',
'Composer\\Installers\\SilverStripeInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/SilverStripeInstaller.php',
'Composer\\Installers\\SiteDirectInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/SiteDirectInstaller.php',
'Composer\\Installers\\SyDESInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/SyDESInstaller.php',
'Composer\\Installers\\Symfony1Installer' => $vendorDir . '/composer/installers/src/Composer/Installers/Symfony1Installer.php',
'Composer\\Installers\\TYPO3CmsInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/TYPO3CmsInstaller.php',
'Composer\\Installers\\TYPO3FlowInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/TYPO3FlowInstaller.php',
'Composer\\Installers\\TheliaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/TheliaInstaller.php',
'Composer\\Installers\\TuskInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/TuskInstaller.php',
'Composer\\Installers\\UserFrostingInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/UserFrostingInstaller.php',
'Composer\\Installers\\VanillaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/VanillaInstaller.php',
'Composer\\Installers\\VgmcpInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/VgmcpInstaller.php',
'Composer\\Installers\\WHMCSInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/WHMCSInstaller.php',
'Composer\\Installers\\WolfCMSInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/WolfCMSInstaller.php',
'Composer\\Installers\\WordPressInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/WordPressInstaller.php',
'Composer\\Installers\\YawikInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/YawikInstaller.php',
'Composer\\Installers\\ZendInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ZendInstaller.php',
'Composer\\Installers\\ZikulaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ZikulaInstaller.php',
'WPSEO_Abstract_Capability_Manager' => $baseDir . '/admin/capabilities/class-abstract-capability-manager.php',
'WPSEO_Abstract_Metabox_Tab_With_Sections' => $baseDir . '/admin/metabox/class-abstract-sectioned-metabox-tab.php',
'WPSEO_Abstract_Post_Filter' => $baseDir . '/admin/filters/class-abstract-post-filter.php',
'WPSEO_Abstract_Role_Manager' => $baseDir . '/admin/roles/class-abstract-role-manager.php',
'WPSEO_Add_Keyword_Modal' => $baseDir . '/admin/class-add-keyword-modal.php',
'WPSEO_Addon_Manager' => $baseDir . '/inc/class-addon-manager.php',
'WPSEO_Admin' => $baseDir . '/admin/class-admin.php',
'WPSEO_Admin_Asset' => $baseDir . '/admin/class-asset.php',
'WPSEO_Admin_Asset_Analysis_Worker_Location' => $baseDir . '/admin/class-admin-asset-analysis-worker-location.php',
'WPSEO_Admin_Asset_Dev_Server_Location' => $baseDir . '/admin/class-admin-asset-dev-server-location.php',
'WPSEO_Admin_Asset_Location' => $baseDir . '/admin/class-admin-asset-location.php',
'WPSEO_Admin_Asset_Manager' => $baseDir . '/admin/class-admin-asset-manager.php',
'WPSEO_Admin_Asset_SEO_Location' => $baseDir . '/admin/class-admin-asset-seo-location.php',
'WPSEO_Admin_Asset_Yoast_Components_L10n' => $baseDir . '/admin/class-admin-asset-yoast-components-l10n.php',
'WPSEO_Admin_Bar_Menu' => $baseDir . '/inc/class-wpseo-admin-bar-menu.php',
'WPSEO_Admin_Editor_Specific_Replace_Vars' => $baseDir . '/admin/class-admin-editor-specific-replace-vars.php',
'WPSEO_Admin_Gutenberg_Compatibility_Notification' => $baseDir . '/admin/class-admin-gutenberg-compatibility-notification.php',
'WPSEO_Admin_Help_Panel' => $baseDir . '/admin/class-admin-help-panel.php',
'WPSEO_Admin_Init' => $baseDir . '/admin/class-admin-init.php',
'WPSEO_Admin_Media_Purge_Notification' => $baseDir . '/admin/class-admin-media-purge-notification.php',
'WPSEO_Admin_Menu' => $baseDir . '/admin/menu/class-admin-menu.php',
'WPSEO_Admin_Pages' => $baseDir . '/admin/class-config.php',
'WPSEO_Admin_Recommended_Replace_Vars' => $baseDir . '/admin/class-admin-recommended-replace-vars.php',
'WPSEO_Admin_Settings_Changed_Listener' => $baseDir . '/admin/admin-settings-changed-listener.php',
'WPSEO_Admin_User_Profile' => $baseDir . '/admin/class-admin-user-profile.php',
'WPSEO_Admin_Utils' => $baseDir . '/admin/class-admin-utils.php',
'WPSEO_Advanced_Settings' => $baseDir . '/deprecated/class-wpseo-advanced-settings.php',
'WPSEO_Author_Sitemap_Provider' => $baseDir . '/inc/sitemaps/class-author-sitemap-provider.php',
'WPSEO_Base_Menu' => $baseDir . '/admin/menu/class-base-menu.php',
'WPSEO_Breadcrumbs' => $baseDir . '/frontend/class-breadcrumbs.php',
'WPSEO_Bulk_Description_List_Table' => $baseDir . '/admin/class-bulk-description-editor-list-table.php',
'WPSEO_Bulk_List_Table' => $baseDir . '/admin/class-bulk-editor-list-table.php',
'WPSEO_Bulk_Title_Editor_List_Table' => $baseDir . '/admin/class-bulk-title-editor-list-table.php',
'WPSEO_CLI_Redirect_Upsell_Command_Namespace' => $baseDir . '/cli/class-cli-redirect-upsell-command-namespace.php',
'WPSEO_CLI_Yoast_Command_Namespace' => $baseDir . '/cli/class-cli-yoast-command-namespace.php',
'WPSEO_Capability_Manager' => $baseDir . '/admin/capabilities/class-capability-manager.php',
'WPSEO_Capability_Manager_Factory' => $baseDir . '/admin/capabilities/class-capability-manager-factory.php',
'WPSEO_Capability_Manager_Integration' => $baseDir . '/admin/capabilities/class-capability-manager-integration.php',
'WPSEO_Capability_Manager_VIP' => $baseDir . '/admin/capabilities/class-capability-manager-vip.php',
'WPSEO_Capability_Manager_WP' => $baseDir . '/admin/capabilities/class-capability-manager-wp.php',
'WPSEO_Capability_Utils' => $baseDir . '/admin/capabilities/class-capability-utils.php',
'WPSEO_Collection' => $baseDir . '/admin/interface-collection.php',
'WPSEO_Collector' => $baseDir . '/admin/class-collector.php',
'WPSEO_Config_Component' => $baseDir . '/admin/config-ui/components/interface-component.php',
'WPSEO_Config_Component_Connect_Google_Search_Console' => $baseDir . '/deprecated/admin/config-ui/components/class-component-connect-google-search-console.php',
'WPSEO_Config_Component_Mailchimp_Signup' => $baseDir . '/admin/config-ui/components/class-component-mailchimp-signup.php',
'WPSEO_Config_Component_Suggestions' => $baseDir . '/admin/config-ui/components/class-component-suggestions.php',
'WPSEO_Config_Factory_Post_Type' => $baseDir . '/admin/config-ui/factories/class-factory-post-type.php',
'WPSEO_Config_Field' => $baseDir . '/admin/config-ui/fields/class-field.php',
'WPSEO_Config_Field_Choice' => $baseDir . '/admin/config-ui/fields/class-field-choice.php',
'WPSEO_Config_Field_Choice_Post_Type' => $baseDir . '/admin/config-ui/fields/class-field-choice-post-type.php',
'WPSEO_Config_Field_Company_Info_Missing' => $baseDir . '/admin/config-ui/fields/class-field-company-info-missing.php',
'WPSEO_Config_Field_Company_Logo' => $baseDir . '/admin/config-ui/fields/class-field-company-logo.php',
'WPSEO_Config_Field_Company_Name' => $baseDir . '/admin/config-ui/fields/class-field-company-name.php',
'WPSEO_Config_Field_Company_Or_Person' => $baseDir . '/admin/config-ui/fields/class-field-company-or-person.php',
'WPSEO_Config_Field_Connect_Google_Search_Console' => $baseDir . '/deprecated/admin/config-ui/fields/class-field-connect-google-search-console.php',
'WPSEO_Config_Field_Environment' => $baseDir . '/admin/config-ui/fields/class-field-environment.php',
'WPSEO_Config_Field_Google_Search_Console_Intro' => $baseDir . '/deprecated/admin/config-ui/fields/class-field-google-search-console-intro.php',
'WPSEO_Config_Field_Mailchimp_Signup' => $baseDir . '/admin/config-ui/fields/class-field-mailchimp-signup.php',
'WPSEO_Config_Field_Multiple_Authors' => $baseDir . '/admin/config-ui/fields/class-field-multiple-authors.php',
'WPSEO_Config_Field_Person' => $baseDir . '/admin/config-ui/fields/class-field-person.php',
'WPSEO_Config_Field_Post_Type_Visibility' => $baseDir . '/admin/config-ui/fields/class-field-post-type-visibility.php',
'WPSEO_Config_Field_Profile_URL_Facebook' => $baseDir . '/admin/config-ui/fields/class-field-profile-url-facebook.php',
'WPSEO_Config_Field_Profile_URL_GooglePlus' => $baseDir . '/deprecated/admin/config-ui/fields/class-field-profile-url-googleplus.php',
'WPSEO_Config_Field_Profile_URL_Instagram' => $baseDir . '/admin/config-ui/fields/class-field-profile-url-instagram.php',
'WPSEO_Config_Field_Profile_URL_LinkedIn' => $baseDir . '/admin/config-ui/fields/class-field-profile-url-linkedin.php',
'WPSEO_Config_Field_Profile_URL_MySpace' => $baseDir . '/admin/config-ui/fields/class-field-profile-url-myspace.php',
'WPSEO_Config_Field_Profile_URL_Pinterest' => $baseDir . '/admin/config-ui/fields/class-field-profile-url-pinterest.php',
'WPSEO_Config_Field_Profile_URL_Twitter' => $baseDir . '/admin/config-ui/fields/class-field-profile-url-twitter.php',
'WPSEO_Config_Field_Profile_URL_Wikipedia' => $baseDir . '/admin/config-ui/fields/class-field-profile-url-wikipedia.php',
'WPSEO_Config_Field_Profile_URL_YouTube' => $baseDir . '/admin/config-ui/fields/class-field-profile-url-youtube.php',
'WPSEO_Config_Field_Separator' => $baseDir . '/admin/config-ui/fields/class-field-separator.php',
'WPSEO_Config_Field_Site_Name' => $baseDir . '/admin/config-ui/fields/class-field-site-name.php',
'WPSEO_Config_Field_Site_Type' => $baseDir . '/admin/config-ui/fields/class-field-site-type.php',
'WPSEO_Config_Field_Success_Message' => $baseDir . '/admin/config-ui/fields/class-field-success-message.php',
'WPSEO_Config_Field_Suggestions' => $baseDir . '/admin/config-ui/fields/class-field-suggestions.php',
'WPSEO_Config_Field_Title_Intro' => $baseDir . '/admin/config-ui/fields/class-field-title-intro.php',
'WPSEO_Config_Field_Upsell_Configuration_Service' => $baseDir . '/admin/config-ui/fields/class-field-upsell-configuration-service.php',
'WPSEO_Config_Field_Upsell_Site_Review' => $baseDir . '/admin/config-ui/fields/class-field-upsell-site-review.php',
'WPSEO_Configuration_Components' => $baseDir . '/admin/config-ui/class-configuration-components.php',
'WPSEO_Configuration_Endpoint' => $baseDir . '/admin/config-ui/class-configuration-endpoint.php',
'WPSEO_Configuration_Notifier' => $baseDir . '/admin/notifiers/class-configuration-notifier.php',
'WPSEO_Configuration_Options_Adapter' => $baseDir . '/admin/config-ui/class-configuration-options-adapter.php',
'WPSEO_Configuration_Page' => $baseDir . '/admin/config-ui/class-configuration-page.php',
'WPSEO_Configuration_Service' => $baseDir . '/admin/config-ui/class-configuration-service.php',
'WPSEO_Configuration_Storage' => $baseDir . '/admin/config-ui/class-configuration-storage.php',
'WPSEO_Configuration_Structure' => $baseDir . '/admin/config-ui/class-configuration-structure.php',
'WPSEO_Configuration_Translations' => $baseDir . '/admin/config-ui/class-configuration-translations.php',
'WPSEO_Content_Images' => $baseDir . '/inc/class-wpseo-content-images.php',
'WPSEO_Cornerstone' => $baseDir . '/deprecated/class-cornerstone.php',
'WPSEO_Cornerstone_Filter' => $baseDir . '/admin/filters/class-cornerstone-filter.php',
'WPSEO_Custom_Fields' => $baseDir . '/inc/class-wpseo-custom-fields.php',
'WPSEO_Custom_Taxonomies' => $baseDir . '/inc/class-wpseo-custom-taxonomies.php',
'WPSEO_Customizer' => $baseDir . '/admin/class-customizer.php',
'WPSEO_Database_Proxy' => $baseDir . '/admin/class-database-proxy.php',
'WPSEO_Date_Helper' => $baseDir . '/inc/date-helper.php',
'WPSEO_Dismissible_Notification' => $baseDir . '/admin/notifiers/dismissible-notification.php',
'WPSEO_Endpoint' => $baseDir . '/admin/endpoints/class-endpoint.php',
'WPSEO_Endpoint_Factory' => $baseDir . '/inc/class-wpseo-endpoint-factory.php',
'WPSEO_Endpoint_File_Size' => $baseDir . '/admin/endpoints/class-endpoint-file-size.php',
'WPSEO_Endpoint_Indexable' => $baseDir . '/admin/endpoints/class-endpoint-indexable.php',
'WPSEO_Endpoint_MyYoast_Connect' => $baseDir . '/inc/endpoints/class-myyoast-connect.php',
'WPSEO_Endpoint_Ryte' => $baseDir . '/admin/endpoints/class-endpoint-ryte.php',
'WPSEO_Endpoint_Statistics' => $baseDir . '/admin/endpoints/class-endpoint-statistics.php',
'WPSEO_Endpoint_Storable' => $baseDir . '/admin/endpoints/interface-endpoint-storable.php',
'WPSEO_Endpoint_Validator' => $baseDir . '/inc/indexables/validators/class-endpoint-validator.php',
'WPSEO_Export' => $baseDir . '/admin/class-export.php',
'WPSEO_Expose_Shortlinks' => $baseDir . '/admin/class-expose-shortlinks.php',
'WPSEO_Extension' => $baseDir . '/admin/class-extension.php',
'WPSEO_Extension_Manager' => $baseDir . '/admin/class-extension-manager.php',
'WPSEO_Extensions' => $baseDir . '/admin/class-extensions.php',
'WPSEO_Features' => $baseDir . '/inc/class-wpseo-features.php',
'WPSEO_File_Size_Exception' => $baseDir . '/admin/exceptions/class-file-size-exception.php',
'WPSEO_File_Size_Service' => $baseDir . '/admin/services/class-file-size.php',
'WPSEO_Frontend' => $baseDir . '/frontend/class-frontend.php',
'WPSEO_Frontend_Page_Type' => $baseDir . '/frontend/class-frontend-page-type.php',
'WPSEO_Frontend_Primary_Category' => $baseDir . '/frontend/class-primary-category.php',
'WPSEO_GSC' => $baseDir . '/admin/google_search_console/class-gsc.php',
'WPSEO_GSC_Ajax' => $baseDir . '/deprecated/admin/google-search-console/class-gsc-ajax.php',
'WPSEO_GSC_Bulk_Action' => $baseDir . '/deprecated/admin/google-search-console/class-gsc-bulk-action.php',
'WPSEO_GSC_Category_Filters' => $baseDir . '/deprecated/admin/google-search-console/class-gsc-category-filters.php',
'WPSEO_GSC_Config' => $baseDir . '/deprecated/admin/google-search-console/class-gsc-config.php',
'WPSEO_GSC_Count' => $baseDir . '/deprecated/admin/google-search-console/class-gsc-count.php',
'WPSEO_GSC_Issue' => $baseDir . '/deprecated/admin/google-search-console/class-gsc-issue.php',
'WPSEO_GSC_Issues' => $baseDir . '/deprecated/admin/google-search-console/class-gsc-issues.php',
'WPSEO_GSC_Mapper' => $baseDir . '/deprecated/admin/google-search-console/class-gsc-mapper.php',
'WPSEO_GSC_Marker' => $baseDir . '/deprecated/admin/google-search-console/class-gsc-marker.php',
'WPSEO_GSC_Modal' => $baseDir . '/deprecated/admin/google-search-console/class-gsc-modal.php',
'WPSEO_GSC_Platform_Tabs' => $baseDir . '/deprecated/admin/google-search-console/class-gsc-platform-tabs.php',
'WPSEO_GSC_Service' => $baseDir . '/deprecated/admin/google-search-console/class-gsc-service.php',
'WPSEO_GSC_Settings' => $baseDir . '/deprecated/admin/google-search-console/class-gsc-settings.php',
'WPSEO_GSC_Table' => $baseDir . '/deprecated/admin/google-search-console/class-gsc-table.php',
'WPSEO_Graph_Piece' => $baseDir . '/frontend/schema/interface-wpseo-graph-piece.php',
'WPSEO_Gutenberg_Compatibility' => $baseDir . '/admin/class-gutenberg-compatibility.php',
'WPSEO_Handle_404' => $baseDir . '/frontend/class-handle-404.php',
'WPSEO_Health_Check' => $baseDir . '/inc/health-check.php',
'WPSEO_Health_Check_Page_Comments' => $baseDir . '/inc/health-check-page-comments.php',
'WPSEO_HelpScout' => $baseDir . '/admin/class-helpscout.php',
'WPSEO_Image_Utils' => $baseDir . '/inc/class-wpseo-image-utils.php',
'WPSEO_Import_AIOSEO' => $baseDir . '/admin/import/plugins/class-import-aioseo.php',
'WPSEO_Import_Greg_SEO' => $baseDir . '/admin/import/plugins/class-import-greg-high-performance-seo.php',
'WPSEO_Import_HeadSpace' => $baseDir . '/admin/import/plugins/class-import-headspace.php',
'WPSEO_Import_Jetpack_SEO' => $baseDir . '/admin/import/plugins/class-import-jetpack.php',
'WPSEO_Import_Platinum_SEO' => $baseDir . '/admin/import/plugins/class-import-platinum-seo-pack.php',
'WPSEO_Import_Plugin' => $baseDir . '/admin/import/class-import-plugin.php',
'WPSEO_Import_Plugins_Detector' => $baseDir . '/admin/import/class-import-detector.php',
'WPSEO_Import_Premium_SEO_Pack' => $baseDir . '/admin/import/plugins/class-import-premium-seo-pack.php',
'WPSEO_Import_RankMath' => $baseDir . '/admin/import/plugins/class-import-rankmath.php',
'WPSEO_Import_SEOPressor' => $baseDir . '/admin/import/plugins/class-import-seopressor.php',
'WPSEO_Import_SEO_Framework' => $baseDir . '/admin/import/plugins/class-import-seo-framework.php',
'WPSEO_Import_Settings' => $baseDir . '/admin/import/class-import-settings.php',
'WPSEO_Import_Smartcrawl_SEO' => $baseDir . '/admin/import/plugins/class-import-smartcrawl.php',
'WPSEO_Import_Squirrly' => $baseDir . '/admin/import/plugins/class-import-squirrly.php',
'WPSEO_Import_Status' => $baseDir . '/admin/import/class-import-status.php',
'WPSEO_Import_Ultimate_SEO' => $baseDir . '/admin/import/plugins/class-import-ultimate-seo.php',
'WPSEO_Import_WPSEO' => $baseDir . '/admin/import/plugins/class-import-wpseo.php',
'WPSEO_Import_WP_Meta_SEO' => $baseDir . '/admin/import/plugins/class-import-wp-meta-seo.php',
'WPSEO_Import_WooThemes_SEO' => $baseDir . '/admin/import/plugins/class-import-woothemes-seo.php',
'WPSEO_Indexable' => $baseDir . '/inc/indexables/class-indexable.php',
'WPSEO_Indexable_Provider' => $baseDir . '/admin/services/class-indexable-provider.php',
'WPSEO_Indexable_Service' => $baseDir . '/admin/services/class-indexable.php',
'WPSEO_Indexable_Service_Post_Provider' => $baseDir . '/admin/services/class-indexable-post-provider.php',
'WPSEO_Indexable_Service_Provider' => $baseDir . '/admin/services/interface-indexable-provider.php',
'WPSEO_Indexable_Service_Term_Provider' => $baseDir . '/admin/services/class-indexable-term-provider.php',
'WPSEO_Installable' => $baseDir . '/admin/interface-installable.php',
'WPSEO_Installation' => $baseDir . '/inc/class-wpseo-installation.php',
'WPSEO_Invalid_Argument_Exception' => $baseDir . '/inc/exceptions/class-invalid-argument-exception.php',
'WPSEO_Invalid_Indexable_Exception' => $baseDir . '/inc/exceptions/class-invalid-indexable-exception.php',
'WPSEO_Keyword_Synonyms_Modal' => $baseDir . '/admin/class-keyword-synonyms-modal.php',
'WPSEO_Keyword_Validator' => $baseDir . '/inc/indexables/validators/class-keyword-validator.php',
'WPSEO_Language_Utils' => $baseDir . '/inc/language-utils.php',
'WPSEO_License_Page_Manager' => $baseDir . '/admin/class-license-page-manager.php',
'WPSEO_Link' => $baseDir . '/admin/links/class-link.php',
'WPSEO_Link_Cleanup_Transient' => $baseDir . '/admin/links/class-link-cleanup-transient.php',
'WPSEO_Link_Column_Count' => $baseDir . '/admin/links/class-link-column-count.php',
'WPSEO_Link_Columns' => $baseDir . '/admin/links/class-link-columns.php',
'WPSEO_Link_Compatibility_Notifier' => $baseDir . '/admin/links/class-link-compatibility-notifier.php',
'WPSEO_Link_Content_Processor' => $baseDir . '/admin/links/class-link-content-processor.php',
'WPSEO_Link_Extractor' => $baseDir . '/admin/links/class-link-extractor.php',
'WPSEO_Link_Factory' => $baseDir . '/admin/links/class-link-factory.php',
'WPSEO_Link_Filter' => $baseDir . '/admin/links/class-link-filter.php',
'WPSEO_Link_Installer' => $baseDir . '/admin/links/class-link-installer.php',
'WPSEO_Link_Internal_Lookup' => $baseDir . '/admin/links/class-link-internal-lookup.php',
'WPSEO_Link_Notifier' => $baseDir . '/admin/links/class-link-notifier.php',
'WPSEO_Link_Query' => $baseDir . '/admin/links/class-link-query.php',
'WPSEO_Link_Reindex_Dashboard' => $baseDir . '/admin/links/class-link-reindex-dashboard.php',
'WPSEO_Link_Reindex_Post_Endpoint' => $baseDir . '/admin/links/class-link-reindex-post-endpoint.php',
'WPSEO_Link_Reindex_Post_Service' => $baseDir . '/admin/links/class-link-reindex-post-service.php',
'WPSEO_Link_Storage' => $baseDir . '/admin/links/class-link-storage.php',
'WPSEO_Link_Table_Accessible' => $baseDir . '/admin/links/class-link-table-accessible.php',
'WPSEO_Link_Table_Accessible_Notifier' => $baseDir . '/admin/links/class-link-table-accessible-notifier.php',
'WPSEO_Link_Type_Classifier' => $baseDir . '/admin/links/class-link-type-classifier.php',
'WPSEO_Link_Utils' => $baseDir . '/admin/links/class-link-utils.php',
'WPSEO_Link_Validator' => $baseDir . '/inc/indexables/validators/class-link-validator.php',
'WPSEO_Link_Watcher' => $baseDir . '/admin/links/class-link-watcher.php',
'WPSEO_Link_Watcher_Loader' => $baseDir . '/admin/links/class-link-watcher-loader.php',
'WPSEO_Listener' => $baseDir . '/admin/listeners/class-listener.php',
'WPSEO_Menu' => $baseDir . '/admin/menu/class-menu.php',
'WPSEO_Meta' => $baseDir . '/inc/class-wpseo-meta.php',
'WPSEO_Meta_Columns' => $baseDir . '/admin/class-meta-columns.php',
'WPSEO_Meta_Storage' => $baseDir . '/admin/class-meta-storage.php',
'WPSEO_Meta_Table_Accessible' => $baseDir . '/admin/class-meta-table-accessible.php',
'WPSEO_Meta_Values_Validator' => $baseDir . '/inc/indexables/validators/class-meta-values-validator.php',
'WPSEO_Metabox' => $baseDir . '/admin/metabox/class-metabox.php',
'WPSEO_Metabox_Addon_Tab_Section' => $baseDir . '/deprecated/class-metabox-addon-section.php',
'WPSEO_Metabox_Analysis' => $baseDir . '/admin/metabox/interface-metabox-analysis.php',
'WPSEO_Metabox_Analysis_Readability' => $baseDir . '/admin/metabox/class-metabox-analysis-readability.php',
'WPSEO_Metabox_Analysis_SEO' => $baseDir . '/admin/metabox/class-metabox-analysis-seo.php',
'WPSEO_Metabox_Collapsible' => $baseDir . '/admin/metabox/class-metabox-collapsible.php',
'WPSEO_Metabox_Collapsibles_Sections' => $baseDir . '/admin/metabox/class-metabox-collapsibles-section.php',
'WPSEO_Metabox_Editor' => $baseDir . '/admin/metabox/class-metabox-editor.php',
'WPSEO_Metabox_Form_Tab' => $baseDir . '/admin/metabox/class-metabox-form-tab.php',
'WPSEO_Metabox_Formatter' => $baseDir . '/admin/formatter/class-metabox-formatter.php',
'WPSEO_Metabox_Formatter_Interface' => $baseDir . '/admin/formatter/interface-metabox-formatter.php',
'WPSEO_Metabox_Null_Tab' => $baseDir . '/admin/metabox/class-metabox-null-tab.php',
'WPSEO_Metabox_Section' => $baseDir . '/admin/metabox/interface-metabox-section.php',
'WPSEO_Metabox_Section_Additional' => $baseDir . '/admin/metabox/class-metabox-section-additional.php',
'WPSEO_Metabox_Section_React' => $baseDir . '/admin/metabox/class-metabox-section-react.php',
'WPSEO_Metabox_Section_Readability' => $baseDir . '/admin/metabox/class-metabox-section-readability.php',
'WPSEO_Metabox_Tab' => $baseDir . '/admin/metabox/interface-metabox-tab.php',
'WPSEO_Metabox_Tab_Section' => $baseDir . '/deprecated/admin/class-metabox-tab-section.php',
'WPSEO_Multiple_Keywords_Modal' => $baseDir . '/admin/class-multiple-keywords-modal.php',
'WPSEO_MyYoast_Api_Request' => $baseDir . '/inc/class-my-yoast-api-request.php',
'WPSEO_MyYoast_Authentication_Exception' => $baseDir . '/inc/exceptions/class-myyoast-authentication-exception.php',
'WPSEO_MyYoast_Bad_Request_Exception' => $baseDir . '/inc/exceptions/class-myyoast-bad-request-exception.php',
'WPSEO_MyYoast_Invalid_JSON_Exception' => $baseDir . '/inc/exceptions/class-myyoast-invalid-json-exception.php',
'WPSEO_MyYoast_Proxy' => $baseDir . '/admin/class-my-yoast-proxy.php',
'WPSEO_MyYoast_Route' => $baseDir . '/admin/class-my-yoast-route.php',
'WPSEO_Network_Admin_Menu' => $baseDir . '/admin/menu/class-network-admin-menu.php',
'WPSEO_Notification_Handler' => $baseDir . '/admin/notifiers/interface-notification-handler.php',
'WPSEO_Object_Type' => $baseDir . '/inc/indexables/class-object-type.php',
'WPSEO_Object_Type_Validator' => $baseDir . '/inc/indexables/validators/class-object-type-validator.php',
'WPSEO_OnPage' => $baseDir . '/admin/onpage/class-onpage.php',
'WPSEO_OnPage_Option' => $baseDir . '/admin/onpage/class-onpage-option.php',
'WPSEO_OnPage_Request' => $baseDir . '/admin/onpage/class-onpage-request.php',
'WPSEO_OpenGraph' => $baseDir . '/frontend/class-opengraph.php',
'WPSEO_OpenGraph_Image' => $baseDir . '/frontend/class-opengraph-image.php',
'WPSEO_OpenGraph_OEmbed' => $baseDir . '/frontend/class-opengraph-oembed.php',
'WPSEO_OpenGraph_Validator' => $baseDir . '/inc/indexables/validators/class-opengraph-validator.php',
'WPSEO_Option' => $baseDir . '/inc/options/class-wpseo-option.php',
'WPSEO_Option_InternalLinks' => $baseDir . '/deprecated/class-wpseo-option-internallinks.php',
'WPSEO_Option_MS' => $baseDir . '/inc/options/class-wpseo-option-ms.php',
'WPSEO_Option_Permalinks' => $baseDir . '/deprecated/class-wpseo-option-permalinks.php',
'WPSEO_Option_Social' => $baseDir . '/inc/options/class-wpseo-option-social.php',
'WPSEO_Option_Tab' => $baseDir . '/admin/class-option-tab.php',
'WPSEO_Option_Tabs' => $baseDir . '/admin/class-option-tabs.php',
'WPSEO_Option_Tabs_Formatter' => $baseDir . '/admin/class-option-tabs-formatter.php',
'WPSEO_Option_Titles' => $baseDir . '/inc/options/class-wpseo-option-titles.php',
'WPSEO_Option_Wpseo' => $baseDir . '/inc/options/class-wpseo-option-wpseo.php',
'WPSEO_Options' => $baseDir . '/inc/options/class-wpseo-options.php',
'WPSEO_Paper_Presenter' => $baseDir . '/admin/class-paper-presenter.php',
'WPSEO_Plugin_Availability' => $baseDir . '/admin/class-plugin-availability.php',
'WPSEO_Plugin_Compatibility' => $baseDir . '/admin/class-plugin-compatibility.php',
'WPSEO_Plugin_Conflict' => $baseDir . '/admin/class-plugin-conflict.php',
'WPSEO_Plugin_Importer' => $baseDir . '/admin/import/plugins/class-abstract-plugin-importer.php',
'WPSEO_Plugin_Importers' => $baseDir . '/admin/import/plugins/class-importers.php',
'WPSEO_Post_Indexable' => $baseDir . '/inc/indexables/class-post-indexable.php',
'WPSEO_Post_Metabox_Formatter' => $baseDir . '/admin/formatter/class-post-metabox-formatter.php',
'WPSEO_Post_Object_Type' => $baseDir . '/inc/indexables/class-post-object-type.php',
'WPSEO_Post_Type' => $baseDir . '/inc/class-post-type.php',
'WPSEO_Post_Type_Archive_Notification_Handler' => $baseDir . '/admin/notifiers/class-post-type-archive-notification-handler.php',
'WPSEO_Post_Type_Sitemap_Provider' => $baseDir . '/inc/sitemaps/class-post-type-sitemap-provider.php',
'WPSEO_Premium_Popup' => $baseDir . '/admin/class-premium-popup.php',
'WPSEO_Premium_Upsell_Admin_Block' => $baseDir . '/admin/class-premium-upsell-admin-block.php',
'WPSEO_Primary_Term' => $baseDir . '/inc/class-wpseo-primary-term.php',
'WPSEO_Primary_Term_Admin' => $baseDir . '/admin/class-primary-term-admin.php',
'WPSEO_Product_Upsell_Notice' => $baseDir . '/admin/class-product-upsell-notice.php',
'WPSEO_REST_Request_Exception' => $baseDir . '/inc/exceptions/class-rest-request-exception.php',
'WPSEO_Rank' => $baseDir . '/inc/class-wpseo-rank.php',
'WPSEO_Recalculate' => $baseDir . '/admin/recalculate/class-recalculate.php',
'WPSEO_Recalculate_Posts' => $baseDir . '/admin/recalculate/class-recalculate-posts.php',
'WPSEO_Recalculate_Scores' => $baseDir . '/admin/class-recalculate-scores.php',
'WPSEO_Recalculate_Scores_Ajax' => $baseDir . '/admin/ajax/class-recalculate-scores-ajax.php',
'WPSEO_Recalculate_Terms' => $baseDir . '/admin/recalculate/class-recalculate-terms.php',
'WPSEO_Recalibration_Beta' => $baseDir . '/deprecated/class-recalibration-beta.php',
'WPSEO_Recalibration_Beta_Notification' => $baseDir . '/deprecated/class-recalibration-beta-notification.php',
'WPSEO_Register_Capabilities' => $baseDir . '/admin/capabilities/class-register-capabilities.php',
'WPSEO_Register_Roles' => $baseDir . '/admin/roles/class-register-roles.php',
'WPSEO_Remote_Request' => $baseDir . '/admin/class-remote-request.php',
'WPSEO_Remove_Reply_To_Com' => $baseDir . '/frontend/class-remove-reply-to-com.php',
'WPSEO_Replace_Vars' => $baseDir . '/inc/class-wpseo-replace-vars.php',
'WPSEO_Replacement_Variable' => $baseDir . '/inc/class-wpseo-replacement-variable.php',
'WPSEO_Replacevar_Editor' => $baseDir . '/admin/menu/class-replacevar-editor.php',
'WPSEO_Replacevar_Field' => $baseDir . '/admin/menu/class-replacevar-field.php',
'WPSEO_Rewrite' => $baseDir . '/inc/class-rewrite.php',
'WPSEO_Robots_Validator' => $baseDir . '/inc/indexables/validators/class-robots-validator.php',
'WPSEO_Role_Manager' => $baseDir . '/admin/roles/class-role-manager.php',
'WPSEO_Role_Manager_Factory' => $baseDir . '/admin/roles/class-role-manager-factory.php',
'WPSEO_Role_Manager_VIP' => $baseDir . '/admin/roles/class-role-manager-vip.php',
'WPSEO_Role_Manager_WP' => $baseDir . '/admin/roles/class-role-manager-wp.php',
'WPSEO_Ryte_Service' => $baseDir . '/admin/onpage/class-ryte-service.php',
'WPSEO_Schema' => $baseDir . '/frontend/schema/class-schema.php',
'WPSEO_Schema_Article' => $baseDir . '/frontend/schema/class-schema-article.php',
'WPSEO_Schema_Author' => $baseDir . '/frontend/schema/class-schema-author.php',
'WPSEO_Schema_Breadcrumb' => $baseDir . '/frontend/schema/class-schema-breadcrumb.php',
'WPSEO_Schema_Context' => $baseDir . '/frontend/schema/class-schema-context.php',
'WPSEO_Schema_FAQ' => $baseDir . '/frontend/schema/class-schema-faq.php',
'WPSEO_Schema_FAQ_Question_List' => $baseDir . '/frontend/schema/class-schema-faq-question-list.php',
'WPSEO_Schema_FAQ_Questions' => $baseDir . '/frontend/schema/class-schema-faq-questions.php',
'WPSEO_Schema_HowTo' => $baseDir . '/frontend/schema/class-schema-howto.php',
'WPSEO_Schema_IDs' => $baseDir . '/frontend/schema/class-schema-ids.php',
'WPSEO_Schema_Image' => $baseDir . '/frontend/schema/class-schema-image.php',
'WPSEO_Schema_MainImage' => $baseDir . '/frontend/schema/class-schema-main-image.php',
'WPSEO_Schema_Organization' => $baseDir . '/frontend/schema/class-schema-organization.php',
'WPSEO_Schema_Person' => $baseDir . '/frontend/schema/class-schema-person.php',
'WPSEO_Schema_Person_Upgrade_Notification' => $baseDir . '/admin/class-schema-person-upgrade-notification.php',
'WPSEO_Schema_Utils' => $baseDir . '/frontend/schema/class-schema-utils.php',
'WPSEO_Schema_WebPage' => $baseDir . '/frontend/schema/class-schema-webpage.php',
'WPSEO_Schema_Website' => $baseDir . '/frontend/schema/class-schema-website.php',
'WPSEO_Shortcode_Filter' => $baseDir . '/admin/ajax/class-shortcode-filter.php',
'WPSEO_Shortlinker' => $baseDir . '/inc/class-wpseo-shortlinker.php',
'WPSEO_Sitemap_Cache_Data' => $baseDir . '/inc/sitemaps/class-sitemap-cache-data.php',
'WPSEO_Sitemap_Cache_Data_Interface' => $baseDir . '/inc/sitemaps/interface-sitemap-cache-data.php',
'WPSEO_Sitemap_Image_Parser' => $baseDir . '/inc/sitemaps/class-sitemap-image-parser.php',
'WPSEO_Sitemap_Provider' => $baseDir . '/inc/sitemaps/interface-sitemap-provider.php',
'WPSEO_Sitemap_Timezone' => $baseDir . '/deprecated/inc/sitemaps/class-sitemap-timezone.php',
'WPSEO_Sitemaps' => $baseDir . '/inc/sitemaps/class-sitemaps.php',
'WPSEO_Sitemaps_Admin' => $baseDir . '/inc/sitemaps/class-sitemaps-admin.php',
'WPSEO_Sitemaps_Cache' => $baseDir . '/inc/sitemaps/class-sitemaps-cache.php',
'WPSEO_Sitemaps_Cache_Validator' => $baseDir . '/inc/sitemaps/class-sitemaps-cache-validator.php',
'WPSEO_Sitemaps_Renderer' => $baseDir . '/inc/sitemaps/class-sitemaps-renderer.php',
'WPSEO_Sitemaps_Router' => $baseDir . '/inc/sitemaps/class-sitemaps-router.php',
'WPSEO_Slug_Change_Watcher' => $baseDir . '/admin/watchers/class-slug-change-watcher.php',
'WPSEO_Social_Admin' => $baseDir . '/admin/class-social-admin.php',
'WPSEO_Statistic_Integration' => $baseDir . '/admin/statistics/class-statistics-integration.php',
'WPSEO_Statistics' => $baseDir . '/inc/class-wpseo-statistics.php',
'WPSEO_Statistics_Service' => $baseDir . '/admin/statistics/class-statistics-service.php',
'WPSEO_Structured_Data_Blocks' => $baseDir . '/inc/class-structured-data-blocks.php',
'WPSEO_Submenu_Capability_Normalize' => $baseDir . '/admin/menu/class-submenu-capability-normalize.php',
'WPSEO_Submenu_Hider' => $baseDir . '/deprecated/class-submenu-hider.php',
'WPSEO_Suggested_Plugins' => $baseDir . '/admin/class-suggested-plugins.php',
'WPSEO_Taxonomy' => $baseDir . '/admin/taxonomy/class-taxonomy.php',
'WPSEO_Taxonomy_Columns' => $baseDir . '/admin/taxonomy/class-taxonomy-columns.php',
'WPSEO_Taxonomy_Content_Fields' => $baseDir . '/admin/taxonomy/class-taxonomy-content-fields.php',
'WPSEO_Taxonomy_Fields' => $baseDir . '/admin/taxonomy/class-taxonomy-fields.php',
'WPSEO_Taxonomy_Fields_Presenter' => $baseDir . '/admin/taxonomy/class-taxonomy-fields-presenter.php',
'WPSEO_Taxonomy_Meta' => $baseDir . '/inc/options/class-wpseo-taxonomy-meta.php',
'WPSEO_Taxonomy_Metabox' => $baseDir . '/admin/taxonomy/class-taxonomy-metabox.php',
'WPSEO_Taxonomy_Settings_Fields' => $baseDir . '/admin/taxonomy/class-taxonomy-settings-fields.php',
'WPSEO_Taxonomy_Sitemap_Provider' => $baseDir . '/inc/sitemaps/class-taxonomy-sitemap-provider.php',
'WPSEO_Taxonomy_Social_Fields' => $baseDir . '/admin/taxonomy/class-taxonomy-social-fields.php',
'WPSEO_Term_Indexable' => $baseDir . '/inc/indexables/class-term-indexable.php',
'WPSEO_Term_Metabox_Formatter' => $baseDir . '/admin/formatter/class-term-metabox-formatter.php',
'WPSEO_Term_Object_Type' => $baseDir . '/inc/indexables/class-term-object-type.php',
'WPSEO_Tracking' => $baseDir . '/admin/tracking/class-tracking.php',
'WPSEO_Tracking_Default_Data' => $baseDir . '/admin/tracking/class-tracking-default-data.php',
'WPSEO_Tracking_Plugin_Data' => $baseDir . '/admin/tracking/class-tracking-plugin-data.php',
'WPSEO_Tracking_Server_Data' => $baseDir . '/admin/tracking/class-tracking-server-data.php',
'WPSEO_Tracking_Settings_Data' => $baseDir . '/admin/tracking/class-tracking-settings-data.php',
'WPSEO_Tracking_Theme_Data' => $baseDir . '/admin/tracking/class-tracking-theme-data.php',
'WPSEO_Twitter' => $baseDir . '/frontend/class-twitter.php',
'WPSEO_Twitter_Validator' => $baseDir . '/inc/indexables/validators/class-twitter-validator.php',
'WPSEO_Upgrade' => $baseDir . '/inc/class-upgrade.php',
'WPSEO_Upgrade_History' => $baseDir . '/inc/class-upgrade-history.php',
'WPSEO_Utils' => $baseDir . '/inc/class-wpseo-utils.php',
'WPSEO_Validator' => $baseDir . '/inc/class-wpseo-validator.php',
'WPSEO_WooCommerce_Shop_Page' => $baseDir . '/frontend/class-woocommerce-shop-page.php',
'WPSEO_WordPress_AJAX_Integration' => $baseDir . '/inc/interface-wpseo-wordpress-ajax-integration.php',
'WPSEO_WordPress_Integration' => $baseDir . '/inc/interface-wpseo-wordpress-integration.php',
'WPSEO_Yoast_Columns' => $baseDir . '/admin/class-yoast-columns.php',
'YoastSEO_Vendor\\GuzzleHttp\\Client' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Client.php',
'YoastSEO_Vendor\\GuzzleHttp\\ClientInterface' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/ClientInterface.php',
'YoastSEO_Vendor\\GuzzleHttp\\Cookie\\CookieJar' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Cookie/CookieJar.php',
'YoastSEO_Vendor\\GuzzleHttp\\Cookie\\CookieJarInterface' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Cookie/CookieJarInterface.php',
'YoastSEO_Vendor\\GuzzleHttp\\Cookie\\FileCookieJar' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Cookie/FileCookieJar.php',
'YoastSEO_Vendor\\GuzzleHttp\\Cookie\\SessionCookieJar' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Cookie/SessionCookieJar.php',
'YoastSEO_Vendor\\GuzzleHttp\\Cookie\\SetCookie' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Cookie/SetCookie.php',
'YoastSEO_Vendor\\GuzzleHttp\\Exception\\BadResponseException' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/BadResponseException.php',
'YoastSEO_Vendor\\GuzzleHttp\\Exception\\ClientException' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/ClientException.php',
'YoastSEO_Vendor\\GuzzleHttp\\Exception\\ConnectException' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/ConnectException.php',
'YoastSEO_Vendor\\GuzzleHttp\\Exception\\GuzzleException' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/GuzzleException.php',
'YoastSEO_Vendor\\GuzzleHttp\\Exception\\RequestException' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/RequestException.php',
'YoastSEO_Vendor\\GuzzleHttp\\Exception\\SeekException' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/SeekException.php',
'YoastSEO_Vendor\\GuzzleHttp\\Exception\\ServerException' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/ServerException.php',
'YoastSEO_Vendor\\GuzzleHttp\\Exception\\TooManyRedirectsException' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/TooManyRedirectsException.php',
'YoastSEO_Vendor\\GuzzleHttp\\Exception\\TransferException' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/TransferException.php',
'YoastSEO_Vendor\\GuzzleHttp\\HandlerStack' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/HandlerStack.php',
'YoastSEO_Vendor\\GuzzleHttp\\Handler\\CurlFactory' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/CurlFactory.php',
'YoastSEO_Vendor\\GuzzleHttp\\Handler\\CurlFactoryInterface' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/CurlFactoryInterface.php',
'YoastSEO_Vendor\\GuzzleHttp\\Handler\\CurlHandler' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/CurlHandler.php',
'YoastSEO_Vendor\\GuzzleHttp\\Handler\\CurlMultiHandler' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php',
'YoastSEO_Vendor\\GuzzleHttp\\Handler\\EasyHandle' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/EasyHandle.php',
'YoastSEO_Vendor\\GuzzleHttp\\Handler\\MockHandler' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/MockHandler.php',
'YoastSEO_Vendor\\GuzzleHttp\\Handler\\Proxy' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/Proxy.php',
'YoastSEO_Vendor\\GuzzleHttp\\Handler\\StreamHandler' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/StreamHandler.php',
'YoastSEO_Vendor\\GuzzleHttp\\MessageFormatter' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/MessageFormatter.php',
'YoastSEO_Vendor\\GuzzleHttp\\Middleware' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Middleware.php',
'YoastSEO_Vendor\\GuzzleHttp\\Pool' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/Pool.php',
'YoastSEO_Vendor\\GuzzleHttp\\PrepareBodyMiddleware' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php',
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\AggregateException' => $baseDir . '/vendor_prefixed/guzzlehttp/promises/src/AggregateException.php',
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\CancellationException' => $baseDir . '/vendor_prefixed/guzzlehttp/promises/src/CancellationException.php',
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\Coroutine' => $baseDir . '/vendor_prefixed/guzzlehttp/promises/src/Coroutine.php',
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\EachPromise' => $baseDir . '/vendor_prefixed/guzzlehttp/promises/src/EachPromise.php',
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\FulfilledPromise' => $baseDir . '/vendor_prefixed/guzzlehttp/promises/src/FulfilledPromise.php',
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\Promise' => $baseDir . '/vendor_prefixed/guzzlehttp/promises/src/Promise.php',
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\PromiseInterface' => $baseDir . '/vendor_prefixed/guzzlehttp/promises/src/PromiseInterface.php',
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\PromisorInterface' => $baseDir . '/vendor_prefixed/guzzlehttp/promises/src/PromisorInterface.php',
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\RejectedPromise' => $baseDir . '/vendor_prefixed/guzzlehttp/promises/src/RejectedPromise.php',
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\RejectionException' => $baseDir . '/vendor_prefixed/guzzlehttp/promises/src/RejectionException.php',
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\TaskQueue' => $baseDir . '/vendor_prefixed/guzzlehttp/promises/src/TaskQueue.php',
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\TaskQueueInterface' => $baseDir . '/vendor_prefixed/guzzlehttp/promises/src/TaskQueueInterface.php',
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\AppendStream' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/AppendStream.php',
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\BufferStream' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/BufferStream.php',
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\CachingStream' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/CachingStream.php',
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\DroppingStream' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/DroppingStream.php',
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\FnStream' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/FnStream.php',
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\InflateStream' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/InflateStream.php',
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\LazyOpenStream' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/LazyOpenStream.php',
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\LimitStream' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/LimitStream.php',
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\MessageTrait' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/MessageTrait.php',
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\MultipartStream' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/MultipartStream.php',
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\NoSeekStream' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/NoSeekStream.php',
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\PumpStream' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/PumpStream.php',
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\Request' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/Request.php',
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\Response' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/Response.php',
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\Rfc7230' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/Rfc7230.php',
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\ServerRequest' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/ServerRequest.php',
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\Stream' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/Stream.php',
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\StreamDecoratorTrait' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/StreamDecoratorTrait.php',
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\StreamWrapper' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/StreamWrapper.php',
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\UploadedFile' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/UploadedFile.php',
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\Uri' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/Uri.php',
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\UriNormalizer' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/UriNormalizer.php',
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\UriResolver' => $baseDir . '/vendor_prefixed/guzzlehttp/psr7/src/UriResolver.php',
'YoastSEO_Vendor\\GuzzleHttp\\RedirectMiddleware' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/RedirectMiddleware.php',
'YoastSEO_Vendor\\GuzzleHttp\\RequestOptions' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/RequestOptions.php',
'YoastSEO_Vendor\\GuzzleHttp\\RetryMiddleware' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/RetryMiddleware.php',
'YoastSEO_Vendor\\GuzzleHttp\\TransferStats' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/TransferStats.php',
'YoastSEO_Vendor\\GuzzleHttp\\UriTemplate' => $baseDir . '/vendor_prefixed/guzzlehttp/guzzle/src/UriTemplate.php',
'YoastSEO_Vendor\\IdiormMethodMissingException' => $baseDir . '/vendor_prefixed/j4mie/idiorm/idiorm.php',
'YoastSEO_Vendor\\IdiormResultSet' => $baseDir . '/vendor_prefixed/j4mie/idiorm/idiorm.php',
'YoastSEO_Vendor\\IdiormString' => $baseDir . '/vendor_prefixed/j4mie/idiorm/idiorm.php',
'YoastSEO_Vendor\\IdiormStringException' => $baseDir . '/vendor_prefixed/j4mie/idiorm/idiorm.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Grant\\AbstractGrant' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/Grant/AbstractGrant.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Grant\\AuthorizationCode' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/Grant/AuthorizationCode.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Grant\\ClientCredentials' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/Grant/ClientCredentials.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Grant\\Exception\\InvalidGrantException' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/Grant/Exception/InvalidGrantException.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Grant\\GrantFactory' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/Grant/GrantFactory.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Grant\\Password' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/Grant/Password.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Grant\\RefreshToken' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/Grant/RefreshToken.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\OptionProvider\\HttpBasicAuthOptionProvider' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/OptionProvider/HttpBasicAuthOptionProvider.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\OptionProvider\\OptionProviderInterface' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/OptionProvider/OptionProviderInterface.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\OptionProvider\\PostAuthOptionProvider' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/OptionProvider/PostAuthOptionProvider.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Provider\\AbstractProvider' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/Provider/AbstractProvider.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Provider\\Exception\\IdentityProviderException' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/Provider/Exception/IdentityProviderException.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Provider\\GenericProvider' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/Provider/GenericProvider.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Provider\\GenericResourceOwner' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/Provider/GenericResourceOwner.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Provider\\ResourceOwnerInterface' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/Provider/ResourceOwnerInterface.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Token\\AccessToken' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/Token/AccessToken.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Token\\AccessTokenInterface' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/Token/AccessTokenInterface.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Token\\ResourceOwnerAccessTokenInterface' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/Token/ResourceOwnerAccessTokenInterface.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Tool\\ArrayAccessorTrait' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/Tool/ArrayAccessorTrait.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Tool\\BearerAuthorizationTrait' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/Tool/BearerAuthorizationTrait.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Tool\\GuardedPropertyTrait' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/Tool/GuardedPropertyTrait.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Tool\\MacAuthorizationTrait' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/Tool/MacAuthorizationTrait.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Tool\\ProviderRedirectTrait' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/Tool/ProviderRedirectTrait.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Tool\\QueryBuilderTrait' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/Tool/QueryBuilderTrait.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Tool\\RequestFactory' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/Tool/RequestFactory.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Tool\\RequiredParameterTrait' => $baseDir . '/vendor_prefixed/league/oauth2-client/src/Tool/RequiredParameterTrait.php',
'YoastSEO_Vendor\\ORM' => $baseDir . '/vendor_prefixed/j4mie/idiorm/idiorm.php',
'YoastSEO_Vendor\\Psr\\Container\\ContainerExceptionInterface' => $baseDir . '/vendor_prefixed/psr/container/src/ContainerExceptionInterface.php',
'YoastSEO_Vendor\\Psr\\Container\\ContainerInterface' => $baseDir . '/vendor_prefixed/psr/container/src/ContainerInterface.php',
'YoastSEO_Vendor\\Psr\\Container\\NotFoundExceptionInterface' => $baseDir . '/vendor_prefixed/psr/container/src/NotFoundExceptionInterface.php',
'YoastSEO_Vendor\\Psr\\Http\\Message\\MessageInterface' => $baseDir . '/vendor_prefixed/psr/http-message/src/MessageInterface.php',
'YoastSEO_Vendor\\Psr\\Http\\Message\\RequestInterface' => $baseDir . '/vendor_prefixed/psr/http-message/src/RequestInterface.php',
'YoastSEO_Vendor\\Psr\\Http\\Message\\ResponseInterface' => $baseDir . '/vendor_prefixed/psr/http-message/src/ResponseInterface.php',
'YoastSEO_Vendor\\Psr\\Http\\Message\\ServerRequestInterface' => $baseDir . '/vendor_prefixed/psr/http-message/src/ServerRequestInterface.php',
'YoastSEO_Vendor\\Psr\\Http\\Message\\StreamInterface' => $baseDir . '/vendor_prefixed/psr/http-message/src/StreamInterface.php',
'YoastSEO_Vendor\\Psr\\Http\\Message\\UploadedFileInterface' => $baseDir . '/vendor_prefixed/psr/http-message/src/UploadedFileInterface.php',
'YoastSEO_Vendor\\Psr\\Http\\Message\\UriInterface' => $baseDir . '/vendor_prefixed/psr/http-message/src/UriInterface.php',
'YoastSEO_Vendor\\Psr\\Log\\AbstractLogger' => $baseDir . '/vendor_prefixed/psr/log/Psr/Log/AbstractLogger.php',
'YoastSEO_Vendor\\Psr\\Log\\InvalidArgumentException' => $baseDir . '/vendor_prefixed/psr/log/Psr/Log/InvalidArgumentException.php',
'YoastSEO_Vendor\\Psr\\Log\\LogLevel' => $baseDir . '/vendor_prefixed/psr/log/Psr/Log/LogLevel.php',
'YoastSEO_Vendor\\Psr\\Log\\LoggerAwareInterface' => $baseDir . '/vendor_prefixed/psr/log/Psr/Log/LoggerAwareInterface.php',
'YoastSEO_Vendor\\Psr\\Log\\LoggerAwareTrait' => $baseDir . '/vendor_prefixed/psr/log/Psr/Log/LoggerAwareTrait.php',
'YoastSEO_Vendor\\Psr\\Log\\LoggerInterface' => $baseDir . '/vendor_prefixed/psr/log/Psr/Log/LoggerInterface.php',
'YoastSEO_Vendor\\Psr\\Log\\LoggerTrait' => $baseDir . '/vendor_prefixed/psr/log/Psr/Log/LoggerTrait.php',
'YoastSEO_Vendor\\Psr\\Log\\NullLogger' => $baseDir . '/vendor_prefixed/psr/log/Psr/Log/NullLogger.php',
'YoastSEO_Vendor\\Ruckusing_Adapter_Base' => $baseDir . '/vendor_prefixed/ruckusing/lib/Ruckusing/Adapter/Base.php',
'YoastSEO_Vendor\\Ruckusing_Adapter_ColumnDefinition' => $baseDir . '/vendor_prefixed/ruckusing/lib/Ruckusing/Adapter/ColumnDefinition.php',
'YoastSEO_Vendor\\Ruckusing_Adapter_Interface' => $baseDir . '/vendor_prefixed/ruckusing/lib/Ruckusing/Adapter/Interface.php',
'YoastSEO_Vendor\\Ruckusing_Adapter_MySQL_Base' => $baseDir . '/vendor_prefixed/ruckusing/lib/Ruckusing/Adapter/MySQL/Base.php',
'YoastSEO_Vendor\\Ruckusing_Adapter_MySQL_TableDefinition' => $baseDir . '/vendor_prefixed/ruckusing/lib/Ruckusing/Adapter/MySQL/TableDefinition.php',
'YoastSEO_Vendor\\Ruckusing_Adapter_PgSQL_Base' => $baseDir . '/vendor_prefixed/ruckusing/lib/Ruckusing/Adapter/PgSQL/Base.php',
'YoastSEO_Vendor\\Ruckusing_Adapter_PgSQL_TableDefinition' => $baseDir . '/vendor_prefixed/ruckusing/lib/Ruckusing/Adapter/PgSQL/TableDefinition.php',
'YoastSEO_Vendor\\Ruckusing_Adapter_Sqlite3_Base' => $baseDir . '/vendor_prefixed/ruckusing/lib/Ruckusing/Adapter/Sqlite3/Base.php',
'YoastSEO_Vendor\\Ruckusing_Adapter_Sqlite3_TableDefinition' => $baseDir . '/vendor_prefixed/ruckusing/lib/Ruckusing/Adapter/Sqlite3/TableDefinition.php',
'YoastSEO_Vendor\\Ruckusing_Adapter_TableDefinition' => $baseDir . '/vendor_prefixed/ruckusing/lib/Ruckusing/Adapter/TableDefinition.php',
'YoastSEO_Vendor\\Ruckusing_BaseMigration' => $baseDir . '/vendor_prefixed/ruckusing/lib/Ruckusing/Migration/Base.php',
'YoastSEO_Vendor\\Ruckusing_Exception' => $baseDir . '/vendor_prefixed/ruckusing/lib/Ruckusing/Exception.php',
'YoastSEO_Vendor\\Ruckusing_FrameworkRunner' => $baseDir . '/vendor_prefixed/ruckusing/lib/Ruckusing/FrameworkRunner.php',
'YoastSEO_Vendor\\Ruckusing_Migration_Base' => $baseDir . '/vendor_prefixed/ruckusing/lib/Ruckusing/Migration/Base.php',
'YoastSEO_Vendor\\Ruckusing_Task_Base' => $baseDir . '/vendor_prefixed/ruckusing/lib/Ruckusing/Task/Base.php',
'YoastSEO_Vendor\\Ruckusing_Task_Interface' => $baseDir . '/vendor_prefixed/ruckusing/lib/Ruckusing/Task/Interface.php',
'YoastSEO_Vendor\\Ruckusing_Task_Manager' => $baseDir . '/vendor_prefixed/ruckusing/lib/Ruckusing/Task/Manager.php',
'YoastSEO_Vendor\\Ruckusing_Util_Logger' => $baseDir . '/vendor_prefixed/ruckusing/lib/Ruckusing/Util/Logger.php',
'YoastSEO_Vendor\\Ruckusing_Util_Migrator' => $baseDir . '/vendor_prefixed/ruckusing/lib/Ruckusing/Util/Migrator.php',
'YoastSEO_Vendor\\Ruckusing_Util_Naming' => $baseDir . '/vendor_prefixed/ruckusing/lib/Ruckusing/Util/Naming.php',
'YoastSEO_Vendor\\Symfony\\Component\\DependencyInjection\\Argument\\RewindableGenerator' => $baseDir . '/vendor_prefixed/symfony/dependency-injection/Argument/RewindableGenerator.php',
'YoastSEO_Vendor\\Symfony\\Component\\DependencyInjection\\Container' => $baseDir . '/vendor_prefixed/symfony/dependency-injection/Container.php',
'YoastSEO_Vendor\\Symfony\\Component\\DependencyInjection\\ContainerInterface' => $baseDir . '/vendor_prefixed/symfony/dependency-injection/ContainerInterface.php',
'YoastSEO_Vendor\\Symfony\\Component\\DependencyInjection\\Exception\\EnvNotFoundException' => $baseDir . '/vendor_prefixed/symfony/dependency-injection/Exception/EnvNotFoundException.php',
'YoastSEO_Vendor\\Symfony\\Component\\DependencyInjection\\Exception\\ExceptionInterface' => $baseDir . '/vendor_prefixed/symfony/dependency-injection/Exception/ExceptionInterface.php',
'YoastSEO_Vendor\\Symfony\\Component\\DependencyInjection\\Exception\\InvalidArgumentException' => $baseDir . '/vendor_prefixed/symfony/dependency-injection/Exception/InvalidArgumentException.php',
'YoastSEO_Vendor\\Symfony\\Component\\DependencyInjection\\Exception\\LogicException' => $baseDir . '/vendor_prefixed/symfony/dependency-injection/Exception/LogicException.php',
'YoastSEO_Vendor\\Symfony\\Component\\DependencyInjection\\Exception\\ParameterCircularReferenceException' => $baseDir . '/vendor_prefixed/symfony/dependency-injection/Exception/ParameterCircularReferenceException.php',
'YoastSEO_Vendor\\Symfony\\Component\\DependencyInjection\\Exception\\RuntimeException' => $baseDir . '/vendor_prefixed/symfony/dependency-injection/Exception/RuntimeException.php',
'YoastSEO_Vendor\\Symfony\\Component\\DependencyInjection\\Exception\\ServiceCircularReferenceException' => $baseDir . '/vendor_prefixed/symfony/dependency-injection/Exception/ServiceCircularReferenceException.php',
'YoastSEO_Vendor\\Symfony\\Component\\DependencyInjection\\Exception\\ServiceNotFoundException' => $baseDir . '/vendor_prefixed/symfony/dependency-injection/Exception/ServiceNotFoundException.php',
'YoastSEO_Vendor\\Symfony\\Component\\DependencyInjection\\ParameterBag\\EnvPlaceholderParameterBag' => $baseDir . '/vendor_prefixed/symfony/dependency-injection/ParameterBag/EnvPlaceholderParameterBag.php',
'YoastSEO_Vendor\\Symfony\\Component\\DependencyInjection\\ParameterBag\\FrozenParameterBag' => $baseDir . '/vendor_prefixed/symfony/dependency-injection/ParameterBag/FrozenParameterBag.php',
'YoastSEO_Vendor\\Symfony\\Component\\DependencyInjection\\ParameterBag\\ParameterBag' => $baseDir . '/vendor_prefixed/symfony/dependency-injection/ParameterBag/ParameterBag.php',
'YoastSEO_Vendor\\Symfony\\Component\\DependencyInjection\\ParameterBag\\ParameterBagInterface' => $baseDir . '/vendor_prefixed/symfony/dependency-injection/ParameterBag/ParameterBagInterface.php',
'YoastSEO_Vendor\\Symfony\\Component\\DependencyInjection\\ResettableContainerInterface' => $baseDir . '/vendor_prefixed/symfony/dependency-injection/ResettableContainerInterface.php',
'YoastSEO_Vendor\\Task_Db_Generate' => $baseDir . '/vendor_prefixed/ruckusing/lib/Task/Db/Generate.php',
'YoastSEO_Vendor\\Task_Db_Migrate' => $baseDir . '/vendor_prefixed/ruckusing/lib/Task/Db/Migrate.php',
'YoastSEO_Vendor\\Task_Db_Schema' => $baseDir . '/vendor_prefixed/ruckusing/lib/Task/Db/Schema.php',
'YoastSEO_Vendor\\Task_Db_Setup' => $baseDir . '/vendor_prefixed/ruckusing/lib/Task/Db/Setup.php',
'YoastSEO_Vendor\\Task_Db_Status' => $baseDir . '/vendor_prefixed/ruckusing/lib/Task/Db/Status.php',
'YoastSEO_Vendor\\Task_Db_Version' => $baseDir . '/vendor_prefixed/ruckusing/lib/Task/Db/Version.php',
'Yoast\\WP\\SEO\\Builders\\Indexable_Author_Builder' => $baseDir . '/src/builders/indexable-author-builder.php',
'Yoast\\WP\\SEO\\Builders\\Indexable_Post_Builder' => $baseDir . '/src/builders/indexable-post-builder.php',
'Yoast\\WP\\SEO\\Builders\\Indexable_Term_Builder' => $baseDir . '/src/builders/indexable-term-builder.php',
'Yoast\\WP\\SEO\\Conditionals\\Admin_Conditional' => $baseDir . '/src/conditionals/admin-conditional.php',
'Yoast\\WP\\SEO\\Conditionals\\Conditional' => $baseDir . '/src/conditionals/conditional.php',
'Yoast\\WP\\SEO\\Conditionals\\Feature_Flag_Conditional' => $baseDir . '/src/conditionals/feature-flag-conditional.php',
'Yoast\\WP\\SEO\\Conditionals\\Indexables_Feature_Flag_Conditional' => $baseDir . '/src/conditionals/indexables-feature-flag-conditional.php',
'Yoast\\WP\\SEO\\Conditionals\\No_Conditionals' => $baseDir . '/src/conditionals/no-conditionals.php',
'Yoast\\WP\\SEO\\Config\\Dependency_Management' => $baseDir . '/src/config/dependency-management.php',
'Yoast\\WP\\SEO\\Database\\Database_Setup' => $baseDir . '/src/database/database-setup.php',
'Yoast\\WP\\SEO\\Database\\Migration_Runner' => $baseDir . '/src/database/migration-runner.php',
'Yoast\\WP\\SEO\\Database\\Ruckusing_Framework' => $baseDir . '/src/database/ruckusing-framework.php',
'Yoast\\WP\\SEO\\Exceptions\\Missing_Method' => $baseDir . '/src/exceptions/missing-method.php',
'Yoast\\WP\\SEO\\Generated\\Cached_Container' => $baseDir . '/src/generated/container.php',
'Yoast\\WP\\SEO\\Helpers\\Author_Archive_Helper' => $baseDir . '/src/helpers/author-archive-helper.php',
'Yoast\\WP\\SEO\\Helpers\\Home_Url_Helper' => $baseDir . '/src/helpers/home-url-helper.php',
'Yoast\\WP\\SEO\\Loader' => $baseDir . '/src/loader.php',
'Yoast\\WP\\SEO\\Loggers\\Logger' => $baseDir . '/src/loggers/logger.php',
'Yoast\\WP\\SEO\\Loggers\\Migration_Logger' => $baseDir . '/src/loggers/migration-logger.php',
'Yoast\\WP\\SEO\\Models\\Indexable' => $baseDir . '/src/models/indexable.php',
'Yoast\\WP\\SEO\\Models\\Indexable_Extension' => $baseDir . '/src/models/indexable-extension.php',
'Yoast\\WP\\SEO\\Models\\Primary_Term' => $baseDir . '/src/models/primary-term.php',
'Yoast\\WP\\SEO\\Models\\SEO_Links' => $baseDir . '/src/models/seo-links.php',
'Yoast\\WP\\SEO\\Models\\SEO_Meta' => $baseDir . '/src/models/seo-meta.php',
'Yoast\\WP\\SEO\\ORM\\ORMWrapper' => $baseDir . '/src/orm/yoast-orm-wrapper.php',
'Yoast\\WP\\SEO\\ORM\\Yoast_Model' => $baseDir . '/src/orm/yoast-model.php',
'Yoast\\WP\\SEO\\Oauth\\Client' => $baseDir . '/src/oauth/client.php',
'Yoast\\WP\\SEO\\Repositories\\Indexable_Repository' => $baseDir . '/src/repositories/indexable-repository.php',
'Yoast\\WP\\SEO\\Repositories\\Primary_Term_Repository' => $baseDir . '/src/repositories/primary-term-repository.php',
'Yoast\\WP\\SEO\\Repositories\\SEO_Links_Repository' => $baseDir . '/src/repositories/seo-links-repository.php',
'Yoast\\WP\\SEO\\Repositories\\SEO_Meta_Repository' => $baseDir . '/src/repositories/seo-meta-repository.php',
'Yoast\\WP\\SEO\\Watchers\\Indexable_Author_Watcher' => $baseDir . '/src/watchers/indexable-author-watcher.php',
'Yoast\\WP\\SEO\\Watchers\\Indexable_Post_Watcher' => $baseDir . '/src/watchers/indexable-post-watcher.php',
'Yoast\\WP\\SEO\\Watchers\\Indexable_Term_Watcher' => $baseDir . '/src/watchers/indexable-term-watcher.php',
'Yoast\\WP\\SEO\\Watchers\\Primary_Term_Watcher' => $baseDir . '/src/watchers/primary-term-watcher.php',
'Yoast\\WP\\SEO\\WordPress\\Initializer' => $baseDir . '/src/wordpress/initializer.php',
'Yoast\\WP\\SEO\\WordPress\\Integration' => $baseDir . '/src/wordpress/integration.php',
'Yoast\\WP\\SEO\\WordPress\\Loadable' => $baseDir . '/src/wordpress/loadable.php',
'Yoast\\WP\\SEO\\WordPress\\Wrapper' => $baseDir . '/src/wordpress/wrapper.php',
'Yoast_API_Request' => $vendorDir . '/yoast/license-manager/class-api-request.php',
'Yoast_Alerts' => $baseDir . '/admin/class-yoast-alerts.php',
'Yoast_Dashboard_Widget' => $baseDir . '/admin/class-yoast-dashboard-widget.php',
'Yoast_Dismissable_Notice_Ajax' => $baseDir . '/admin/ajax/class-yoast-dismissable-notice.php',
'Yoast_Feature_Toggle' => $baseDir . '/admin/views/class-yoast-feature-toggle.php',
'Yoast_Feature_Toggles' => $baseDir . '/admin/views/class-yoast-feature-toggles.php',
'Yoast_Form' => $baseDir . '/admin/class-yoast-form.php',
'Yoast_Form_Element' => $baseDir . '/admin/views/interface-yoast-form-element.php',
'Yoast_Form_Fieldset' => $baseDir . '/deprecated/class-yoast-form-fieldset.php',
'Yoast_I18n_WordPressOrg_v3' => $vendorDir . '/yoast/i18n-module/src/i18n-wordpressorg-v3.php',
'Yoast_I18n_v3' => $vendorDir . '/yoast/i18n-module/src/i18n-v3.php',
'Yoast_Input_Select' => $baseDir . '/admin/views/class-yoast-input-select.php',
'Yoast_Input_Validation' => $baseDir . '/admin/class-yoast-input-validation.php',
'Yoast_License_Manager' => $vendorDir . '/yoast/license-manager/class-license-manager.php',
'Yoast_Modal' => $baseDir . '/deprecated/class-yoast-modal.php',
'Yoast_Network_Admin' => $baseDir . '/admin/class-yoast-network-admin.php',
'Yoast_Network_Settings_API' => $baseDir . '/admin/class-yoast-network-settings-api.php',
'Yoast_Notification' => $baseDir . '/admin/class-yoast-notification.php',
'Yoast_Notification_Center' => $baseDir . '/admin/class-yoast-notification-center.php',
'Yoast_OnPage_Ajax' => $baseDir . '/admin/ajax/class-yoast-onpage-ajax.php',
'Yoast_Plugin_Conflict' => $baseDir . '/admin/class-yoast-plugin-conflict.php',
'Yoast_Plugin_Conflict_Ajax' => $baseDir . '/admin/ajax/class-yoast-plugin-conflict-ajax.php',
'Yoast_Plugin_License_Manager' => $vendorDir . '/yoast/license-manager/class-plugin-license-manager.php',
'Yoast_Plugin_Update_Manager' => $vendorDir . '/yoast/license-manager/class-plugin-update-manager.php',
'Yoast_Product' => $vendorDir . '/yoast/license-manager/class-product.php',
'Yoast_Theme_License_Manager' => $vendorDir . '/yoast/license-manager/class-theme-license-manager.php',
'Yoast_Theme_Update_Manager' => $vendorDir . '/yoast/license-manager/class-theme-update-manager.php',
'Yoast_Update_Manager' => $vendorDir . '/yoast/license-manager/class-update-manager.php',
'Yoast_View_Utils' => $baseDir . '/admin/views/class-view-utils.php',
'iYoast_License_Manager' => $vendorDir . '/yoast/license-manager/class-license-manager.php',
);

View File

@@ -0,0 +1,9 @@
<?php
// autoload_namespaces.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
);

View File

@@ -0,0 +1,10 @@
<?php
// autoload_psr4.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
'Composer\\Installers\\' => array($vendorDir . '/composer/installers/src/Composer/Installers'),
);

View File

@@ -0,0 +1,52 @@
<?php
// autoload_real.php @generated by Composer
class ComposerAutoloaderInita410e01cd5a7f541b8842d66f197f91f
{
private static $loader;
public static function loadClassLoader($class)
{
if ('Composer\Autoload\ClassLoader' === $class) {
require __DIR__ . '/ClassLoader.php';
}
}
public static function getLoader()
{
if (null !== self::$loader) {
return self::$loader;
}
spl_autoload_register(array('ComposerAutoloaderInita410e01cd5a7f541b8842d66f197f91f', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
spl_autoload_unregister(array('ComposerAutoloaderInita410e01cd5a7f541b8842d66f197f91f', 'loadClassLoader'));
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
if ($useStaticLoader) {
require_once __DIR__ . '/autoload_static.php';
call_user_func(\Composer\Autoload\ComposerStaticInita410e01cd5a7f541b8842d66f197f91f::getInitializer($loader));
} else {
$map = require __DIR__ . '/autoload_namespaces.php';
foreach ($map as $namespace => $path) {
$loader->set($namespace, $path);
}
$map = require __DIR__ . '/autoload_psr4.php';
foreach ($map as $namespace => $path) {
$loader->setPsr4($namespace, $path);
}
$classMap = require __DIR__ . '/autoload_classmap.php';
if ($classMap) {
$loader->addClassMap($classMap);
}
}
$loader->register(true);
return $loader;
}
}

View File

@@ -0,0 +1,714 @@
<?php
// autoload_static.php @generated by Composer
namespace Composer\Autoload;
class ComposerStaticInita410e01cd5a7f541b8842d66f197f91f
{
public static $prefixLengthsPsr4 = array (
'C' =>
array (
'Composer\\Installers\\' => 20,
),
);
public static $prefixDirsPsr4 = array (
'Composer\\Installers\\' =>
array (
0 => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers',
),
);
public static $classMap = array (
'Composer\\Installers\\AglInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/AglInstaller.php',
'Composer\\Installers\\AimeosInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/AimeosInstaller.php',
'Composer\\Installers\\AnnotateCmsInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/AnnotateCmsInstaller.php',
'Composer\\Installers\\AsgardInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/AsgardInstaller.php',
'Composer\\Installers\\AttogramInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/AttogramInstaller.php',
'Composer\\Installers\\BaseInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/BaseInstaller.php',
'Composer\\Installers\\BitrixInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/BitrixInstaller.php',
'Composer\\Installers\\BonefishInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/BonefishInstaller.php',
'Composer\\Installers\\CakePHPInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/CakePHPInstaller.php',
'Composer\\Installers\\ChefInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ChefInstaller.php',
'Composer\\Installers\\CiviCrmInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/CiviCrmInstaller.php',
'Composer\\Installers\\ClanCatsFrameworkInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ClanCatsFrameworkInstaller.php',
'Composer\\Installers\\CockpitInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/CockpitInstaller.php',
'Composer\\Installers\\CodeIgniterInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/CodeIgniterInstaller.php',
'Composer\\Installers\\Concrete5Installer' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/Concrete5Installer.php',
'Composer\\Installers\\CraftInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/CraftInstaller.php',
'Composer\\Installers\\CroogoInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/CroogoInstaller.php',
'Composer\\Installers\\DecibelInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/DecibelInstaller.php',
'Composer\\Installers\\DokuWikiInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/DokuWikiInstaller.php',
'Composer\\Installers\\DolibarrInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/DolibarrInstaller.php',
'Composer\\Installers\\DrupalInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/DrupalInstaller.php',
'Composer\\Installers\\ElggInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ElggInstaller.php',
'Composer\\Installers\\EliasisInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/EliasisInstaller.php',
'Composer\\Installers\\ExpressionEngineInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ExpressionEngineInstaller.php',
'Composer\\Installers\\EzPlatformInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/EzPlatformInstaller.php',
'Composer\\Installers\\FuelInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/FuelInstaller.php',
'Composer\\Installers\\FuelphpInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/FuelphpInstaller.php',
'Composer\\Installers\\GravInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/GravInstaller.php',
'Composer\\Installers\\HuradInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/HuradInstaller.php',
'Composer\\Installers\\ImageCMSInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ImageCMSInstaller.php',
'Composer\\Installers\\Installer' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/Installer.php',
'Composer\\Installers\\ItopInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ItopInstaller.php',
'Composer\\Installers\\JoomlaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/JoomlaInstaller.php',
'Composer\\Installers\\KanboardInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/KanboardInstaller.php',
'Composer\\Installers\\KirbyInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/KirbyInstaller.php',
'Composer\\Installers\\KodiCMSInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/KodiCMSInstaller.php',
'Composer\\Installers\\KohanaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/KohanaInstaller.php',
'Composer\\Installers\\LanManagementSystemInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/LanManagementSystemInstaller.php',
'Composer\\Installers\\LaravelInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/LaravelInstaller.php',
'Composer\\Installers\\LavaLiteInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/LavaLiteInstaller.php',
'Composer\\Installers\\LithiumInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/LithiumInstaller.php',
'Composer\\Installers\\MODULEWorkInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MODULEWorkInstaller.php',
'Composer\\Installers\\MODXEvoInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MODXEvoInstaller.php',
'Composer\\Installers\\MagentoInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MagentoInstaller.php',
'Composer\\Installers\\MajimaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MajimaInstaller.php',
'Composer\\Installers\\MakoInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MakoInstaller.php',
'Composer\\Installers\\MauticInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MauticInstaller.php',
'Composer\\Installers\\MayaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MayaInstaller.php',
'Composer\\Installers\\MediaWikiInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MediaWikiInstaller.php',
'Composer\\Installers\\MicroweberInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MicroweberInstaller.php',
'Composer\\Installers\\ModxInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ModxInstaller.php',
'Composer\\Installers\\MoodleInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/MoodleInstaller.php',
'Composer\\Installers\\OctoberInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/OctoberInstaller.php',
'Composer\\Installers\\OntoWikiInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/OntoWikiInstaller.php',
'Composer\\Installers\\OsclassInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/OsclassInstaller.php',
'Composer\\Installers\\OxidInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/OxidInstaller.php',
'Composer\\Installers\\PPIInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PPIInstaller.php',
'Composer\\Installers\\PhiftyInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PhiftyInstaller.php',
'Composer\\Installers\\PhpBBInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PhpBBInstaller.php',
'Composer\\Installers\\PimcoreInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PimcoreInstaller.php',
'Composer\\Installers\\PiwikInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PiwikInstaller.php',
'Composer\\Installers\\PlentymarketsInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PlentymarketsInstaller.php',
'Composer\\Installers\\Plugin' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/Plugin.php',
'Composer\\Installers\\PortoInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PortoInstaller.php',
'Composer\\Installers\\PrestashopInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PrestashopInstaller.php',
'Composer\\Installers\\PuppetInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PuppetInstaller.php',
'Composer\\Installers\\PxcmsInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/PxcmsInstaller.php',
'Composer\\Installers\\RadPHPInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/RadPHPInstaller.php',
'Composer\\Installers\\ReIndexInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ReIndexInstaller.php',
'Composer\\Installers\\RedaxoInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/RedaxoInstaller.php',
'Composer\\Installers\\RoundcubeInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/RoundcubeInstaller.php',
'Composer\\Installers\\SMFInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/SMFInstaller.php',
'Composer\\Installers\\ShopwareInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ShopwareInstaller.php',
'Composer\\Installers\\SilverStripeInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/SilverStripeInstaller.php',
'Composer\\Installers\\SiteDirectInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/SiteDirectInstaller.php',
'Composer\\Installers\\SyDESInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/SyDESInstaller.php',
'Composer\\Installers\\Symfony1Installer' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/Symfony1Installer.php',
'Composer\\Installers\\TYPO3CmsInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/TYPO3CmsInstaller.php',
'Composer\\Installers\\TYPO3FlowInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/TYPO3FlowInstaller.php',
'Composer\\Installers\\TheliaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/TheliaInstaller.php',
'Composer\\Installers\\TuskInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/TuskInstaller.php',
'Composer\\Installers\\UserFrostingInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/UserFrostingInstaller.php',
'Composer\\Installers\\VanillaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/VanillaInstaller.php',
'Composer\\Installers\\VgmcpInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/VgmcpInstaller.php',
'Composer\\Installers\\WHMCSInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/WHMCSInstaller.php',
'Composer\\Installers\\WolfCMSInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/WolfCMSInstaller.php',
'Composer\\Installers\\WordPressInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/WordPressInstaller.php',
'Composer\\Installers\\YawikInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/YawikInstaller.php',
'Composer\\Installers\\ZendInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ZendInstaller.php',
'Composer\\Installers\\ZikulaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ZikulaInstaller.php',
'WPSEO_Abstract_Capability_Manager' => __DIR__ . '/../..' . '/admin/capabilities/class-abstract-capability-manager.php',
'WPSEO_Abstract_Metabox_Tab_With_Sections' => __DIR__ . '/../..' . '/admin/metabox/class-abstract-sectioned-metabox-tab.php',
'WPSEO_Abstract_Post_Filter' => __DIR__ . '/../..' . '/admin/filters/class-abstract-post-filter.php',
'WPSEO_Abstract_Role_Manager' => __DIR__ . '/../..' . '/admin/roles/class-abstract-role-manager.php',
'WPSEO_Add_Keyword_Modal' => __DIR__ . '/../..' . '/admin/class-add-keyword-modal.php',
'WPSEO_Addon_Manager' => __DIR__ . '/../..' . '/inc/class-addon-manager.php',
'WPSEO_Admin' => __DIR__ . '/../..' . '/admin/class-admin.php',
'WPSEO_Admin_Asset' => __DIR__ . '/../..' . '/admin/class-asset.php',
'WPSEO_Admin_Asset_Analysis_Worker_Location' => __DIR__ . '/../..' . '/admin/class-admin-asset-analysis-worker-location.php',
'WPSEO_Admin_Asset_Dev_Server_Location' => __DIR__ . '/../..' . '/admin/class-admin-asset-dev-server-location.php',
'WPSEO_Admin_Asset_Location' => __DIR__ . '/../..' . '/admin/class-admin-asset-location.php',
'WPSEO_Admin_Asset_Manager' => __DIR__ . '/../..' . '/admin/class-admin-asset-manager.php',
'WPSEO_Admin_Asset_SEO_Location' => __DIR__ . '/../..' . '/admin/class-admin-asset-seo-location.php',
'WPSEO_Admin_Asset_Yoast_Components_L10n' => __DIR__ . '/../..' . '/admin/class-admin-asset-yoast-components-l10n.php',
'WPSEO_Admin_Bar_Menu' => __DIR__ . '/../..' . '/inc/class-wpseo-admin-bar-menu.php',
'WPSEO_Admin_Editor_Specific_Replace_Vars' => __DIR__ . '/../..' . '/admin/class-admin-editor-specific-replace-vars.php',
'WPSEO_Admin_Gutenberg_Compatibility_Notification' => __DIR__ . '/../..' . '/admin/class-admin-gutenberg-compatibility-notification.php',
'WPSEO_Admin_Help_Panel' => __DIR__ . '/../..' . '/admin/class-admin-help-panel.php',
'WPSEO_Admin_Init' => __DIR__ . '/../..' . '/admin/class-admin-init.php',
'WPSEO_Admin_Media_Purge_Notification' => __DIR__ . '/../..' . '/admin/class-admin-media-purge-notification.php',
'WPSEO_Admin_Menu' => __DIR__ . '/../..' . '/admin/menu/class-admin-menu.php',
'WPSEO_Admin_Pages' => __DIR__ . '/../..' . '/admin/class-config.php',
'WPSEO_Admin_Recommended_Replace_Vars' => __DIR__ . '/../..' . '/admin/class-admin-recommended-replace-vars.php',
'WPSEO_Admin_Settings_Changed_Listener' => __DIR__ . '/../..' . '/admin/admin-settings-changed-listener.php',
'WPSEO_Admin_User_Profile' => __DIR__ . '/../..' . '/admin/class-admin-user-profile.php',
'WPSEO_Admin_Utils' => __DIR__ . '/../..' . '/admin/class-admin-utils.php',
'WPSEO_Advanced_Settings' => __DIR__ . '/../..' . '/deprecated/class-wpseo-advanced-settings.php',
'WPSEO_Author_Sitemap_Provider' => __DIR__ . '/../..' . '/inc/sitemaps/class-author-sitemap-provider.php',
'WPSEO_Base_Menu' => __DIR__ . '/../..' . '/admin/menu/class-base-menu.php',
'WPSEO_Breadcrumbs' => __DIR__ . '/../..' . '/frontend/class-breadcrumbs.php',
'WPSEO_Bulk_Description_List_Table' => __DIR__ . '/../..' . '/admin/class-bulk-description-editor-list-table.php',
'WPSEO_Bulk_List_Table' => __DIR__ . '/../..' . '/admin/class-bulk-editor-list-table.php',
'WPSEO_Bulk_Title_Editor_List_Table' => __DIR__ . '/../..' . '/admin/class-bulk-title-editor-list-table.php',
'WPSEO_CLI_Redirect_Upsell_Command_Namespace' => __DIR__ . '/../..' . '/cli/class-cli-redirect-upsell-command-namespace.php',
'WPSEO_CLI_Yoast_Command_Namespace' => __DIR__ . '/../..' . '/cli/class-cli-yoast-command-namespace.php',
'WPSEO_Capability_Manager' => __DIR__ . '/../..' . '/admin/capabilities/class-capability-manager.php',
'WPSEO_Capability_Manager_Factory' => __DIR__ . '/../..' . '/admin/capabilities/class-capability-manager-factory.php',
'WPSEO_Capability_Manager_Integration' => __DIR__ . '/../..' . '/admin/capabilities/class-capability-manager-integration.php',
'WPSEO_Capability_Manager_VIP' => __DIR__ . '/../..' . '/admin/capabilities/class-capability-manager-vip.php',
'WPSEO_Capability_Manager_WP' => __DIR__ . '/../..' . '/admin/capabilities/class-capability-manager-wp.php',
'WPSEO_Capability_Utils' => __DIR__ . '/../..' . '/admin/capabilities/class-capability-utils.php',
'WPSEO_Collection' => __DIR__ . '/../..' . '/admin/interface-collection.php',
'WPSEO_Collector' => __DIR__ . '/../..' . '/admin/class-collector.php',
'WPSEO_Config_Component' => __DIR__ . '/../..' . '/admin/config-ui/components/interface-component.php',
'WPSEO_Config_Component_Connect_Google_Search_Console' => __DIR__ . '/../..' . '/deprecated/admin/config-ui/components/class-component-connect-google-search-console.php',
'WPSEO_Config_Component_Mailchimp_Signup' => __DIR__ . '/../..' . '/admin/config-ui/components/class-component-mailchimp-signup.php',
'WPSEO_Config_Component_Suggestions' => __DIR__ . '/../..' . '/admin/config-ui/components/class-component-suggestions.php',
'WPSEO_Config_Factory_Post_Type' => __DIR__ . '/../..' . '/admin/config-ui/factories/class-factory-post-type.php',
'WPSEO_Config_Field' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field.php',
'WPSEO_Config_Field_Choice' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-choice.php',
'WPSEO_Config_Field_Choice_Post_Type' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-choice-post-type.php',
'WPSEO_Config_Field_Company_Info_Missing' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-company-info-missing.php',
'WPSEO_Config_Field_Company_Logo' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-company-logo.php',
'WPSEO_Config_Field_Company_Name' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-company-name.php',
'WPSEO_Config_Field_Company_Or_Person' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-company-or-person.php',
'WPSEO_Config_Field_Connect_Google_Search_Console' => __DIR__ . '/../..' . '/deprecated/admin/config-ui/fields/class-field-connect-google-search-console.php',
'WPSEO_Config_Field_Environment' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-environment.php',
'WPSEO_Config_Field_Google_Search_Console_Intro' => __DIR__ . '/../..' . '/deprecated/admin/config-ui/fields/class-field-google-search-console-intro.php',
'WPSEO_Config_Field_Mailchimp_Signup' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-mailchimp-signup.php',
'WPSEO_Config_Field_Multiple_Authors' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-multiple-authors.php',
'WPSEO_Config_Field_Person' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-person.php',
'WPSEO_Config_Field_Post_Type_Visibility' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-post-type-visibility.php',
'WPSEO_Config_Field_Profile_URL_Facebook' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-profile-url-facebook.php',
'WPSEO_Config_Field_Profile_URL_GooglePlus' => __DIR__ . '/../..' . '/deprecated/admin/config-ui/fields/class-field-profile-url-googleplus.php',
'WPSEO_Config_Field_Profile_URL_Instagram' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-profile-url-instagram.php',
'WPSEO_Config_Field_Profile_URL_LinkedIn' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-profile-url-linkedin.php',
'WPSEO_Config_Field_Profile_URL_MySpace' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-profile-url-myspace.php',
'WPSEO_Config_Field_Profile_URL_Pinterest' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-profile-url-pinterest.php',
'WPSEO_Config_Field_Profile_URL_Twitter' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-profile-url-twitter.php',
'WPSEO_Config_Field_Profile_URL_Wikipedia' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-profile-url-wikipedia.php',
'WPSEO_Config_Field_Profile_URL_YouTube' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-profile-url-youtube.php',
'WPSEO_Config_Field_Separator' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-separator.php',
'WPSEO_Config_Field_Site_Name' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-site-name.php',
'WPSEO_Config_Field_Site_Type' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-site-type.php',
'WPSEO_Config_Field_Success_Message' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-success-message.php',
'WPSEO_Config_Field_Suggestions' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-suggestions.php',
'WPSEO_Config_Field_Title_Intro' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-title-intro.php',
'WPSEO_Config_Field_Upsell_Configuration_Service' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-upsell-configuration-service.php',
'WPSEO_Config_Field_Upsell_Site_Review' => __DIR__ . '/../..' . '/admin/config-ui/fields/class-field-upsell-site-review.php',
'WPSEO_Configuration_Components' => __DIR__ . '/../..' . '/admin/config-ui/class-configuration-components.php',
'WPSEO_Configuration_Endpoint' => __DIR__ . '/../..' . '/admin/config-ui/class-configuration-endpoint.php',
'WPSEO_Configuration_Notifier' => __DIR__ . '/../..' . '/admin/notifiers/class-configuration-notifier.php',
'WPSEO_Configuration_Options_Adapter' => __DIR__ . '/../..' . '/admin/config-ui/class-configuration-options-adapter.php',
'WPSEO_Configuration_Page' => __DIR__ . '/../..' . '/admin/config-ui/class-configuration-page.php',
'WPSEO_Configuration_Service' => __DIR__ . '/../..' . '/admin/config-ui/class-configuration-service.php',
'WPSEO_Configuration_Storage' => __DIR__ . '/../..' . '/admin/config-ui/class-configuration-storage.php',
'WPSEO_Configuration_Structure' => __DIR__ . '/../..' . '/admin/config-ui/class-configuration-structure.php',
'WPSEO_Configuration_Translations' => __DIR__ . '/../..' . '/admin/config-ui/class-configuration-translations.php',
'WPSEO_Content_Images' => __DIR__ . '/../..' . '/inc/class-wpseo-content-images.php',
'WPSEO_Cornerstone' => __DIR__ . '/../..' . '/deprecated/class-cornerstone.php',
'WPSEO_Cornerstone_Filter' => __DIR__ . '/../..' . '/admin/filters/class-cornerstone-filter.php',
'WPSEO_Custom_Fields' => __DIR__ . '/../..' . '/inc/class-wpseo-custom-fields.php',
'WPSEO_Custom_Taxonomies' => __DIR__ . '/../..' . '/inc/class-wpseo-custom-taxonomies.php',
'WPSEO_Customizer' => __DIR__ . '/../..' . '/admin/class-customizer.php',
'WPSEO_Database_Proxy' => __DIR__ . '/../..' . '/admin/class-database-proxy.php',
'WPSEO_Date_Helper' => __DIR__ . '/../..' . '/inc/date-helper.php',
'WPSEO_Dismissible_Notification' => __DIR__ . '/../..' . '/admin/notifiers/dismissible-notification.php',
'WPSEO_Endpoint' => __DIR__ . '/../..' . '/admin/endpoints/class-endpoint.php',
'WPSEO_Endpoint_Factory' => __DIR__ . '/../..' . '/inc/class-wpseo-endpoint-factory.php',
'WPSEO_Endpoint_File_Size' => __DIR__ . '/../..' . '/admin/endpoints/class-endpoint-file-size.php',
'WPSEO_Endpoint_Indexable' => __DIR__ . '/../..' . '/admin/endpoints/class-endpoint-indexable.php',
'WPSEO_Endpoint_MyYoast_Connect' => __DIR__ . '/../..' . '/inc/endpoints/class-myyoast-connect.php',
'WPSEO_Endpoint_Ryte' => __DIR__ . '/../..' . '/admin/endpoints/class-endpoint-ryte.php',
'WPSEO_Endpoint_Statistics' => __DIR__ . '/../..' . '/admin/endpoints/class-endpoint-statistics.php',
'WPSEO_Endpoint_Storable' => __DIR__ . '/../..' . '/admin/endpoints/interface-endpoint-storable.php',
'WPSEO_Endpoint_Validator' => __DIR__ . '/../..' . '/inc/indexables/validators/class-endpoint-validator.php',
'WPSEO_Export' => __DIR__ . '/../..' . '/admin/class-export.php',
'WPSEO_Expose_Shortlinks' => __DIR__ . '/../..' . '/admin/class-expose-shortlinks.php',
'WPSEO_Extension' => __DIR__ . '/../..' . '/admin/class-extension.php',
'WPSEO_Extension_Manager' => __DIR__ . '/../..' . '/admin/class-extension-manager.php',
'WPSEO_Extensions' => __DIR__ . '/../..' . '/admin/class-extensions.php',
'WPSEO_Features' => __DIR__ . '/../..' . '/inc/class-wpseo-features.php',
'WPSEO_File_Size_Exception' => __DIR__ . '/../..' . '/admin/exceptions/class-file-size-exception.php',
'WPSEO_File_Size_Service' => __DIR__ . '/../..' . '/admin/services/class-file-size.php',
'WPSEO_Frontend' => __DIR__ . '/../..' . '/frontend/class-frontend.php',
'WPSEO_Frontend_Page_Type' => __DIR__ . '/../..' . '/frontend/class-frontend-page-type.php',
'WPSEO_Frontend_Primary_Category' => __DIR__ . '/../..' . '/frontend/class-primary-category.php',
'WPSEO_GSC' => __DIR__ . '/../..' . '/admin/google_search_console/class-gsc.php',
'WPSEO_GSC_Ajax' => __DIR__ . '/../..' . '/deprecated/admin/google-search-console/class-gsc-ajax.php',
'WPSEO_GSC_Bulk_Action' => __DIR__ . '/../..' . '/deprecated/admin/google-search-console/class-gsc-bulk-action.php',
'WPSEO_GSC_Category_Filters' => __DIR__ . '/../..' . '/deprecated/admin/google-search-console/class-gsc-category-filters.php',
'WPSEO_GSC_Config' => __DIR__ . '/../..' . '/deprecated/admin/google-search-console/class-gsc-config.php',
'WPSEO_GSC_Count' => __DIR__ . '/../..' . '/deprecated/admin/google-search-console/class-gsc-count.php',
'WPSEO_GSC_Issue' => __DIR__ . '/../..' . '/deprecated/admin/google-search-console/class-gsc-issue.php',
'WPSEO_GSC_Issues' => __DIR__ . '/../..' . '/deprecated/admin/google-search-console/class-gsc-issues.php',
'WPSEO_GSC_Mapper' => __DIR__ . '/../..' . '/deprecated/admin/google-search-console/class-gsc-mapper.php',
'WPSEO_GSC_Marker' => __DIR__ . '/../..' . '/deprecated/admin/google-search-console/class-gsc-marker.php',
'WPSEO_GSC_Modal' => __DIR__ . '/../..' . '/deprecated/admin/google-search-console/class-gsc-modal.php',
'WPSEO_GSC_Platform_Tabs' => __DIR__ . '/../..' . '/deprecated/admin/google-search-console/class-gsc-platform-tabs.php',
'WPSEO_GSC_Service' => __DIR__ . '/../..' . '/deprecated/admin/google-search-console/class-gsc-service.php',
'WPSEO_GSC_Settings' => __DIR__ . '/../..' . '/deprecated/admin/google-search-console/class-gsc-settings.php',
'WPSEO_GSC_Table' => __DIR__ . '/../..' . '/deprecated/admin/google-search-console/class-gsc-table.php',
'WPSEO_Graph_Piece' => __DIR__ . '/../..' . '/frontend/schema/interface-wpseo-graph-piece.php',
'WPSEO_Gutenberg_Compatibility' => __DIR__ . '/../..' . '/admin/class-gutenberg-compatibility.php',
'WPSEO_Handle_404' => __DIR__ . '/../..' . '/frontend/class-handle-404.php',
'WPSEO_Health_Check' => __DIR__ . '/../..' . '/inc/health-check.php',
'WPSEO_Health_Check_Page_Comments' => __DIR__ . '/../..' . '/inc/health-check-page-comments.php',
'WPSEO_HelpScout' => __DIR__ . '/../..' . '/admin/class-helpscout.php',
'WPSEO_Image_Utils' => __DIR__ . '/../..' . '/inc/class-wpseo-image-utils.php',
'WPSEO_Import_AIOSEO' => __DIR__ . '/../..' . '/admin/import/plugins/class-import-aioseo.php',
'WPSEO_Import_Greg_SEO' => __DIR__ . '/../..' . '/admin/import/plugins/class-import-greg-high-performance-seo.php',
'WPSEO_Import_HeadSpace' => __DIR__ . '/../..' . '/admin/import/plugins/class-import-headspace.php',
'WPSEO_Import_Jetpack_SEO' => __DIR__ . '/../..' . '/admin/import/plugins/class-import-jetpack.php',
'WPSEO_Import_Platinum_SEO' => __DIR__ . '/../..' . '/admin/import/plugins/class-import-platinum-seo-pack.php',
'WPSEO_Import_Plugin' => __DIR__ . '/../..' . '/admin/import/class-import-plugin.php',
'WPSEO_Import_Plugins_Detector' => __DIR__ . '/../..' . '/admin/import/class-import-detector.php',
'WPSEO_Import_Premium_SEO_Pack' => __DIR__ . '/../..' . '/admin/import/plugins/class-import-premium-seo-pack.php',
'WPSEO_Import_RankMath' => __DIR__ . '/../..' . '/admin/import/plugins/class-import-rankmath.php',
'WPSEO_Import_SEOPressor' => __DIR__ . '/../..' . '/admin/import/plugins/class-import-seopressor.php',
'WPSEO_Import_SEO_Framework' => __DIR__ . '/../..' . '/admin/import/plugins/class-import-seo-framework.php',
'WPSEO_Import_Settings' => __DIR__ . '/../..' . '/admin/import/class-import-settings.php',
'WPSEO_Import_Smartcrawl_SEO' => __DIR__ . '/../..' . '/admin/import/plugins/class-import-smartcrawl.php',
'WPSEO_Import_Squirrly' => __DIR__ . '/../..' . '/admin/import/plugins/class-import-squirrly.php',
'WPSEO_Import_Status' => __DIR__ . '/../..' . '/admin/import/class-import-status.php',
'WPSEO_Import_Ultimate_SEO' => __DIR__ . '/../..' . '/admin/import/plugins/class-import-ultimate-seo.php',
'WPSEO_Import_WPSEO' => __DIR__ . '/../..' . '/admin/import/plugins/class-import-wpseo.php',
'WPSEO_Import_WP_Meta_SEO' => __DIR__ . '/../..' . '/admin/import/plugins/class-import-wp-meta-seo.php',
'WPSEO_Import_WooThemes_SEO' => __DIR__ . '/../..' . '/admin/import/plugins/class-import-woothemes-seo.php',
'WPSEO_Indexable' => __DIR__ . '/../..' . '/inc/indexables/class-indexable.php',
'WPSEO_Indexable_Provider' => __DIR__ . '/../..' . '/admin/services/class-indexable-provider.php',
'WPSEO_Indexable_Service' => __DIR__ . '/../..' . '/admin/services/class-indexable.php',
'WPSEO_Indexable_Service_Post_Provider' => __DIR__ . '/../..' . '/admin/services/class-indexable-post-provider.php',
'WPSEO_Indexable_Service_Provider' => __DIR__ . '/../..' . '/admin/services/interface-indexable-provider.php',
'WPSEO_Indexable_Service_Term_Provider' => __DIR__ . '/../..' . '/admin/services/class-indexable-term-provider.php',
'WPSEO_Installable' => __DIR__ . '/../..' . '/admin/interface-installable.php',
'WPSEO_Installation' => __DIR__ . '/../..' . '/inc/class-wpseo-installation.php',
'WPSEO_Invalid_Argument_Exception' => __DIR__ . '/../..' . '/inc/exceptions/class-invalid-argument-exception.php',
'WPSEO_Invalid_Indexable_Exception' => __DIR__ . '/../..' . '/inc/exceptions/class-invalid-indexable-exception.php',
'WPSEO_Keyword_Synonyms_Modal' => __DIR__ . '/../..' . '/admin/class-keyword-synonyms-modal.php',
'WPSEO_Keyword_Validator' => __DIR__ . '/../..' . '/inc/indexables/validators/class-keyword-validator.php',
'WPSEO_Language_Utils' => __DIR__ . '/../..' . '/inc/language-utils.php',
'WPSEO_License_Page_Manager' => __DIR__ . '/../..' . '/admin/class-license-page-manager.php',
'WPSEO_Link' => __DIR__ . '/../..' . '/admin/links/class-link.php',
'WPSEO_Link_Cleanup_Transient' => __DIR__ . '/../..' . '/admin/links/class-link-cleanup-transient.php',
'WPSEO_Link_Column_Count' => __DIR__ . '/../..' . '/admin/links/class-link-column-count.php',
'WPSEO_Link_Columns' => __DIR__ . '/../..' . '/admin/links/class-link-columns.php',
'WPSEO_Link_Compatibility_Notifier' => __DIR__ . '/../..' . '/admin/links/class-link-compatibility-notifier.php',
'WPSEO_Link_Content_Processor' => __DIR__ . '/../..' . '/admin/links/class-link-content-processor.php',
'WPSEO_Link_Extractor' => __DIR__ . '/../..' . '/admin/links/class-link-extractor.php',
'WPSEO_Link_Factory' => __DIR__ . '/../..' . '/admin/links/class-link-factory.php',
'WPSEO_Link_Filter' => __DIR__ . '/../..' . '/admin/links/class-link-filter.php',
'WPSEO_Link_Installer' => __DIR__ . '/../..' . '/admin/links/class-link-installer.php',
'WPSEO_Link_Internal_Lookup' => __DIR__ . '/../..' . '/admin/links/class-link-internal-lookup.php',
'WPSEO_Link_Notifier' => __DIR__ . '/../..' . '/admin/links/class-link-notifier.php',
'WPSEO_Link_Query' => __DIR__ . '/../..' . '/admin/links/class-link-query.php',
'WPSEO_Link_Reindex_Dashboard' => __DIR__ . '/../..' . '/admin/links/class-link-reindex-dashboard.php',
'WPSEO_Link_Reindex_Post_Endpoint' => __DIR__ . '/../..' . '/admin/links/class-link-reindex-post-endpoint.php',
'WPSEO_Link_Reindex_Post_Service' => __DIR__ . '/../..' . '/admin/links/class-link-reindex-post-service.php',
'WPSEO_Link_Storage' => __DIR__ . '/../..' . '/admin/links/class-link-storage.php',
'WPSEO_Link_Table_Accessible' => __DIR__ . '/../..' . '/admin/links/class-link-table-accessible.php',
'WPSEO_Link_Table_Accessible_Notifier' => __DIR__ . '/../..' . '/admin/links/class-link-table-accessible-notifier.php',
'WPSEO_Link_Type_Classifier' => __DIR__ . '/../..' . '/admin/links/class-link-type-classifier.php',
'WPSEO_Link_Utils' => __DIR__ . '/../..' . '/admin/links/class-link-utils.php',
'WPSEO_Link_Validator' => __DIR__ . '/../..' . '/inc/indexables/validators/class-link-validator.php',
'WPSEO_Link_Watcher' => __DIR__ . '/../..' . '/admin/links/class-link-watcher.php',
'WPSEO_Link_Watcher_Loader' => __DIR__ . '/../..' . '/admin/links/class-link-watcher-loader.php',
'WPSEO_Listener' => __DIR__ . '/../..' . '/admin/listeners/class-listener.php',
'WPSEO_Menu' => __DIR__ . '/../..' . '/admin/menu/class-menu.php',
'WPSEO_Meta' => __DIR__ . '/../..' . '/inc/class-wpseo-meta.php',
'WPSEO_Meta_Columns' => __DIR__ . '/../..' . '/admin/class-meta-columns.php',
'WPSEO_Meta_Storage' => __DIR__ . '/../..' . '/admin/class-meta-storage.php',
'WPSEO_Meta_Table_Accessible' => __DIR__ . '/../..' . '/admin/class-meta-table-accessible.php',
'WPSEO_Meta_Values_Validator' => __DIR__ . '/../..' . '/inc/indexables/validators/class-meta-values-validator.php',
'WPSEO_Metabox' => __DIR__ . '/../..' . '/admin/metabox/class-metabox.php',
'WPSEO_Metabox_Addon_Tab_Section' => __DIR__ . '/../..' . '/deprecated/class-metabox-addon-section.php',
'WPSEO_Metabox_Analysis' => __DIR__ . '/../..' . '/admin/metabox/interface-metabox-analysis.php',
'WPSEO_Metabox_Analysis_Readability' => __DIR__ . '/../..' . '/admin/metabox/class-metabox-analysis-readability.php',
'WPSEO_Metabox_Analysis_SEO' => __DIR__ . '/../..' . '/admin/metabox/class-metabox-analysis-seo.php',
'WPSEO_Metabox_Collapsible' => __DIR__ . '/../..' . '/admin/metabox/class-metabox-collapsible.php',
'WPSEO_Metabox_Collapsibles_Sections' => __DIR__ . '/../..' . '/admin/metabox/class-metabox-collapsibles-section.php',
'WPSEO_Metabox_Editor' => __DIR__ . '/../..' . '/admin/metabox/class-metabox-editor.php',
'WPSEO_Metabox_Form_Tab' => __DIR__ . '/../..' . '/admin/metabox/class-metabox-form-tab.php',
'WPSEO_Metabox_Formatter' => __DIR__ . '/../..' . '/admin/formatter/class-metabox-formatter.php',
'WPSEO_Metabox_Formatter_Interface' => __DIR__ . '/../..' . '/admin/formatter/interface-metabox-formatter.php',
'WPSEO_Metabox_Null_Tab' => __DIR__ . '/../..' . '/admin/metabox/class-metabox-null-tab.php',
'WPSEO_Metabox_Section' => __DIR__ . '/../..' . '/admin/metabox/interface-metabox-section.php',
'WPSEO_Metabox_Section_Additional' => __DIR__ . '/../..' . '/admin/metabox/class-metabox-section-additional.php',
'WPSEO_Metabox_Section_React' => __DIR__ . '/../..' . '/admin/metabox/class-metabox-section-react.php',
'WPSEO_Metabox_Section_Readability' => __DIR__ . '/../..' . '/admin/metabox/class-metabox-section-readability.php',
'WPSEO_Metabox_Tab' => __DIR__ . '/../..' . '/admin/metabox/interface-metabox-tab.php',
'WPSEO_Metabox_Tab_Section' => __DIR__ . '/../..' . '/deprecated/admin/class-metabox-tab-section.php',
'WPSEO_Multiple_Keywords_Modal' => __DIR__ . '/../..' . '/admin/class-multiple-keywords-modal.php',
'WPSEO_MyYoast_Api_Request' => __DIR__ . '/../..' . '/inc/class-my-yoast-api-request.php',
'WPSEO_MyYoast_Authentication_Exception' => __DIR__ . '/../..' . '/inc/exceptions/class-myyoast-authentication-exception.php',
'WPSEO_MyYoast_Bad_Request_Exception' => __DIR__ . '/../..' . '/inc/exceptions/class-myyoast-bad-request-exception.php',
'WPSEO_MyYoast_Invalid_JSON_Exception' => __DIR__ . '/../..' . '/inc/exceptions/class-myyoast-invalid-json-exception.php',
'WPSEO_MyYoast_Proxy' => __DIR__ . '/../..' . '/admin/class-my-yoast-proxy.php',
'WPSEO_MyYoast_Route' => __DIR__ . '/../..' . '/admin/class-my-yoast-route.php',
'WPSEO_Network_Admin_Menu' => __DIR__ . '/../..' . '/admin/menu/class-network-admin-menu.php',
'WPSEO_Notification_Handler' => __DIR__ . '/../..' . '/admin/notifiers/interface-notification-handler.php',
'WPSEO_Object_Type' => __DIR__ . '/../..' . '/inc/indexables/class-object-type.php',
'WPSEO_Object_Type_Validator' => __DIR__ . '/../..' . '/inc/indexables/validators/class-object-type-validator.php',
'WPSEO_OnPage' => __DIR__ . '/../..' . '/admin/onpage/class-onpage.php',
'WPSEO_OnPage_Option' => __DIR__ . '/../..' . '/admin/onpage/class-onpage-option.php',
'WPSEO_OnPage_Request' => __DIR__ . '/../..' . '/admin/onpage/class-onpage-request.php',
'WPSEO_OpenGraph' => __DIR__ . '/../..' . '/frontend/class-opengraph.php',
'WPSEO_OpenGraph_Image' => __DIR__ . '/../..' . '/frontend/class-opengraph-image.php',
'WPSEO_OpenGraph_OEmbed' => __DIR__ . '/../..' . '/frontend/class-opengraph-oembed.php',
'WPSEO_OpenGraph_Validator' => __DIR__ . '/../..' . '/inc/indexables/validators/class-opengraph-validator.php',
'WPSEO_Option' => __DIR__ . '/../..' . '/inc/options/class-wpseo-option.php',
'WPSEO_Option_InternalLinks' => __DIR__ . '/../..' . '/deprecated/class-wpseo-option-internallinks.php',
'WPSEO_Option_MS' => __DIR__ . '/../..' . '/inc/options/class-wpseo-option-ms.php',
'WPSEO_Option_Permalinks' => __DIR__ . '/../..' . '/deprecated/class-wpseo-option-permalinks.php',
'WPSEO_Option_Social' => __DIR__ . '/../..' . '/inc/options/class-wpseo-option-social.php',
'WPSEO_Option_Tab' => __DIR__ . '/../..' . '/admin/class-option-tab.php',
'WPSEO_Option_Tabs' => __DIR__ . '/../..' . '/admin/class-option-tabs.php',
'WPSEO_Option_Tabs_Formatter' => __DIR__ . '/../..' . '/admin/class-option-tabs-formatter.php',
'WPSEO_Option_Titles' => __DIR__ . '/../..' . '/inc/options/class-wpseo-option-titles.php',
'WPSEO_Option_Wpseo' => __DIR__ . '/../..' . '/inc/options/class-wpseo-option-wpseo.php',
'WPSEO_Options' => __DIR__ . '/../..' . '/inc/options/class-wpseo-options.php',
'WPSEO_Paper_Presenter' => __DIR__ . '/../..' . '/admin/class-paper-presenter.php',
'WPSEO_Plugin_Availability' => __DIR__ . '/../..' . '/admin/class-plugin-availability.php',
'WPSEO_Plugin_Compatibility' => __DIR__ . '/../..' . '/admin/class-plugin-compatibility.php',
'WPSEO_Plugin_Conflict' => __DIR__ . '/../..' . '/admin/class-plugin-conflict.php',
'WPSEO_Plugin_Importer' => __DIR__ . '/../..' . '/admin/import/plugins/class-abstract-plugin-importer.php',
'WPSEO_Plugin_Importers' => __DIR__ . '/../..' . '/admin/import/plugins/class-importers.php',
'WPSEO_Post_Indexable' => __DIR__ . '/../..' . '/inc/indexables/class-post-indexable.php',
'WPSEO_Post_Metabox_Formatter' => __DIR__ . '/../..' . '/admin/formatter/class-post-metabox-formatter.php',
'WPSEO_Post_Object_Type' => __DIR__ . '/../..' . '/inc/indexables/class-post-object-type.php',
'WPSEO_Post_Type' => __DIR__ . '/../..' . '/inc/class-post-type.php',
'WPSEO_Post_Type_Archive_Notification_Handler' => __DIR__ . '/../..' . '/admin/notifiers/class-post-type-archive-notification-handler.php',
'WPSEO_Post_Type_Sitemap_Provider' => __DIR__ . '/../..' . '/inc/sitemaps/class-post-type-sitemap-provider.php',
'WPSEO_Premium_Popup' => __DIR__ . '/../..' . '/admin/class-premium-popup.php',
'WPSEO_Premium_Upsell_Admin_Block' => __DIR__ . '/../..' . '/admin/class-premium-upsell-admin-block.php',
'WPSEO_Primary_Term' => __DIR__ . '/../..' . '/inc/class-wpseo-primary-term.php',
'WPSEO_Primary_Term_Admin' => __DIR__ . '/../..' . '/admin/class-primary-term-admin.php',
'WPSEO_Product_Upsell_Notice' => __DIR__ . '/../..' . '/admin/class-product-upsell-notice.php',
'WPSEO_REST_Request_Exception' => __DIR__ . '/../..' . '/inc/exceptions/class-rest-request-exception.php',
'WPSEO_Rank' => __DIR__ . '/../..' . '/inc/class-wpseo-rank.php',
'WPSEO_Recalculate' => __DIR__ . '/../..' . '/admin/recalculate/class-recalculate.php',
'WPSEO_Recalculate_Posts' => __DIR__ . '/../..' . '/admin/recalculate/class-recalculate-posts.php',
'WPSEO_Recalculate_Scores' => __DIR__ . '/../..' . '/admin/class-recalculate-scores.php',
'WPSEO_Recalculate_Scores_Ajax' => __DIR__ . '/../..' . '/admin/ajax/class-recalculate-scores-ajax.php',
'WPSEO_Recalculate_Terms' => __DIR__ . '/../..' . '/admin/recalculate/class-recalculate-terms.php',
'WPSEO_Recalibration_Beta' => __DIR__ . '/../..' . '/deprecated/class-recalibration-beta.php',
'WPSEO_Recalibration_Beta_Notification' => __DIR__ . '/../..' . '/deprecated/class-recalibration-beta-notification.php',
'WPSEO_Register_Capabilities' => __DIR__ . '/../..' . '/admin/capabilities/class-register-capabilities.php',
'WPSEO_Register_Roles' => __DIR__ . '/../..' . '/admin/roles/class-register-roles.php',
'WPSEO_Remote_Request' => __DIR__ . '/../..' . '/admin/class-remote-request.php',
'WPSEO_Remove_Reply_To_Com' => __DIR__ . '/../..' . '/frontend/class-remove-reply-to-com.php',
'WPSEO_Replace_Vars' => __DIR__ . '/../..' . '/inc/class-wpseo-replace-vars.php',
'WPSEO_Replacement_Variable' => __DIR__ . '/../..' . '/inc/class-wpseo-replacement-variable.php',
'WPSEO_Replacevar_Editor' => __DIR__ . '/../..' . '/admin/menu/class-replacevar-editor.php',
'WPSEO_Replacevar_Field' => __DIR__ . '/../..' . '/admin/menu/class-replacevar-field.php',
'WPSEO_Rewrite' => __DIR__ . '/../..' . '/inc/class-rewrite.php',
'WPSEO_Robots_Validator' => __DIR__ . '/../..' . '/inc/indexables/validators/class-robots-validator.php',
'WPSEO_Role_Manager' => __DIR__ . '/../..' . '/admin/roles/class-role-manager.php',
'WPSEO_Role_Manager_Factory' => __DIR__ . '/../..' . '/admin/roles/class-role-manager-factory.php',
'WPSEO_Role_Manager_VIP' => __DIR__ . '/../..' . '/admin/roles/class-role-manager-vip.php',
'WPSEO_Role_Manager_WP' => __DIR__ . '/../..' . '/admin/roles/class-role-manager-wp.php',
'WPSEO_Ryte_Service' => __DIR__ . '/../..' . '/admin/onpage/class-ryte-service.php',
'WPSEO_Schema' => __DIR__ . '/../..' . '/frontend/schema/class-schema.php',
'WPSEO_Schema_Article' => __DIR__ . '/../..' . '/frontend/schema/class-schema-article.php',
'WPSEO_Schema_Author' => __DIR__ . '/../..' . '/frontend/schema/class-schema-author.php',
'WPSEO_Schema_Breadcrumb' => __DIR__ . '/../..' . '/frontend/schema/class-schema-breadcrumb.php',
'WPSEO_Schema_Context' => __DIR__ . '/../..' . '/frontend/schema/class-schema-context.php',
'WPSEO_Schema_FAQ' => __DIR__ . '/../..' . '/frontend/schema/class-schema-faq.php',
'WPSEO_Schema_FAQ_Question_List' => __DIR__ . '/../..' . '/frontend/schema/class-schema-faq-question-list.php',
'WPSEO_Schema_FAQ_Questions' => __DIR__ . '/../..' . '/frontend/schema/class-schema-faq-questions.php',
'WPSEO_Schema_HowTo' => __DIR__ . '/../..' . '/frontend/schema/class-schema-howto.php',
'WPSEO_Schema_IDs' => __DIR__ . '/../..' . '/frontend/schema/class-schema-ids.php',
'WPSEO_Schema_Image' => __DIR__ . '/../..' . '/frontend/schema/class-schema-image.php',
'WPSEO_Schema_MainImage' => __DIR__ . '/../..' . '/frontend/schema/class-schema-main-image.php',
'WPSEO_Schema_Organization' => __DIR__ . '/../..' . '/frontend/schema/class-schema-organization.php',
'WPSEO_Schema_Person' => __DIR__ . '/../..' . '/frontend/schema/class-schema-person.php',
'WPSEO_Schema_Person_Upgrade_Notification' => __DIR__ . '/../..' . '/admin/class-schema-person-upgrade-notification.php',
'WPSEO_Schema_Utils' => __DIR__ . '/../..' . '/frontend/schema/class-schema-utils.php',
'WPSEO_Schema_WebPage' => __DIR__ . '/../..' . '/frontend/schema/class-schema-webpage.php',
'WPSEO_Schema_Website' => __DIR__ . '/../..' . '/frontend/schema/class-schema-website.php',
'WPSEO_Shortcode_Filter' => __DIR__ . '/../..' . '/admin/ajax/class-shortcode-filter.php',
'WPSEO_Shortlinker' => __DIR__ . '/../..' . '/inc/class-wpseo-shortlinker.php',
'WPSEO_Sitemap_Cache_Data' => __DIR__ . '/../..' . '/inc/sitemaps/class-sitemap-cache-data.php',
'WPSEO_Sitemap_Cache_Data_Interface' => __DIR__ . '/../..' . '/inc/sitemaps/interface-sitemap-cache-data.php',
'WPSEO_Sitemap_Image_Parser' => __DIR__ . '/../..' . '/inc/sitemaps/class-sitemap-image-parser.php',
'WPSEO_Sitemap_Provider' => __DIR__ . '/../..' . '/inc/sitemaps/interface-sitemap-provider.php',
'WPSEO_Sitemap_Timezone' => __DIR__ . '/../..' . '/deprecated/inc/sitemaps/class-sitemap-timezone.php',
'WPSEO_Sitemaps' => __DIR__ . '/../..' . '/inc/sitemaps/class-sitemaps.php',
'WPSEO_Sitemaps_Admin' => __DIR__ . '/../..' . '/inc/sitemaps/class-sitemaps-admin.php',
'WPSEO_Sitemaps_Cache' => __DIR__ . '/../..' . '/inc/sitemaps/class-sitemaps-cache.php',
'WPSEO_Sitemaps_Cache_Validator' => __DIR__ . '/../..' . '/inc/sitemaps/class-sitemaps-cache-validator.php',
'WPSEO_Sitemaps_Renderer' => __DIR__ . '/../..' . '/inc/sitemaps/class-sitemaps-renderer.php',
'WPSEO_Sitemaps_Router' => __DIR__ . '/../..' . '/inc/sitemaps/class-sitemaps-router.php',
'WPSEO_Slug_Change_Watcher' => __DIR__ . '/../..' . '/admin/watchers/class-slug-change-watcher.php',
'WPSEO_Social_Admin' => __DIR__ . '/../..' . '/admin/class-social-admin.php',
'WPSEO_Statistic_Integration' => __DIR__ . '/../..' . '/admin/statistics/class-statistics-integration.php',
'WPSEO_Statistics' => __DIR__ . '/../..' . '/inc/class-wpseo-statistics.php',
'WPSEO_Statistics_Service' => __DIR__ . '/../..' . '/admin/statistics/class-statistics-service.php',
'WPSEO_Structured_Data_Blocks' => __DIR__ . '/../..' . '/inc/class-structured-data-blocks.php',
'WPSEO_Submenu_Capability_Normalize' => __DIR__ . '/../..' . '/admin/menu/class-submenu-capability-normalize.php',
'WPSEO_Submenu_Hider' => __DIR__ . '/../..' . '/deprecated/class-submenu-hider.php',
'WPSEO_Suggested_Plugins' => __DIR__ . '/../..' . '/admin/class-suggested-plugins.php',
'WPSEO_Taxonomy' => __DIR__ . '/../..' . '/admin/taxonomy/class-taxonomy.php',
'WPSEO_Taxonomy_Columns' => __DIR__ . '/../..' . '/admin/taxonomy/class-taxonomy-columns.php',
'WPSEO_Taxonomy_Content_Fields' => __DIR__ . '/../..' . '/admin/taxonomy/class-taxonomy-content-fields.php',
'WPSEO_Taxonomy_Fields' => __DIR__ . '/../..' . '/admin/taxonomy/class-taxonomy-fields.php',
'WPSEO_Taxonomy_Fields_Presenter' => __DIR__ . '/../..' . '/admin/taxonomy/class-taxonomy-fields-presenter.php',
'WPSEO_Taxonomy_Meta' => __DIR__ . '/../..' . '/inc/options/class-wpseo-taxonomy-meta.php',
'WPSEO_Taxonomy_Metabox' => __DIR__ . '/../..' . '/admin/taxonomy/class-taxonomy-metabox.php',
'WPSEO_Taxonomy_Settings_Fields' => __DIR__ . '/../..' . '/admin/taxonomy/class-taxonomy-settings-fields.php',
'WPSEO_Taxonomy_Sitemap_Provider' => __DIR__ . '/../..' . '/inc/sitemaps/class-taxonomy-sitemap-provider.php',
'WPSEO_Taxonomy_Social_Fields' => __DIR__ . '/../..' . '/admin/taxonomy/class-taxonomy-social-fields.php',
'WPSEO_Term_Indexable' => __DIR__ . '/../..' . '/inc/indexables/class-term-indexable.php',
'WPSEO_Term_Metabox_Formatter' => __DIR__ . '/../..' . '/admin/formatter/class-term-metabox-formatter.php',
'WPSEO_Term_Object_Type' => __DIR__ . '/../..' . '/inc/indexables/class-term-object-type.php',
'WPSEO_Tracking' => __DIR__ . '/../..' . '/admin/tracking/class-tracking.php',
'WPSEO_Tracking_Default_Data' => __DIR__ . '/../..' . '/admin/tracking/class-tracking-default-data.php',
'WPSEO_Tracking_Plugin_Data' => __DIR__ . '/../..' . '/admin/tracking/class-tracking-plugin-data.php',
'WPSEO_Tracking_Server_Data' => __DIR__ . '/../..' . '/admin/tracking/class-tracking-server-data.php',
'WPSEO_Tracking_Settings_Data' => __DIR__ . '/../..' . '/admin/tracking/class-tracking-settings-data.php',
'WPSEO_Tracking_Theme_Data' => __DIR__ . '/../..' . '/admin/tracking/class-tracking-theme-data.php',
'WPSEO_Twitter' => __DIR__ . '/../..' . '/frontend/class-twitter.php',
'WPSEO_Twitter_Validator' => __DIR__ . '/../..' . '/inc/indexables/validators/class-twitter-validator.php',
'WPSEO_Upgrade' => __DIR__ . '/../..' . '/inc/class-upgrade.php',
'WPSEO_Upgrade_History' => __DIR__ . '/../..' . '/inc/class-upgrade-history.php',
'WPSEO_Utils' => __DIR__ . '/../..' . '/inc/class-wpseo-utils.php',
'WPSEO_Validator' => __DIR__ . '/../..' . '/inc/class-wpseo-validator.php',
'WPSEO_WooCommerce_Shop_Page' => __DIR__ . '/../..' . '/frontend/class-woocommerce-shop-page.php',
'WPSEO_WordPress_AJAX_Integration' => __DIR__ . '/../..' . '/inc/interface-wpseo-wordpress-ajax-integration.php',
'WPSEO_WordPress_Integration' => __DIR__ . '/../..' . '/inc/interface-wpseo-wordpress-integration.php',
'WPSEO_Yoast_Columns' => __DIR__ . '/../..' . '/admin/class-yoast-columns.php',
'YoastSEO_Vendor\\GuzzleHttp\\Client' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Client.php',
'YoastSEO_Vendor\\GuzzleHttp\\ClientInterface' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/ClientInterface.php',
'YoastSEO_Vendor\\GuzzleHttp\\Cookie\\CookieJar' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Cookie/CookieJar.php',
'YoastSEO_Vendor\\GuzzleHttp\\Cookie\\CookieJarInterface' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Cookie/CookieJarInterface.php',
'YoastSEO_Vendor\\GuzzleHttp\\Cookie\\FileCookieJar' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Cookie/FileCookieJar.php',
'YoastSEO_Vendor\\GuzzleHttp\\Cookie\\SessionCookieJar' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Cookie/SessionCookieJar.php',
'YoastSEO_Vendor\\GuzzleHttp\\Cookie\\SetCookie' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Cookie/SetCookie.php',
'YoastSEO_Vendor\\GuzzleHttp\\Exception\\BadResponseException' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/BadResponseException.php',
'YoastSEO_Vendor\\GuzzleHttp\\Exception\\ClientException' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/ClientException.php',
'YoastSEO_Vendor\\GuzzleHttp\\Exception\\ConnectException' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/ConnectException.php',
'YoastSEO_Vendor\\GuzzleHttp\\Exception\\GuzzleException' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/GuzzleException.php',
'YoastSEO_Vendor\\GuzzleHttp\\Exception\\RequestException' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/RequestException.php',
'YoastSEO_Vendor\\GuzzleHttp\\Exception\\SeekException' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/SeekException.php',
'YoastSEO_Vendor\\GuzzleHttp\\Exception\\ServerException' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/ServerException.php',
'YoastSEO_Vendor\\GuzzleHttp\\Exception\\TooManyRedirectsException' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/TooManyRedirectsException.php',
'YoastSEO_Vendor\\GuzzleHttp\\Exception\\TransferException' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Exception/TransferException.php',
'YoastSEO_Vendor\\GuzzleHttp\\HandlerStack' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/HandlerStack.php',
'YoastSEO_Vendor\\GuzzleHttp\\Handler\\CurlFactory' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/CurlFactory.php',
'YoastSEO_Vendor\\GuzzleHttp\\Handler\\CurlFactoryInterface' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/CurlFactoryInterface.php',
'YoastSEO_Vendor\\GuzzleHttp\\Handler\\CurlHandler' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/CurlHandler.php',
'YoastSEO_Vendor\\GuzzleHttp\\Handler\\CurlMultiHandler' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php',
'YoastSEO_Vendor\\GuzzleHttp\\Handler\\EasyHandle' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/EasyHandle.php',
'YoastSEO_Vendor\\GuzzleHttp\\Handler\\MockHandler' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/MockHandler.php',
'YoastSEO_Vendor\\GuzzleHttp\\Handler\\Proxy' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/Proxy.php',
'YoastSEO_Vendor\\GuzzleHttp\\Handler\\StreamHandler' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Handler/StreamHandler.php',
'YoastSEO_Vendor\\GuzzleHttp\\MessageFormatter' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/MessageFormatter.php',
'YoastSEO_Vendor\\GuzzleHttp\\Middleware' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Middleware.php',
'YoastSEO_Vendor\\GuzzleHttp\\Pool' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/Pool.php',
'YoastSEO_Vendor\\GuzzleHttp\\PrepareBodyMiddleware' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php',
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\AggregateException' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/promises/src/AggregateException.php',
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\CancellationException' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/promises/src/CancellationException.php',
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\Coroutine' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/promises/src/Coroutine.php',
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\EachPromise' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/promises/src/EachPromise.php',
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\FulfilledPromise' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/promises/src/FulfilledPromise.php',
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\Promise' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/promises/src/Promise.php',
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\PromiseInterface' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/promises/src/PromiseInterface.php',
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\PromisorInterface' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/promises/src/PromisorInterface.php',
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\RejectedPromise' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/promises/src/RejectedPromise.php',
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\RejectionException' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/promises/src/RejectionException.php',
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\TaskQueue' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/promises/src/TaskQueue.php',
'YoastSEO_Vendor\\GuzzleHttp\\Promise\\TaskQueueInterface' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/promises/src/TaskQueueInterface.php',
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\AppendStream' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/AppendStream.php',
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\BufferStream' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/BufferStream.php',
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\CachingStream' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/CachingStream.php',
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\DroppingStream' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/DroppingStream.php',
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\FnStream' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/FnStream.php',
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\InflateStream' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/InflateStream.php',
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\LazyOpenStream' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/LazyOpenStream.php',
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\LimitStream' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/LimitStream.php',
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\MessageTrait' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/MessageTrait.php',
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\MultipartStream' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/MultipartStream.php',
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\NoSeekStream' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/NoSeekStream.php',
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\PumpStream' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/PumpStream.php',
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\Request' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/Request.php',
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\Response' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/Response.php',
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\Rfc7230' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/Rfc7230.php',
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\ServerRequest' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/ServerRequest.php',
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\Stream' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/Stream.php',
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\StreamDecoratorTrait' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/StreamDecoratorTrait.php',
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\StreamWrapper' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/StreamWrapper.php',
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\UploadedFile' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/UploadedFile.php',
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\Uri' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/Uri.php',
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\UriNormalizer' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/UriNormalizer.php',
'YoastSEO_Vendor\\GuzzleHttp\\Psr7\\UriResolver' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/psr7/src/UriResolver.php',
'YoastSEO_Vendor\\GuzzleHttp\\RedirectMiddleware' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/RedirectMiddleware.php',
'YoastSEO_Vendor\\GuzzleHttp\\RequestOptions' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/RequestOptions.php',
'YoastSEO_Vendor\\GuzzleHttp\\RetryMiddleware' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/RetryMiddleware.php',
'YoastSEO_Vendor\\GuzzleHttp\\TransferStats' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/TransferStats.php',
'YoastSEO_Vendor\\GuzzleHttp\\UriTemplate' => __DIR__ . '/../..' . '/vendor_prefixed/guzzlehttp/guzzle/src/UriTemplate.php',
'YoastSEO_Vendor\\IdiormMethodMissingException' => __DIR__ . '/../..' . '/vendor_prefixed/j4mie/idiorm/idiorm.php',
'YoastSEO_Vendor\\IdiormResultSet' => __DIR__ . '/../..' . '/vendor_prefixed/j4mie/idiorm/idiorm.php',
'YoastSEO_Vendor\\IdiormString' => __DIR__ . '/../..' . '/vendor_prefixed/j4mie/idiorm/idiorm.php',
'YoastSEO_Vendor\\IdiormStringException' => __DIR__ . '/../..' . '/vendor_prefixed/j4mie/idiorm/idiorm.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Grant\\AbstractGrant' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/Grant/AbstractGrant.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Grant\\AuthorizationCode' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/Grant/AuthorizationCode.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Grant\\ClientCredentials' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/Grant/ClientCredentials.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Grant\\Exception\\InvalidGrantException' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/Grant/Exception/InvalidGrantException.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Grant\\GrantFactory' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/Grant/GrantFactory.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Grant\\Password' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/Grant/Password.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Grant\\RefreshToken' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/Grant/RefreshToken.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\OptionProvider\\HttpBasicAuthOptionProvider' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/OptionProvider/HttpBasicAuthOptionProvider.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\OptionProvider\\OptionProviderInterface' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/OptionProvider/OptionProviderInterface.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\OptionProvider\\PostAuthOptionProvider' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/OptionProvider/PostAuthOptionProvider.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Provider\\AbstractProvider' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/Provider/AbstractProvider.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Provider\\Exception\\IdentityProviderException' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/Provider/Exception/IdentityProviderException.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Provider\\GenericProvider' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/Provider/GenericProvider.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Provider\\GenericResourceOwner' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/Provider/GenericResourceOwner.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Provider\\ResourceOwnerInterface' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/Provider/ResourceOwnerInterface.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Token\\AccessToken' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/Token/AccessToken.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Token\\AccessTokenInterface' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/Token/AccessTokenInterface.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Token\\ResourceOwnerAccessTokenInterface' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/Token/ResourceOwnerAccessTokenInterface.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Tool\\ArrayAccessorTrait' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/Tool/ArrayAccessorTrait.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Tool\\BearerAuthorizationTrait' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/Tool/BearerAuthorizationTrait.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Tool\\GuardedPropertyTrait' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/Tool/GuardedPropertyTrait.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Tool\\MacAuthorizationTrait' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/Tool/MacAuthorizationTrait.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Tool\\ProviderRedirectTrait' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/Tool/ProviderRedirectTrait.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Tool\\QueryBuilderTrait' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/Tool/QueryBuilderTrait.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Tool\\RequestFactory' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/Tool/RequestFactory.php',
'YoastSEO_Vendor\\League\\OAuth2\\Client\\Tool\\RequiredParameterTrait' => __DIR__ . '/../..' . '/vendor_prefixed/league/oauth2-client/src/Tool/RequiredParameterTrait.php',
'YoastSEO_Vendor\\ORM' => __DIR__ . '/../..' . '/vendor_prefixed/j4mie/idiorm/idiorm.php',
'YoastSEO_Vendor\\Psr\\Container\\ContainerExceptionInterface' => __DIR__ . '/../..' . '/vendor_prefixed/psr/container/src/ContainerExceptionInterface.php',
'YoastSEO_Vendor\\Psr\\Container\\ContainerInterface' => __DIR__ . '/../..' . '/vendor_prefixed/psr/container/src/ContainerInterface.php',
'YoastSEO_Vendor\\Psr\\Container\\NotFoundExceptionInterface' => __DIR__ . '/../..' . '/vendor_prefixed/psr/container/src/NotFoundExceptionInterface.php',
'YoastSEO_Vendor\\Psr\\Http\\Message\\MessageInterface' => __DIR__ . '/../..' . '/vendor_prefixed/psr/http-message/src/MessageInterface.php',
'YoastSEO_Vendor\\Psr\\Http\\Message\\RequestInterface' => __DIR__ . '/../..' . '/vendor_prefixed/psr/http-message/src/RequestInterface.php',
'YoastSEO_Vendor\\Psr\\Http\\Message\\ResponseInterface' => __DIR__ . '/../..' . '/vendor_prefixed/psr/http-message/src/ResponseInterface.php',
'YoastSEO_Vendor\\Psr\\Http\\Message\\ServerRequestInterface' => __DIR__ . '/../..' . '/vendor_prefixed/psr/http-message/src/ServerRequestInterface.php',
'YoastSEO_Vendor\\Psr\\Http\\Message\\StreamInterface' => __DIR__ . '/../..' . '/vendor_prefixed/psr/http-message/src/StreamInterface.php',
'YoastSEO_Vendor\\Psr\\Http\\Message\\UploadedFileInterface' => __DIR__ . '/../..' . '/vendor_prefixed/psr/http-message/src/UploadedFileInterface.php',
'YoastSEO_Vendor\\Psr\\Http\\Message\\UriInterface' => __DIR__ . '/../..' . '/vendor_prefixed/psr/http-message/src/UriInterface.php',
'YoastSEO_Vendor\\Psr\\Log\\AbstractLogger' => __DIR__ . '/../..' . '/vendor_prefixed/psr/log/Psr/Log/AbstractLogger.php',
'YoastSEO_Vendor\\Psr\\Log\\InvalidArgumentException' => __DIR__ . '/../..' . '/vendor_prefixed/psr/log/Psr/Log/InvalidArgumentException.php',
'YoastSEO_Vendor\\Psr\\Log\\LogLevel' => __DIR__ . '/../..' . '/vendor_prefixed/psr/log/Psr/Log/LogLevel.php',
'YoastSEO_Vendor\\Psr\\Log\\LoggerAwareInterface' => __DIR__ . '/../..' . '/vendor_prefixed/psr/log/Psr/Log/LoggerAwareInterface.php',
'YoastSEO_Vendor\\Psr\\Log\\LoggerAwareTrait' => __DIR__ . '/../..' . '/vendor_prefixed/psr/log/Psr/Log/LoggerAwareTrait.php',
'YoastSEO_Vendor\\Psr\\Log\\LoggerInterface' => __DIR__ . '/../..' . '/vendor_prefixed/psr/log/Psr/Log/LoggerInterface.php',
'YoastSEO_Vendor\\Psr\\Log\\LoggerTrait' => __DIR__ . '/../..' . '/vendor_prefixed/psr/log/Psr/Log/LoggerTrait.php',
'YoastSEO_Vendor\\Psr\\Log\\NullLogger' => __DIR__ . '/../..' . '/vendor_prefixed/psr/log/Psr/Log/NullLogger.php',
'YoastSEO_Vendor\\Ruckusing_Adapter_Base' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Ruckusing/Adapter/Base.php',
'YoastSEO_Vendor\\Ruckusing_Adapter_ColumnDefinition' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Ruckusing/Adapter/ColumnDefinition.php',
'YoastSEO_Vendor\\Ruckusing_Adapter_Interface' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Ruckusing/Adapter/Interface.php',
'YoastSEO_Vendor\\Ruckusing_Adapter_MySQL_Base' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Ruckusing/Adapter/MySQL/Base.php',
'YoastSEO_Vendor\\Ruckusing_Adapter_MySQL_TableDefinition' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Ruckusing/Adapter/MySQL/TableDefinition.php',
'YoastSEO_Vendor\\Ruckusing_Adapter_PgSQL_Base' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Ruckusing/Adapter/PgSQL/Base.php',
'YoastSEO_Vendor\\Ruckusing_Adapter_PgSQL_TableDefinition' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Ruckusing/Adapter/PgSQL/TableDefinition.php',
'YoastSEO_Vendor\\Ruckusing_Adapter_Sqlite3_Base' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Ruckusing/Adapter/Sqlite3/Base.php',
'YoastSEO_Vendor\\Ruckusing_Adapter_Sqlite3_TableDefinition' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Ruckusing/Adapter/Sqlite3/TableDefinition.php',
'YoastSEO_Vendor\\Ruckusing_Adapter_TableDefinition' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Ruckusing/Adapter/TableDefinition.php',
'YoastSEO_Vendor\\Ruckusing_BaseMigration' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Ruckusing/Migration/Base.php',
'YoastSEO_Vendor\\Ruckusing_Exception' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Ruckusing/Exception.php',
'YoastSEO_Vendor\\Ruckusing_FrameworkRunner' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Ruckusing/FrameworkRunner.php',
'YoastSEO_Vendor\\Ruckusing_Migration_Base' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Ruckusing/Migration/Base.php',
'YoastSEO_Vendor\\Ruckusing_Task_Base' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Ruckusing/Task/Base.php',
'YoastSEO_Vendor\\Ruckusing_Task_Interface' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Ruckusing/Task/Interface.php',
'YoastSEO_Vendor\\Ruckusing_Task_Manager' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Ruckusing/Task/Manager.php',
'YoastSEO_Vendor\\Ruckusing_Util_Logger' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Ruckusing/Util/Logger.php',
'YoastSEO_Vendor\\Ruckusing_Util_Migrator' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Ruckusing/Util/Migrator.php',
'YoastSEO_Vendor\\Ruckusing_Util_Naming' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Ruckusing/Util/Naming.php',
'YoastSEO_Vendor\\Symfony\\Component\\DependencyInjection\\Argument\\RewindableGenerator' => __DIR__ . '/../..' . '/vendor_prefixed/symfony/dependency-injection/Argument/RewindableGenerator.php',
'YoastSEO_Vendor\\Symfony\\Component\\DependencyInjection\\Container' => __DIR__ . '/../..' . '/vendor_prefixed/symfony/dependency-injection/Container.php',
'YoastSEO_Vendor\\Symfony\\Component\\DependencyInjection\\ContainerInterface' => __DIR__ . '/../..' . '/vendor_prefixed/symfony/dependency-injection/ContainerInterface.php',
'YoastSEO_Vendor\\Symfony\\Component\\DependencyInjection\\Exception\\EnvNotFoundException' => __DIR__ . '/../..' . '/vendor_prefixed/symfony/dependency-injection/Exception/EnvNotFoundException.php',
'YoastSEO_Vendor\\Symfony\\Component\\DependencyInjection\\Exception\\ExceptionInterface' => __DIR__ . '/../..' . '/vendor_prefixed/symfony/dependency-injection/Exception/ExceptionInterface.php',
'YoastSEO_Vendor\\Symfony\\Component\\DependencyInjection\\Exception\\InvalidArgumentException' => __DIR__ . '/../..' . '/vendor_prefixed/symfony/dependency-injection/Exception/InvalidArgumentException.php',
'YoastSEO_Vendor\\Symfony\\Component\\DependencyInjection\\Exception\\LogicException' => __DIR__ . '/../..' . '/vendor_prefixed/symfony/dependency-injection/Exception/LogicException.php',
'YoastSEO_Vendor\\Symfony\\Component\\DependencyInjection\\Exception\\ParameterCircularReferenceException' => __DIR__ . '/../..' . '/vendor_prefixed/symfony/dependency-injection/Exception/ParameterCircularReferenceException.php',
'YoastSEO_Vendor\\Symfony\\Component\\DependencyInjection\\Exception\\RuntimeException' => __DIR__ . '/../..' . '/vendor_prefixed/symfony/dependency-injection/Exception/RuntimeException.php',
'YoastSEO_Vendor\\Symfony\\Component\\DependencyInjection\\Exception\\ServiceCircularReferenceException' => __DIR__ . '/../..' . '/vendor_prefixed/symfony/dependency-injection/Exception/ServiceCircularReferenceException.php',
'YoastSEO_Vendor\\Symfony\\Component\\DependencyInjection\\Exception\\ServiceNotFoundException' => __DIR__ . '/../..' . '/vendor_prefixed/symfony/dependency-injection/Exception/ServiceNotFoundException.php',
'YoastSEO_Vendor\\Symfony\\Component\\DependencyInjection\\ParameterBag\\EnvPlaceholderParameterBag' => __DIR__ . '/../..' . '/vendor_prefixed/symfony/dependency-injection/ParameterBag/EnvPlaceholderParameterBag.php',
'YoastSEO_Vendor\\Symfony\\Component\\DependencyInjection\\ParameterBag\\FrozenParameterBag' => __DIR__ . '/../..' . '/vendor_prefixed/symfony/dependency-injection/ParameterBag/FrozenParameterBag.php',
'YoastSEO_Vendor\\Symfony\\Component\\DependencyInjection\\ParameterBag\\ParameterBag' => __DIR__ . '/../..' . '/vendor_prefixed/symfony/dependency-injection/ParameterBag/ParameterBag.php',
'YoastSEO_Vendor\\Symfony\\Component\\DependencyInjection\\ParameterBag\\ParameterBagInterface' => __DIR__ . '/../..' . '/vendor_prefixed/symfony/dependency-injection/ParameterBag/ParameterBagInterface.php',
'YoastSEO_Vendor\\Symfony\\Component\\DependencyInjection\\ResettableContainerInterface' => __DIR__ . '/../..' . '/vendor_prefixed/symfony/dependency-injection/ResettableContainerInterface.php',
'YoastSEO_Vendor\\Task_Db_Generate' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Task/Db/Generate.php',
'YoastSEO_Vendor\\Task_Db_Migrate' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Task/Db/Migrate.php',
'YoastSEO_Vendor\\Task_Db_Schema' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Task/Db/Schema.php',
'YoastSEO_Vendor\\Task_Db_Setup' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Task/Db/Setup.php',
'YoastSEO_Vendor\\Task_Db_Status' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Task/Db/Status.php',
'YoastSEO_Vendor\\Task_Db_Version' => __DIR__ . '/../..' . '/vendor_prefixed/ruckusing/lib/Task/Db/Version.php',
'Yoast\\WP\\SEO\\Builders\\Indexable_Author_Builder' => __DIR__ . '/../..' . '/src/builders/indexable-author-builder.php',
'Yoast\\WP\\SEO\\Builders\\Indexable_Post_Builder' => __DIR__ . '/../..' . '/src/builders/indexable-post-builder.php',
'Yoast\\WP\\SEO\\Builders\\Indexable_Term_Builder' => __DIR__ . '/../..' . '/src/builders/indexable-term-builder.php',
'Yoast\\WP\\SEO\\Conditionals\\Admin_Conditional' => __DIR__ . '/../..' . '/src/conditionals/admin-conditional.php',
'Yoast\\WP\\SEO\\Conditionals\\Conditional' => __DIR__ . '/../..' . '/src/conditionals/conditional.php',
'Yoast\\WP\\SEO\\Conditionals\\Feature_Flag_Conditional' => __DIR__ . '/../..' . '/src/conditionals/feature-flag-conditional.php',
'Yoast\\WP\\SEO\\Conditionals\\Indexables_Feature_Flag_Conditional' => __DIR__ . '/../..' . '/src/conditionals/indexables-feature-flag-conditional.php',
'Yoast\\WP\\SEO\\Conditionals\\No_Conditionals' => __DIR__ . '/../..' . '/src/conditionals/no-conditionals.php',
'Yoast\\WP\\SEO\\Config\\Dependency_Management' => __DIR__ . '/../..' . '/src/config/dependency-management.php',
'Yoast\\WP\\SEO\\Database\\Database_Setup' => __DIR__ . '/../..' . '/src/database/database-setup.php',
'Yoast\\WP\\SEO\\Database\\Migration_Runner' => __DIR__ . '/../..' . '/src/database/migration-runner.php',
'Yoast\\WP\\SEO\\Database\\Ruckusing_Framework' => __DIR__ . '/../..' . '/src/database/ruckusing-framework.php',
'Yoast\\WP\\SEO\\Exceptions\\Missing_Method' => __DIR__ . '/../..' . '/src/exceptions/missing-method.php',
'Yoast\\WP\\SEO\\Generated\\Cached_Container' => __DIR__ . '/../..' . '/src/generated/container.php',
'Yoast\\WP\\SEO\\Helpers\\Author_Archive_Helper' => __DIR__ . '/../..' . '/src/helpers/author-archive-helper.php',
'Yoast\\WP\\SEO\\Helpers\\Home_Url_Helper' => __DIR__ . '/../..' . '/src/helpers/home-url-helper.php',
'Yoast\\WP\\SEO\\Loader' => __DIR__ . '/../..' . '/src/loader.php',
'Yoast\\WP\\SEO\\Loggers\\Logger' => __DIR__ . '/../..' . '/src/loggers/logger.php',
'Yoast\\WP\\SEO\\Loggers\\Migration_Logger' => __DIR__ . '/../..' . '/src/loggers/migration-logger.php',
'Yoast\\WP\\SEO\\Models\\Indexable' => __DIR__ . '/../..' . '/src/models/indexable.php',
'Yoast\\WP\\SEO\\Models\\Indexable_Extension' => __DIR__ . '/../..' . '/src/models/indexable-extension.php',
'Yoast\\WP\\SEO\\Models\\Primary_Term' => __DIR__ . '/../..' . '/src/models/primary-term.php',
'Yoast\\WP\\SEO\\Models\\SEO_Links' => __DIR__ . '/../..' . '/src/models/seo-links.php',
'Yoast\\WP\\SEO\\Models\\SEO_Meta' => __DIR__ . '/../..' . '/src/models/seo-meta.php',
'Yoast\\WP\\SEO\\ORM\\ORMWrapper' => __DIR__ . '/../..' . '/src/orm/yoast-orm-wrapper.php',
'Yoast\\WP\\SEO\\ORM\\Yoast_Model' => __DIR__ . '/../..' . '/src/orm/yoast-model.php',
'Yoast\\WP\\SEO\\Oauth\\Client' => __DIR__ . '/../..' . '/src/oauth/client.php',
'Yoast\\WP\\SEO\\Repositories\\Indexable_Repository' => __DIR__ . '/../..' . '/src/repositories/indexable-repository.php',
'Yoast\\WP\\SEO\\Repositories\\Primary_Term_Repository' => __DIR__ . '/../..' . '/src/repositories/primary-term-repository.php',
'Yoast\\WP\\SEO\\Repositories\\SEO_Links_Repository' => __DIR__ . '/../..' . '/src/repositories/seo-links-repository.php',
'Yoast\\WP\\SEO\\Repositories\\SEO_Meta_Repository' => __DIR__ . '/../..' . '/src/repositories/seo-meta-repository.php',
'Yoast\\WP\\SEO\\Watchers\\Indexable_Author_Watcher' => __DIR__ . '/../..' . '/src/watchers/indexable-author-watcher.php',
'Yoast\\WP\\SEO\\Watchers\\Indexable_Post_Watcher' => __DIR__ . '/../..' . '/src/watchers/indexable-post-watcher.php',
'Yoast\\WP\\SEO\\Watchers\\Indexable_Term_Watcher' => __DIR__ . '/../..' . '/src/watchers/indexable-term-watcher.php',
'Yoast\\WP\\SEO\\Watchers\\Primary_Term_Watcher' => __DIR__ . '/../..' . '/src/watchers/primary-term-watcher.php',
'Yoast\\WP\\SEO\\WordPress\\Initializer' => __DIR__ . '/../..' . '/src/wordpress/initializer.php',
'Yoast\\WP\\SEO\\WordPress\\Integration' => __DIR__ . '/../..' . '/src/wordpress/integration.php',
'Yoast\\WP\\SEO\\WordPress\\Loadable' => __DIR__ . '/../..' . '/src/wordpress/loadable.php',
'Yoast\\WP\\SEO\\WordPress\\Wrapper' => __DIR__ . '/../..' . '/src/wordpress/wrapper.php',
'Yoast_API_Request' => __DIR__ . '/..' . '/yoast/license-manager/class-api-request.php',
'Yoast_Alerts' => __DIR__ . '/../..' . '/admin/class-yoast-alerts.php',
'Yoast_Dashboard_Widget' => __DIR__ . '/../..' . '/admin/class-yoast-dashboard-widget.php',
'Yoast_Dismissable_Notice_Ajax' => __DIR__ . '/../..' . '/admin/ajax/class-yoast-dismissable-notice.php',
'Yoast_Feature_Toggle' => __DIR__ . '/../..' . '/admin/views/class-yoast-feature-toggle.php',
'Yoast_Feature_Toggles' => __DIR__ . '/../..' . '/admin/views/class-yoast-feature-toggles.php',
'Yoast_Form' => __DIR__ . '/../..' . '/admin/class-yoast-form.php',
'Yoast_Form_Element' => __DIR__ . '/../..' . '/admin/views/interface-yoast-form-element.php',
'Yoast_Form_Fieldset' => __DIR__ . '/../..' . '/deprecated/class-yoast-form-fieldset.php',
'Yoast_I18n_WordPressOrg_v3' => __DIR__ . '/..' . '/yoast/i18n-module/src/i18n-wordpressorg-v3.php',
'Yoast_I18n_v3' => __DIR__ . '/..' . '/yoast/i18n-module/src/i18n-v3.php',
'Yoast_Input_Select' => __DIR__ . '/../..' . '/admin/views/class-yoast-input-select.php',
'Yoast_Input_Validation' => __DIR__ . '/../..' . '/admin/class-yoast-input-validation.php',
'Yoast_License_Manager' => __DIR__ . '/..' . '/yoast/license-manager/class-license-manager.php',
'Yoast_Modal' => __DIR__ . '/../..' . '/deprecated/class-yoast-modal.php',
'Yoast_Network_Admin' => __DIR__ . '/../..' . '/admin/class-yoast-network-admin.php',
'Yoast_Network_Settings_API' => __DIR__ . '/../..' . '/admin/class-yoast-network-settings-api.php',
'Yoast_Notification' => __DIR__ . '/../..' . '/admin/class-yoast-notification.php',
'Yoast_Notification_Center' => __DIR__ . '/../..' . '/admin/class-yoast-notification-center.php',
'Yoast_OnPage_Ajax' => __DIR__ . '/../..' . '/admin/ajax/class-yoast-onpage-ajax.php',
'Yoast_Plugin_Conflict' => __DIR__ . '/../..' . '/admin/class-yoast-plugin-conflict.php',
'Yoast_Plugin_Conflict_Ajax' => __DIR__ . '/../..' . '/admin/ajax/class-yoast-plugin-conflict-ajax.php',
'Yoast_Plugin_License_Manager' => __DIR__ . '/..' . '/yoast/license-manager/class-plugin-license-manager.php',
'Yoast_Plugin_Update_Manager' => __DIR__ . '/..' . '/yoast/license-manager/class-plugin-update-manager.php',
'Yoast_Product' => __DIR__ . '/..' . '/yoast/license-manager/class-product.php',
'Yoast_Theme_License_Manager' => __DIR__ . '/..' . '/yoast/license-manager/class-theme-license-manager.php',
'Yoast_Theme_Update_Manager' => __DIR__ . '/..' . '/yoast/license-manager/class-theme-update-manager.php',
'Yoast_Update_Manager' => __DIR__ . '/..' . '/yoast/license-manager/class-update-manager.php',
'Yoast_View_Utils' => __DIR__ . '/../..' . '/admin/views/class-view-utils.php',
'iYoast_License_Manager' => __DIR__ . '/..' . '/yoast/license-manager/class-license-manager.php',
);
public static function getInitializer(ClassLoader $loader)
{
return \Closure::bind(function () use ($loader) {
$loader->prefixLengthsPsr4 = ComposerStaticInita410e01cd5a7f541b8842d66f197f91f::$prefixLengthsPsr4;
$loader->prefixDirsPsr4 = ComposerStaticInita410e01cd5a7f541b8842d66f197f91f::$prefixDirsPsr4;
$loader->classMap = ComposerStaticInita410e01cd5a7f541b8842d66f197f91f::$classMap;
}, null, ClassLoader::class);
}
}

View File

@@ -0,0 +1,57 @@
# Change Log
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/)
and this project adheres to [Semantic Versioning](http://semver.org/).
## 3.1.1
### Fixed
- Reverts the capitalization of the class names.
## 3.1.0
### Fixed
- Fixes a bug where a 'You're using WordPress in a language we don't support yet.' notice would be shown for formal and informal locales when the locale actually was supported.
## 3.0.0
### Added
- Added functionality to handle how the i18n-promobox notification is displayed.
### Changed
- [DEPRECATION] Postfix all classes with _v3. This prevents autoload collisions with 2.0 versions.
## 2.0.0
### Added
- Add native support for WordPress.org
### Changed
- [DEPRECATION] Postfix all classes with _v2. This prevents autoload collisions with 1.0 versions.
## 1.2.1
### Removed
- Remove backwards incompatible changes. These are only backwards incompatible in a WordPress context, but this is the target audience.
## 1.2.0
### Added
- Add native support for WordPress.org
## 1.1.0
### Changed
- Use the user locale for deciding whether to display the message to the user.
## 1.0.1
### Fixed
- Fix issue where a notice would be shown if the API response had no wp_locale.
## 1.0.0
### Added
- Initial release of the i18n module to show the user a notice about their
language not having been translated to 100%.

View File

@@ -0,0 +1,418 @@
<?php
/**
* Yoast I18n module.
*
* @package Yoast\I18n-module
*/
/**
* This class defines a promo box and checks your translation site's API for stats about it,
* then shows them to the user.
*/
class Yoast_I18n_v3 {
/**
* Your translation site's logo.
*
* @var string
*/
private $glotpress_logo;
/**
* Your translation site's name.
*
* @var string
*/
private $glotpress_name;
/**
* Your translation site's URL.
*
* @var string
*/
private $glotpress_url;
/**
* The URL to actually do the API request to.
*
* @var string
*/
private $api_url;
/**
* Hook where you want to show the promo box.
*
* @var string
*/
private $hook;
/**
* Will contain the site's locale.
*
* @access private
* @var string
*/
private $locale;
/**
* Will contain the locale's name, obtained from your translation site.
*
* @access private
* @var string
*/
private $locale_name;
/**
* Will contain the percentage translated for the plugin translation project in the locale.
*
* @access private
* @var int
*/
private $percent_translated;
/**
* Name of your plugin.
*
* @var string
*/
private $plugin_name;
/**
* Project slug for the project on your translation site.
*
* @var string
*/
private $project_slug;
/**
* URL to point to for registration links.
*
* @var string
*/
private $register_url;
/**
* Your plugins textdomain.
*
* @var string
*/
private $textdomain;
/**
* Indicates whether there's a translation available at all.
*
* @access private
* @var bool
*/
private $translation_exists;
/**
* Indicates whether the translation's loaded.
*
* @access private
* @var bool
*/
private $translation_loaded;
/**
* Class constructor.
*
* @param array $args Contains the settings for the class.
* @param bool $show_translation_box Whether the translation box should be shown.
*/
public function __construct( $args, $show_translation_box = true ) {
if ( ! is_admin() ) {
return;
}
$this->locale = $this->get_admin_locale();
if ( $this->is_default_language( $this->locale ) ) {
return;
}
$this->init( $args );
if ( $show_translation_box ) {
add_action( $this->hook, array( $this, 'promo' ) );
}
}
/**
* Returns whether the language is en_US.
*
* @param string $language The language to check.
*
* @return bool Returns true if the language is en_US.
*/
protected function is_default_language( $language ) {
return 'en_US' === $language;
}
/**
* Returns the locale used in the admin.
*
* WordPress 4.7 introduced the ability for users to specify an Admin language
* different from the language used on the front end. This checks if the feature
* is available and returns the user's language, with a fallback to the site's language.
* Can be removed when support for WordPress 4.6 will be dropped, in favor
* of WordPress get_user_locale() that already fallbacks to the sites locale.
*
* @returns string The locale.
*/
private function get_admin_locale() {
if ( function_exists( 'get_user_locale' ) ) {
return get_user_locale();
}
return get_locale();
}
/**
* This is where you decide where to display the messages and where you set the plugin specific variables.
*
* @access private
*
* @param array $args Contains the settings for the class.
*/
private function init( $args ) {
foreach ( $args as $key => $arg ) {
$this->$key = $arg;
}
}
/**
* Check whether the promo should be hidden or not.
*
* @access private
*
* @return bool
*/
private function hide_promo() {
$hide_promo = get_transient( 'yoast_i18n_' . $this->project_slug . '_promo_hide' );
if ( ! $hide_promo ) {
if ( filter_input( INPUT_GET, 'remove_i18n_promo', FILTER_VALIDATE_INT ) === 1 ) {
// No expiration time, so this would normally not expire, but it wouldn't be copied to other sites etc.
set_transient( 'yoast_i18n_' . $this->project_slug . '_promo_hide', true );
$hide_promo = true;
}
}
return $hide_promo;
}
/**
* Returns the i18n_promo message from the i18n_module. Returns en empty string if the promo shouldn't be shown.
*
* @access public
*
* @return string The i18n promo message.
*/
public function get_promo_message() {
if ( ! $this->is_default_language( $this->locale ) && ! $this->hide_promo() ) {
return $this->promo_message();
}
return '';
}
/**
* Generates a promo message.
*
* @access private
*
* @return bool|string $message
*/
private function promo_message() {
$this->translation_details();
$message = false;
if ( $this->translation_exists && $this->translation_loaded && $this->percent_translated < 90 ) {
/* translators: 1: language name; 3: completion percentage; 4: link to translation platform. */
$message = __( 'As you can see, there is a translation of this plugin in %1$s. This translation is currently %3$d%% complete. We need your help to make it complete and to fix any errors. Please register at %4$s to help complete the translation to %1$s!', $this->textdomain );
}
elseif ( ! $this->translation_loaded && $this->translation_exists ) {
/* translators: 1: language name; 2: plugin name; 3: completion percentage; 4: link to translation platform. */
$message = __( 'You\'re using WordPress in %1$s. While %2$s has been translated to %1$s for %3$d%%, it\'s not been shipped with the plugin yet. You can help! Register at %4$s to help complete the translation to %1$s!', $this->textdomain );
}
elseif ( ! $this->translation_exists ) {
/* translators: 2: plugin name; 4: link to translation platform. */
$message = __( 'You\'re using WordPress in a language we don\'t support yet. We\'d love for %2$s to be translated in that language too, but unfortunately, it isn\'t right now. You can change that! Register at %4$s to help translate it!', $this->textdomain );
}
$registration_link = sprintf(
'<a href="%1$s">%2$s</a>',
esc_url( $this->register_url ),
esc_html( $this->glotpress_name )
);
$message = sprintf(
esc_html( $message ),
esc_html( $this->locale_name ),
esc_html( $this->plugin_name ),
(int) $this->percent_translated,
$registration_link
);
if ( $message ) {
$message = '<p>' . $message . '</p><p><a href="' . esc_url( $this->register_url ) . '">' . esc_html__( 'Register now &raquo;', $this->textdomain ) . '</a></p>';
}
return $message;
}
/**
* Returns a button that can be used to dismiss the i18n-message.
*
* @access private
*
* @return string
*/
public function get_dismiss_i18n_message_button() {
return sprintf(
/* translators: %1$s is the notification dismissal link start tag, %2$s is the link closing tag. */
esc_html__( '%1$sPlease don\'t show me this notification anymore%2$s', $this->textdomain ),
'<a class="button" href="' . esc_url( add_query_arg( array( 'remove_i18n_promo' => '1' ) ) ) . '">',
'</a>'
);
}
/**
* Outputs a promo box.
*
* @access public
*/
public function promo() {
$message = $this->get_promo_message();
if ( $message ) {
echo '<div id="i18n_promo_box" style="border:1px solid #ccc;background-color:#fff;padding:10px;max-width:650px; overflow: hidden;">';
echo '<a href="' . esc_url( add_query_arg( array( 'remove_i18n_promo' => '1' ) ) ) . '" style="color:#333;text-decoration:none;font-weight:bold;font-size:16px;border:1px solid #ccc;padding:1px 4px;" class="alignright">X</a>';
echo '<div>';
/* translators: %s: plugin name. */
echo '<h2>' . sprintf( esc_html__( 'Translation of %s', $this->textdomain ), esc_html( $this->plugin_name ) ) . '</h2>';
if ( isset( $this->glotpress_logo ) && is_string( $this->glotpress_logo ) && '' !== $this->glotpress_logo ) {
echo '<a href="' . esc_url( $this->register_url ) . '"><img class="alignright" style="margin:0 5px 5px 5px;max-width:200px;" src="' . esc_url( $this->glotpress_logo ) . '" alt="' . esc_attr( $this->glotpress_name ) . '"/></a>';
}
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- correctly escaped in promo_message() method.
echo $message;
echo '</div>';
echo '</div>';
}
}
/**
* Try to find the transient for the translation set or retrieve them.
*
* @access private
*
* @return object|null
*/
private function find_or_initialize_translation_details() {
$set = get_transient( 'yoast_i18n_' . $this->project_slug . '_' . $this->locale );
if ( ! $set ) {
$set = $this->retrieve_translation_details();
set_transient( 'yoast_i18n_' . $this->project_slug . '_' . $this->locale, $set, DAY_IN_SECONDS );
}
return $set;
}
/**
* Try to get translation details from cache, otherwise retrieve them, then parse them.
*
* @access private
*/
private function translation_details() {
$set = $this->find_or_initialize_translation_details();
$this->translation_exists = ! is_null( $set );
$this->translation_loaded = is_textdomain_loaded( $this->textdomain );
$this->parse_translation_set( $set );
}
/**
* The API URL to use when requesting translation information.
*
* @param string $api_url The new API URL.
*/
public function set_api_url( $api_url ) {
$this->api_url = $api_url;
}
/**
* Returns the API URL to use when requesting translation information.
*
* @return string
*/
private function get_api_url() {
if ( empty( $this->api_url ) ) {
$this->api_url = trailingslashit( $this->glotpress_url ) . 'api/projects/' . $this->project_slug;
}
return $this->api_url;
}
/**
* Retrieve the translation details from Yoast Translate.
*
* @access private
*
* @return object|null
*/
private function retrieve_translation_details() {
$api_url = $this->get_api_url();
$resp = wp_remote_get( $api_url );
if ( is_wp_error( $resp ) || wp_remote_retrieve_response_code( $resp ) !== 200 ) {
return null;
}
$body = wp_remote_retrieve_body( $resp );
unset( $resp );
if ( $body ) {
$body = json_decode( $body );
if ( empty( $body->translation_sets ) ) {
return null;
}
foreach ( $body->translation_sets as $set ) {
if ( ! property_exists( $set, 'wp_locale' ) ) {
continue;
}
// For informal and formal locales, we have to complete the locale code by concatenating the slug ('formal' or 'informal') to the xx_XX part.
if ( $set->slug !== 'default' && strtolower( $this->locale ) === strtolower( $set->wp_locale . '_' . $set->slug ) ) {
return $set;
}
if ( $this->locale === $set->wp_locale ) {
return $set;
}
}
}
return null;
}
/**
* Set the needed private variables based on the results from Yoast Translate.
*
* @param object $set The translation set.
*
* @access private
*/
private function parse_translation_set( $set ) {
if ( $this->translation_exists && is_object( $set ) ) {
$this->locale_name = $set->name;
$this->percent_translated = $set->percent_translated;
}
else {
$this->locale_name = '';
$this->percent_translated = '';
}
}
}

View File

@@ -0,0 +1,93 @@
<?php
/**
* Yoast I18n module.
*
* @package Yoast\I18n-module
*/
/**
* The Yoast i18n module with a connection to WordPress.org.
*/
class Yoast_I18n_WordPressOrg_v3 {
/**
* The i18n object that presents the user with the notification.
*
* @var yoast_i18n_v3
*/
protected $i18n;
/**
* Constructs the i18n module for wordpress.org.
*
* Required fields are the 'textdomain', 'plugin_name' and 'hook'.
*
* @param array $args The settings for the i18n module.
* @param bool $show_translation_box Whether the translation box should be shown.
*/
public function __construct( $args, $show_translation_box = true ) {
$args = $this->set_defaults( $args );
$this->i18n = new Yoast_I18n_v3( $args, $show_translation_box );
$this->set_api_url( $args['textdomain'] );
}
/**
* Returns the i18n_promo message from the i18n_module.
*
* @access public
*
* @return string The i18n promo message or an empty string if the promo shouldn't be shown.
*/
public function get_promo_message() {
return $this->i18n->get_promo_message();
}
/**
* Returns a button that can be used to dismiss the i18n-message.
*
* @access private
*
* @return string
*/
public function get_dismiss_i18n_message_button() {
return $this->i18n->get_dismiss_i18n_message_button();
}
/**
* Sets the default values for wordpress.org
*
* @param array $args The arguments to set defaults for.
*
* @return array The arguments with the arguments set.
*/
private function set_defaults( $args ) {
if ( ! isset( $args['glotpress_logo'] ) ) {
$args['glotpress_logo'] = 'https://plugins.svn.wordpress.org/' . $args['textdomain'] . '/assets/icon-128x128.png';
}
if ( ! isset( $args['register_url'] ) ) {
$args['register_url'] = 'https://translate.wordpress.org/projects/wp-plugins/' . $args['textdomain'] . '/';
}
if ( ! isset( $args['glotpress_name'] ) ) {
$args['glotpress_name'] = 'Translating WordPress';
}
if ( ! isset( $args['project_slug'] ) ) {
$args['project_slug'] = $args['textdomain'];
}
return $args;
}
/**
* Set the API URL on the i18n object.
*
* @param string $textdomain The textdomain to use for the API URL.
*/
private function set_api_url( $textdomain ) {
$this->i18n->set_api_url( 'https://translate.wordpress.org/api/projects/wp-plugins/' . $textdomain . '/stable/' );
}
}

View File

@@ -0,0 +1,35 @@
# Change Log
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/)
and this project adheres to [Semantic Versioning](http://semver.org/).
## [1.6.0] - 2017-08-22
### Added
- Added a way to overwrite the result of the license manager in the implementing plugin. This is done by applying `yoast-license-valid` and `yoast-show-license-notice` filters.
### Fixed
- Fixed activation of licenses on multisites and on wpml installations.
## [1.5.0] - 2017-02-28
### Added
- Add a `custom_message` option to the response which will be shown as a custom message after the default message.
- Add a `custom_message_[locale]` option to the response which will be shown as a custom message only if the user locale is set to the locale in the message key.
## [1.4.0] - 2016-11-11
### Added
- Add a `get_extension_url` method to `Yoast_Product` to retrieve the URL where people can extend/upgrade their license.
- Add a `set_extension_url` method to `Yoast_Product` to set the URL where people can extend/upgrade their license.
### Changed
- Removed development files from zip that GitHub generates by settings export-ignore for certain files in `.gitattributes`, props [Danny van Kooten](https://github.com/dannyvankooten).
### Fixed
- Add missing gettext functions to several strings, props [Pedro Mendonça](https://github.com/pedro-mendonca)
- Improve text string for the new version notification, props [Xavi Ivars](https://github.com/xavivars)
- Fix alignment of license fields by setting WordPress classes that have certain default styles that align form elements correctly.
## [1.3.0] - 2016-06-14
### Fixed
- Fix issue where the transient would be overwritten for different products with different slugs.

View File

@@ -0,0 +1,138 @@
<?php
if ( ! class_exists( "Yoast_API_Request", false ) ) {
/**
* Handles requests to the Yoast EDD API
*/
class Yoast_API_Request {
/**
* @var string Request URL
*/
private $url = '';
/**
* @var array Request parameters
*/
private $args = array(
'method' => 'GET',
'timeout' => 10,
'sslverify' => false,
'headers' => array(
'Accept-Encoding' => '*',
'X-Yoast-EDD' => '1'
)
);
/**
* @var boolean
*/
private $success = false;
/**
* @var mixed
*/
private $response;
/**
* @var string
*/
private $error_message = '';
/**
* Constructor
*
* @param string url
* @param array $args
*/
public function __construct( $url, array $args = array() ) {
// set api url
$this->url = $url;
// set request args (merge with defaults)
$this->args = wp_parse_args( $args, $this->args );
// fire the request
$this->success = $this->fire();
}
/**
* Fires the request, automatically called from constructor
*
* @return boolean
*/
private function fire() {
// fire request to shop
$response = wp_remote_request( $this->url, $this->args );
// validate raw response
if( $this->validate_raw_response( $response ) === false ) {
return false;
}
// decode the response
$this->response = json_decode( wp_remote_retrieve_body( $response ) );
// response should be an object
if( ! is_object( $this->response ) ) {
$this->error_message = 'No JSON object was returned.';
return false;
}
return true;
}
/**
* @param object $response
* @return boolean
*/
private function validate_raw_response( $response ) {
// make sure response came back okay
if( is_wp_error( $response ) ) {
$this->error_message = $response->get_error_message();
return false;
}
// check response code, should be 200
$response_code = wp_remote_retrieve_response_code( $response );
if( false === strstr( $response_code, '200' ) ) {
$response_message = wp_remote_retrieve_response_message( $response );
$this->error_message = "{$response_code} {$response_message}";
return false;
}
return true;
}
/**
* Was a valid response returned?
*
* @return boolean
*/
public function is_valid() {
return ( $this->success === true );
}
/**
* @return string
*/
public function get_error_message() {
return $this->error_message;
}
/**
* @return object
*/
public function get_response() {
return $this->response;
}
}
}

View File

@@ -0,0 +1,781 @@
<?php
if ( ! interface_exists( 'iYoast_License_Manager', false ) ) {
interface iYoast_License_Manager {
public function specific_hooks();
public function setup_auto_updater();
}
}
if ( ! class_exists( 'Yoast_License_Manager', false ) ) {
/**
* Class Yoast_License_Manager
*/
abstract class Yoast_License_Manager implements iYoast_License_Manager {
/**
* @const VERSION The version number of the License_Manager class
*/
const VERSION = 1;
/**
* @var Yoast_License The license
*/
protected $product;
/**
* @var string
*/
private $license_constant_name = '';
/**
* @var boolean True if license is defined with a constant
*/
private $license_constant_is_defined = false;
/**
* @var boolean True if remote license activation just failed
*/
private $remote_license_activation_failed = false;
/**
* @var array Array of license related options
*/
private $options = array();
/**
* @var string Used to prefix ID's, option names, etc..
*/
protected $prefix;
/**
* @var bool Boolean indicating whether this plugin is network activated
*/
protected $is_network_activated = false;
/**
* Constructor
*
* @param Yoast_Product $product
*/
public function __construct( Yoast_Product $product ) {
// Set the license
$this->product = $product;
// set prefix
$this->prefix = sanitize_title_with_dashes( $this->product->get_item_name() . '_', null, 'save' );
// maybe set license key from constant
$this->maybe_set_license_key_from_constant();
}
/**
* Setup hooks
*
*/
public function setup_hooks() {
// show admin notice if license is not active
add_action( 'admin_notices', array( $this, 'display_admin_notices' ) );
// catch POST requests from license form
add_action( 'admin_init', array( $this, 'catch_post_request' ) );
// Adds the plugin to the active extensions.
add_filter( 'yoast-active-extensions', array( $this, 'set_active_extension' ) );
// setup item type (plugin|theme) specific hooks
$this->specific_hooks();
// setup the auto updater
$this->setup_auto_updater();
}
/**
* Checks if the license is valid and put it into the list with extensions.
*
* @param array $extensions The extensions used in Yoast SEO.
*
* @return array
*/
public function set_active_extension( $extensions ) {
if ( ! $this->license_is_valid() ) {
$this->set_license_key( 'yoast-dummy-license' );
$this->activate_license();
}
if ( $this->license_is_valid() ) {
$extensions[] = $this->product->get_slug();
}
return $extensions;
}
/**
* Display license specific admin notices, namely:
*
* - License for the product isn't activated
* - External requests are blocked through WP_HTTP_BLOCK_EXTERNAL
*/
public function display_admin_notices() {
if ( ! current_user_can( 'manage_options' ) ) {
return;
}
// show notice if license is invalid
if ( $this->show_license_notice() && ! $this->license_is_valid() ) {
if ( $this->get_license_key() == '' ) {
$message = __( '<b>Warning!</b> You didn\'t set your %s license key yet, which means you\'re missing out on updates and support! <a href="%s">Enter your license key</a> or <a href="%s" target="_blank">get a license here</a>.' );
} else {
$message = __( '<b>Warning!</b> Your %s license is inactive which means you\'re missing out on updates and support! <a href="%s">Activate your license</a> or <a href="%s" target="_blank">get a license here</a>.' );
}
?>
<div class="notice notice-error yoast-notice-error">
<p><?php printf( __( $message, $this->product->get_text_domain() ), $this->product->get_item_name(), $this->product->get_license_page_url(), $this->product->get_tracking_url( 'activate-license-notice' ) ); ?></p>
</div>
<?php
}
// show notice if external requests are blocked through the WP_HTTP_BLOCK_EXTERNAL constant
if ( defined( "WP_HTTP_BLOCK_EXTERNAL" ) && WP_HTTP_BLOCK_EXTERNAL === true ) {
// check if our API endpoint is in the allowed hosts
$host = parse_url( $this->product->get_api_url(), PHP_URL_HOST );
if ( ! defined( "WP_ACCESSIBLE_HOSTS" ) || stristr( WP_ACCESSIBLE_HOSTS, $host ) === false ) {
?>
<div class="notice notice-error yoast-notice-error">
<p><?php printf( __( '<b>Warning!</b> You\'re blocking external requests which means you won\'t be able to get %s updates. Please add %s to %s.', $this->product->get_text_domain() ), $this->product->get_item_name(), '<strong>' . $host . '</strong>', '<code>WP_ACCESSIBLE_HOSTS</code>' ); ?></p>
</div>
<?php
}
}
}
/**
* Set a notice to display in the admin area
*
* @param string $type error|updated
* @param string $message The message to display
*/
protected function set_notice( $message, $success = true ) {
$css_class = ( $success ) ? 'notice-success yoast-notice-success' : 'notice-error yoast-notice-error';
add_settings_error( $this->prefix . 'license', 'license-notice', $message, $css_class );
}
/**
* Remotely activate License
* @return boolean True if the license is now activated, false if not
*/
public function activate_license() {
$result = $this->call_license_api( 'activate' );
if ( $result ) {
// show success notice if license is valid
if ( $result->license === 'valid' ) {
$success = true;
$message = $this->get_successful_activation_message( $result );
} else {
$this->remote_license_activation_failed = true;
$success = false;
$message = $this->get_unsuccessful_activation_message( $result );
}
// Append custom HTML message to default message.
$message .= $this->get_custom_message( $result );
if ( $this->show_license_notice() ) {
$this->set_notice( $message, $success );
}
$this->set_license_status( $result->license );
}
return $this->license_is_valid();
}
/**
* Remotely deactivate License
* @return boolean True if the license is now deactivated, false if not
*/
public function deactivate_license() {
$result = $this->call_license_api( 'deactivate' );
if ( $result ) {
// show notice if license is deactivated
if ( $result->license === 'deactivated' ) {
$success = true;
$message = sprintf( __( "Your %s license has been deactivated.", $this->product->get_text_domain() ), $this->product->get_item_name() );
} else {
$success = false;
$message = sprintf( __( "Failed to deactivate your %s license.", $this->product->get_text_domain() ), $this->product->get_item_name() );
}
$message .= $this->get_custom_message( $result );
// Append custom HTML message to default message.
if ( $this->show_license_notice() ) {
$this->set_notice( $message, $success );
}
$this->set_license_status( $result->license );
}
return ( $this->get_license_status() === 'deactivated' );
}
/**
* Returns the home url with the following modifications:
*
* In case of a multisite setup we return the network_home_url.
* In case of no multisite setup we return the home_url while overriding the WPML filter.
*/
public function get_url() {
// Add a new filter to undo WPML's changing of home url.
add_filter( 'wpml_get_home_url', array( $this, 'wpml_get_home_url' ), 10, 2 );
// If the plugin is network activated, use the network home URL.
if ( $this->is_network_activated ) {
$url = network_home_url();
}
// Otherwise use the home URL for this specific site.
if ( ! $this->is_network_activated ) {
$url = home_url();
}
remove_filter( 'wpml_get_home_url', array( $this, 'wpml_get_home_url' ), 10 );
return $url;
}
/**
* Returns the original URL instead of the language-enriched URL.
* This method gets automatically triggered by the wpml_get_home_url filter.
*
* @param string $home_url The url altered by WPML. Unused.
* @param string $url The url that isn't altered by WPML.
*
* @return string The original url.
*/
public function wpml_get_home_url( $home_url, $url ) {
return $url;
}
/**
* @param string $action activate|deactivate
*
* @return mixed
*/
protected function call_license_api( $action ) {
// don't make a request if license key is empty
if ( $this->get_license_key() === '' ) {
return false;
}
// data to send in our API request
$api_params = array(
'edd_action' => $action . '_license',
'license' => $this->get_license_key(),
'item_name' => urlencode( trim( $this->product->get_item_name() ) ),
'url' => $this->get_url()
// grab the URL straight from the option to prevent filters from breaking it.
);
// create api request url
$url = add_query_arg( $api_params, $this->product->get_api_url() );
require_once dirname( __FILE__ ) . '/class-api-request.php';
$request = new Yoast_API_Request( $url );
if ( $request->is_valid() !== true ) {
$this->set_notice( sprintf( __( "Request error: \"%s\" (%scommon license notices%s)", $this->product->get_text_domain() ), $request->get_error_message(), '<a href="http://kb.yoast.com/article/13-license-activation-notices">', '</a>' ), false );
}
// get response
return $request->get_response();
}
/**
* Set the license status
*
* @param string $license_status
*/
public function set_license_status( $license_status ) {
$this->set_option( 'status', $license_status );
}
/**
* Get the license status
*
* @return string $license_status;
*/
public function get_license_status() {
$license_status = $this->get_option( 'status' );
return trim( $license_status );
}
/**
* Set the license key
*
* @param string $license_key
*/
public function set_license_key( $license_key ) {
$this->set_option( 'key', $license_key );
}
/**
* Gets the license key from constant or option
*
* @return string $license_key
*/
public function get_license_key() {
$license_key = $this->get_option( 'key' );
return trim( $license_key );
}
/**
* Gets the license expiry date
*
* @return string
*/
public function get_license_expiry_date() {
return $this->get_option( 'expiry_date' );
}
/**
* Stores the license expiry date
*/
public function set_license_expiry_date( $expiry_date ) {
$this->set_option( 'expiry_date', $expiry_date );
}
/**
* Checks whether the license status is active
*
* @return boolean True if license is active
*/
public function license_is_valid() {
return ( $this->get_license_status() === 'valid' );
}
/**
* Get all license related options
*
* @return array Array of license options
*/
protected function get_options() {
// create option name
$option_name = $this->prefix . 'license';
// get array of options from db
if ( $this->is_network_activated ) {
$options = get_site_option( $option_name, array() );
} else {
$options = get_option( $option_name, array() );
}
// setup array of defaults
$defaults = array(
'key' => '',
'status' => '',
'expiry_date' => ''
);
// merge options with defaults
$this->options = wp_parse_args( $options, $defaults );
return $this->options;
}
/**
* Set license related options
*
* @param array $options Array of new license options
*/
protected function set_options( array $options ) {
// create option name
$option_name = $this->prefix . 'license';
// update db
if ( $this->is_network_activated ) {
update_site_option( $option_name, $options );
} else {
update_option( $option_name, $options );
}
}
/**
* Gets a license related option
*
* @param string $name The option name
*
* @return mixed The option value
*/
protected function get_option( $name ) {
$options = $this->get_options();
return $options[ $name ];
}
/**
* Set a license related option
*
* @param string $name The option name
* @param mixed $value The option value
*/
protected function set_option( $name, $value ) {
// get options
$options = $this->get_options();
// update option
$options[ $name ] = $value;
// save options
$this->set_options( $options );
}
public function show_license_form_heading() {
?>
<h3>
<?php printf( __( "%s: License Settings", $this->product->get_text_domain() ), $this->product->get_item_name() ); ?>
&nbsp; &nbsp;
</h3>
<?php
}
/**
* Show a form where users can enter their license key
*
* @param boolean $embedded Boolean indicating whether this form is embedded in another form?
*/
public function show_license_form( $embedded = true ) {
$key_name = $this->prefix . 'license_key';
$nonce_name = $this->prefix . 'license_nonce';
$action_name = $this->prefix . 'license_action';
$api_host_available = $this->get_api_availability();
$visible_license_key = $this->get_license_key();
// obfuscate license key
$obfuscate = ( strlen( $this->get_license_key() ) > 5 && ( $this->license_is_valid() || ! $this->remote_license_activation_failed ) );
if ( $obfuscate ) {
$visible_license_key = str_repeat( '*', strlen( $this->get_license_key() ) - 4 ) . substr( $this->get_license_key(), - 4 );
}
// make license key readonly when license key is valid or license is defined with a constant
$readonly = ( $this->license_is_valid() || $this->license_constant_is_defined );
require dirname( __FILE__ ) . '/views/form.php';
// enqueue script in the footer
add_action( 'admin_footer', array( $this, 'output_script' ), 99 );
}
/**
* Check if the license form has been submitted
*/
public function catch_post_request() {
$name = $this->prefix . 'license_key';
// check if license key was posted and not empty
if ( ! isset( $_POST[ $name ] ) ) {
return;
}
// run a quick security check
$nonce_name = $this->prefix . 'license_nonce';
if ( ! check_admin_referer( $nonce_name, $nonce_name ) ) {
return;
}
// @TODO: check for user cap?
// get key from posted value
$license_key = $_POST[ $name ];
// check if license key doesn't accidentally contain asterisks
if ( strstr( $license_key, '*' ) === false ) {
// sanitize key
$license_key = trim( sanitize_key( $_POST[ $name ] ) );
// save license key
$this->set_license_key( $license_key );
}
// does user have an activated valid license
if ( ! $this->license_is_valid() ) {
// try to auto-activate license
return $this->activate_license();
}
$action_name = $this->prefix . 'license_action';
// was one of the action buttons clicked?
if ( isset( $_POST[ $action_name ] ) ) {
$action = trim( $_POST[ $action_name ] );
switch ( $action ) {
case 'activate':
return $this->activate_license();
case 'deactivate':
return $this->deactivate_license();
}
}
}
/**
* Output the script containing the YoastLicenseManager JS Object
*
* This takes care of disabling the 'activate' and 'deactivate' buttons
*/
public function output_script() {
require_once dirname( __FILE__ ) . '/views/script.php';
}
/**
* Set the constant used to define the license
*
* @param string $license_constant_name The license constant name
*/
public function set_license_constant_name( $license_constant_name ) {
$this->license_constant_name = trim( $license_constant_name );
$this->maybe_set_license_key_from_constant();
}
/**
* Get the API availability information
*
* @return array
*/
protected function get_api_availability() {
return array(
'url' => $this->product->get_api_url(),
'availability' => $this->check_api_host_availability(),
'curl_version' => $this->get_curl_version(),
);
}
/**
* Check if the API host address is available from this server
*
* @return bool
*/
private function check_api_host_availability() {
$wp_http = new WP_Http();
if ( $wp_http->block_request( $this->product->get_api_url() ) === false ) {
return true;
}
return false;
}
/**
* Get the current curl version, or false
*
* @return mixed
*/
protected function get_curl_version() {
if ( function_exists( 'curl_version' ) ) {
$curl_version = curl_version();
if ( isset( $curl_version['version'] ) ) {
return $curl_version['version'];
}
}
return false;
}
/**
* Maybe set license key from a defined constant
*/
private function maybe_set_license_key_from_constant() {
if ( empty( $this->license_constant_name ) ) {
// generate license constant name
$this->set_license_constant_name( strtoupper( str_replace( array(
' ',
'-'
), '', sanitize_key( $this->product->get_item_name() ) ) ) . '_LICENSE' );
}
// set license key from constant
if ( defined( $this->license_constant_name ) ) {
$license_constant_value = constant( $this->license_constant_name );
// update license key value with value of constant
if ( $this->get_license_key() !== $license_constant_value ) {
$this->set_license_key( $license_constant_value );
}
$this->license_constant_is_defined = true;
}
}
/**
* Determine what message should be shown for a successful license activation
*
* @param Object $result Result of a request.
*
* @return string
*/
protected function get_successful_activation_message( $result ) {
// Get expiry date.
if ( isset( $result->expires ) ) {
$this->set_license_expiry_date( $result->expires );
$expiry_date = strtotime( $result->expires );
} else {
$expiry_date = false;
}
// Always show that it was successful.
$message = sprintf( __( "Your %s license has been activated. ", $this->product->get_text_domain() ), $this->product->get_item_name() );
// Show a custom notice it is an unlimited license.
if ( $result->license_limit == 0 ) {
$message .= __( "You have an unlimited license. ", $this->product->get_text_domain() );
} else {
$message .= sprintf( _n( "You have used %d/%d activation. ", "You have used %d/%d activations. ", $result->license_limit, $this->product->get_text_domain() ), $result->site_count, $result->license_limit );
}
// add upgrade notice if user has less than 3 activations left
if ( $result->license_limit > 0 && ( $result->license_limit - $result->site_count ) <= 3 ) {
$message .= sprintf( __( '<a href="%s">Did you know you can upgrade your license?</a> ', $this->product->get_text_domain() ), $this->product->get_extension_url( 'license-nearing-limit-notice' ) );
}
if ( $expiry_date !== false && $expiry_date < strtotime( "+1 month" ) ) {
// Add extend notice if license is expiring in less than 1 month.
$days_left = round( ( $expiry_date - time() ) / 86400 );
$message .= sprintf( _n( '<a href="%s">Your license is expiring in %d day, would you like to extend it?</a> ', '<a href="%s">Your license is expiring in %d days, would you like to extend it?</a> ', $days_left, $this->product->get_text_domain() ), $this->product->get_extension_url( 'license-expiring-notice' ), $days_left );
}
return $message;
}
/**
* Determine what message should be shown for an unsuccessful activation
*
* @param Object $result Result of a request.
*
* @return string
*/
protected function get_unsuccessful_activation_message( $result ) {
// Default message if we cannot detect anything more specific.
$message = __( 'Failed to activate your license, your license key seems to be invalid.', $this->product->get_text_domain() );
if ( ! empty( $result->error ) ) {
switch ( $result->error ) {
// Show notice if user is at their activation limit.
case 'no_activations_left':
$message = sprintf( __( 'You\'ve reached your activation limit. You must <a href="%s">upgrade your license</a> to use it on this site.', $this->product->get_text_domain() ), $this->product->get_extension_url( 'license-at-limit-notice' ) );
break;
// Show notice if the license is expired.
case 'expired':
$message = sprintf( __( 'Your license has expired. You must <a href="%s">extend your license</a> in order to use it again.', $this->product->get_text_domain() ), $this->product->get_extension_url( 'license-expired-notice' ) );
break;
}
}
return $message;
}
/**
* Get the locale for the current user
*
* @return string
*/
protected function get_user_locale() {
if ( function_exists( 'get_user_locale' ) ) {
return get_user_locale();
}
return get_locale();
}
/**
* Parse custom HTML message from response
*
* @param Object $result Result of the request.
*
* @return string
*/
protected function get_custom_message( $result ) {
$message = '';
// Allow for translated messages to be used.
$localizedDescription = 'custom_message_' . $this->get_user_locale();
if ( ! empty( $result->{$localizedDescription} ) ) {
$message = $result->{$localizedDescription};
}
// Fall back to non-localized custom message if no locale has been provided.
if ( empty( $message ) && ! empty( $result->custom_message ) ) {
$message = $result->custom_message;
}
// Make sure we limit the type of HTML elements to be displayed.
if ( ! empty( $message ) ) {
$message = wp_kses( $message, array(
'a' => array(
'href' => array(),
'target' => array(),
'title' => array()
),
'br' => array(),
) );
// Make sure we are on a new line.
$message = '<br />' . $message;
}
return $message;
}
/**
* Returns true when a license notice should be shown.
*
* @return bool
*/
protected function show_license_notice() {
/**
* Filter: 'yoast-show-license-notice' - Show the license notice.
*
* @api bool $show True if notices should be shown.
*/
return ( bool ) apply_filters( 'yoast-show-license-notice', true );
}
}
}

View File

@@ -0,0 +1,95 @@
<?php
if ( class_exists( 'Yoast_License_Manager' ) && ! class_exists( "Yoast_Plugin_License_Manager", false ) ) {
class Yoast_Plugin_License_Manager extends Yoast_License_Manager {
/**
* Constructor
*
* @param Yoast_Product $product
*/
public function __construct( Yoast_Product $product ) {
parent::__construct( $product );
// Check if plugin is network activated. We should use site(wide) options in that case.
if( is_admin() && is_multisite() ) {
if ( ! function_exists( 'is_plugin_active_for_network' ) ) {
require_once( ABSPATH . '/wp-admin/includes/plugin.php' );
}
$this->is_network_activated = is_plugin_active_for_network( $product->get_file() );
}
}
/**
* Setup auto updater for plugins
*/
public function setup_auto_updater() {
/**
* Filter: 'yoast-license-valid' - Perform action when license is valid or hook returns true.
*
* @api bool $is_valid True if the license is valid.
*/
if ( apply_filters( 'yoast-license-valid', $this->license_is_valid() ) ) {
// setup auto updater
require_once( dirname( __FILE__ ) . '/class-update-manager.php' );
require_once( dirname( __FILE__ ) . '/class-plugin-update-manager.php' );
new Yoast_Plugin_Update_Manager( $this->product, $this );
}
}
/**
* Setup hooks
*/
public function specific_hooks() {
// deactivate the license remotely on plugin deactivation
register_deactivation_hook( $this->product->get_file(), array( $this, 'deactivate_license' ) );
}
/**
* Show a form where users can enter their license key
* Takes Multisites into account
*
* @param bool $embedded
* @return null
*/
public function show_license_form( $embedded = true ) {
// For non-multisites, always show the license form
if( ! is_multisite() ) {
parent::show_license_form( $embedded );
return;
}
// Plugin is network activated
if( $this->is_network_activated ) {
// We're on the network admin
if( is_network_admin() ) {
parent::show_license_form( $embedded );
} else {
// We're not in the network admin area, show a notice
parent::show_license_form_heading();
if ( is_super_admin() ) {
echo "<p>" . sprintf( __( '%s is network activated, you can manage your license in the <a href="%s">network admin license page</a>.', $this->product->get_text_domain() ), $this->product->get_item_name(), $this->product->get_license_page_url() ) . "</p>";
} else {
echo "<p>" . sprintf( __( '%s is network activated, please contact your site administrator to manage the license.', $this->product->get_text_domain() ), $this->product->get_item_name() ) . "</p>";
}
}
} else {
if( false == is_network_admin() ) {
parent::show_license_form( $embedded );
}
}
}
}
}

View File

@@ -0,0 +1,93 @@
<?php
if( class_exists( 'Yoast_Update_Manager' ) && ! class_exists( "Yoast_Plugin_Update_Manager", false ) ) {
class Yoast_Plugin_Update_Manager extends Yoast_Update_Manager {
/**
* Constructor
*
* @param Yoast_Product $product The Product.
* @param string $license_key The License entered.
*/
public function __construct( Yoast_Product $product, $license_key ) {
parent::__construct( $product, $license_key );
// setup hooks
$this->setup_hooks();
}
/**
* Setup hooks
*/
private function setup_hooks() {
// check for updates
add_filter( 'pre_set_site_transient_update_plugins', array( $this, 'set_updates_available_data' ) );
// get correct plugin information (when viewing details)
add_filter( 'plugins_api', array( $this, 'plugins_api_filter' ), 10, 3 );
}
/**
* Check for updates and if so, add to "updates available" data
*
* @param object $data
* @return object $data
*/
public function set_updates_available_data( $data ) {
if ( empty( $data ) ) {
return $data;
}
// send of API request to check for updates
$remote_data = $this->get_remote_data();
// did we get a response?
if( $remote_data === false ) {
return $data;
}
// compare local version with remote version
if ( version_compare( $this->product->get_version(), $remote_data->new_version, '<' ) ) {
// remote version is newer, add to data
$data->response[ $this->product->get_file() ] = $remote_data;
}
return $data;
}
/**
* Gets new plugin version details (view version x.x.x details)
*
* @uses api_request()
*
* @param object $data
* @param string $action
* @param object $args (optional)
*
* @return object $data
*/
public function plugins_api_filter( $data, $action = '', $args = null ) {
// only do something if we're checking for our plugin
if ( $action !== 'plugin_information' || ! isset( $args->slug ) || $args->slug !== $this->product->get_slug() ) {
return $data;
}
$api_response = $this->get_remote_data();
// did we get a response?
if ( $api_response === false ) {
return $data;
}
// return api response
return $api_response;
}
}
}

View File

@@ -0,0 +1,323 @@
<?php
if ( ! class_exists( "Yoast_Product", false ) ) {
/**
* Class Yoast_Product
*
* @todo create a license class and store an object of it in this class
*/
class Yoast_Product {
/**
* @var string The URL of the shop running the EDD API.
*/
protected $api_url;
/**
* @var string The item name in the EDD shop.
*/
protected $item_name;
/**
* @var string The theme slug or plugin file
*/
protected $slug;
/**
* @var string The version number of the item
*/
protected $version;
/**
* @var string The absolute url on which users can purchase a license
*/
protected $item_url;
/**
* @var string Absolute admin URL on which users can enter their license key.
*/
protected $license_page_url;
/**
* @var string The text domain used for translating strings
*/
protected $text_domain;
/**
* @var string The item author
*/
protected $author;
/**
* @var string Relative file path to the plugin.
*/
protected $file;
/** @var int Product ID in backend system for quick lookup */
protected $product_id;
/** @var string URL referring to the extension page */
protected $extension_url;
/**
* Yoast_Product constructor.
*
* @param string $api_url The URL of the shop running the EDD API.
* @param string $item_name The item name in the EDD shop.
* @param string $slug The slug of the plugin, for shiny updates this needs to be a valid HTML id.
* @param string $version The version number of the item.
* @param string $item_url The absolute url on which users can purchase a license.
* @param string $license_page_url Absolute admin URL on which users can enter their license key.
* @param string $text_domain The text domain used for translating strings.
* @param string $author The item author.
* @param string $file The relative file path to the plugin.
* @param int $product_id The ID of the product in the backend system.
*/
public function __construct( $api_url, $item_name, $slug, $version, $item_url = '', $license_page_url = '#', $text_domain = 'yoast', $author = 'Yoast', $file = '', $product_id = 0 ) {
$this->set_api_url( $api_url );
$this->set_item_name( $item_name );
$this->set_slug( $slug );
$this->set_version( $version );
$this->set_item_url( $item_url );
$this->set_text_domain( $text_domain );
$this->set_author( $author );
$this->set_file( $file );
$this->set_product_id( $product_id );
$this->set_license_page_url( $license_page_url );
}
/**
* @param string $api_url
*/
public function set_api_url( $api_url ) {
$this->api_url = $api_url;
}
/**
* @return string
*/
public function get_api_url() {
return $this->api_url;
}
/**
* @param string $author
*/
public function set_author( $author ) {
$this->author = $author;
}
/**
* @return string
*/
public function get_author() {
return $this->author;
}
/**
* @param string $item_name
*/
public function set_item_name( $item_name ) {
$this->item_name = $item_name;
}
/**
* @return string
*/
public function get_item_name() {
return $this->item_name;
}
/**
* @param string $item_url
*/
public function set_item_url( $item_url ) {
if ( empty( $item_url ) ) {
$item_url = $this->api_url;
}
$this->item_url = $item_url;
}
/**
* @return string
*/
public function get_item_url() {
return $this->item_url;
}
/**
* @param string $license_page_url
*/
public function set_license_page_url( $license_page_url ) {
if ( is_admin() && is_multisite() ) {
if ( ! function_exists( 'is_plugin_active_for_network' ) ) {
require_once( ABSPATH . '/wp-admin/includes/plugin.php' );
}
if ( is_plugin_active_for_network( $this->get_file() ) ) {
$this->license_page_url = network_admin_url( $license_page_url );
return;
}
}
$this->license_page_url = admin_url( $license_page_url );
}
/**
* @return string
*/
public function get_license_page_url() {
return $this->license_page_url;
}
/**
* @param string $slug
*/
public function set_slug( $slug ) {
$this->slug = $slug;
}
/**
* @return string
*/
public function get_slug() {
return $this->slug;
}
/**
* Returns the dirname of the slug and limits it to 15 chars
*
* @return string
*/
public function get_transient_prefix() {
return substr( md5( $this->file ), 0, 15 );
}
/**
* @param string $text_domain
*/
public function set_text_domain( $text_domain ) {
$this->text_domain = $text_domain;
}
/**
* @return string
*/
public function get_text_domain() {
return $this->text_domain;
}
/**
* @param string $version
*/
public function set_version( $version ) {
$this->version = $version;
}
/**
* @return string
*/
public function get_version() {
return $this->version;
}
/**
* Returns the file path relative to the plugins folder
*
* @return string
*/
public function get_file() {
/*
* Fall back to the slug for BC reasons.
*
* We used to pass the file to the slug field, but this isn't supported with the shiny updates in WordPress.
* WordPress uses the slug in the HTML as an ID and a slash isn't a valid
*/
return empty( $this->file ) ? $this->slug : $this->file;
}
/**
* Sets the file path relative to the plugins folder
*
* @param string $file Relative file path to the plugin.
*/
public function set_file( $file ) {
$this->file = $file;
}
/**
* Return the Product ID
*
* @return int
*/
public function get_product_id() {
return $this->product_id;
}
/**
* Set the product ID
*
* @param int $product_id Product ID to set.
*/
public function set_product_id( $product_id ) {
$this->product_id = (int) $product_id;
}
/**
* Gets a Google Analytics Campaign url for this product
*
* @param string $link_identifier
*
* @return string The full URL
*/
public function get_tracking_url( $link_identifier = '' ) {
return $this->add_campaign_attributes( $this->get_item_url(), $link_identifier );
}
/**
* Returns the extension url if set, otherwise it will be the tracking url.
*
* @param string $link_identifier
*
* @return string
*/
public function get_extension_url( $link_identifier = '' ) {
if ( $this->extension_url ) {
return $this->add_campaign_attributes( $this->extension_url, $link_identifier );
}
return $this->get_tracking_url( $link_identifier );
}
/**
* Sets the extension url.
*
* @param string $extension_url
*/
public function set_extension_url( $extension_url ) {
$this->extension_url = $extension_url;
}
private function add_campaign_attributes( $url, $link_identifier ) {
$tracking_vars = array(
'utm_campaign' => $this->get_item_name() . ' licensing',
'utm_medium' => 'link',
'utm_source' => $this->get_item_name(),
'utm_content' => $link_identifier
);
// URL encode tracking vars.
$tracking_vars = urlencode_deep( $tracking_vars );
$query_string = build_query( $tracking_vars );
return $url . '#' . $query_string;
}
}
}

View File

@@ -0,0 +1,224 @@
<?php
if ( ! class_exists( "Yoast_Update_Manager", false ) ) {
class Yoast_Update_Manager {
/**
* @var Yoast_Product
*/
protected $product;
/**
* @var Yoast_License_Manager
*/
protected $license_manager;
/**
* @var string
*/
protected $error_message = '';
/**
* @var object
*/
protected $update_response = null;
/**
* @var string The transient name storing the API response
*/
private $response_transient_key = '';
/**
* @var string The transient name that stores failed request tries
*/
private $request_failed_transient_key = '';
/**
* Constructor
*
* @param Yoast_Product $product The product.
* @param Yoast_License_Manager $license_manager The License Manager.
*/
public function __construct( Yoast_Product $product, $license_manager ) {
$this->product = $product;
$this->license_manager = $license_manager;
// generate transient names
$this->response_transient_key = $this->product->get_transient_prefix() . '-update-response';
$this->request_failed_transient_key = $this->product->get_transient_prefix() . '-update-request-failed';
// maybe delete transient
$this->maybe_delete_transients();
}
/**
* Deletes the various transients
* If we're on the update-core.php?force-check=1 page
*/
private function maybe_delete_transients() {
global $pagenow;
if ( $pagenow === 'update-core.php' && isset( $_GET['force-check'] ) ) {
delete_transient( $this->response_transient_key );
delete_transient( $this->request_failed_transient_key );
}
}
/**
* If the update check returned a WP_Error, show it to the user
*/
public function show_update_error() {
if ( $this->error_message === '' ) {
return;
}
?>
<div class="notice notice-error yoast-notice-error">
<p><?php printf( __( '%s failed to check for updates because of the following error: <em>%s</em>', $this->product->get_text_domain() ), $this->product->get_item_name(), $this->error_message ); ?></p>
</div>
<?php
}
/**
* Calls the API and, if successfull, returns the object delivered by the API.
*
* @uses get_bloginfo()
* @uses wp_remote_post()
* @uses is_wp_error()
*
* @return false||object
*/
private function call_remote_api() {
// only check if the failed transient is not set (or if it's expired)
if ( get_transient( $this->request_failed_transient_key ) !== false ) {
return false;
}
// start request process
global $wp_version;
// set a transient to prevent failed update checks on every page load
// this transient will be removed if a request succeeds
set_transient( $this->request_failed_transient_key, 'failed', 10800 );
// setup api parameters
$api_params = array(
'edd_action' => 'get_version',
'license' => $this->license_manager->get_license_key(),
'item_name' => $this->product->get_item_name(),
'wp_version' => $wp_version,
'item_version' => $this->product->get_version(),
'url' => $this->license_manager->get_url(),
'slug' => $this->product->get_slug(),
);
// Add product ID from product if it is implemented.
if ( method_exists( $this->product, 'get_product_id' ) ) {
$product_id = $this->product->get_product_id();
if ( $product_id > 0 ) {
$api_params['product_id'] = $this->product->get_product_id();
}
}
// setup request parameters
$request_params = array(
'method' => 'POST',
'body' => $api_params
);
require_once dirname( __FILE__ ) . '/class-api-request.php';
$request = new Yoast_API_Request( $this->product->get_api_url(), $request_params );
if ( $request->is_valid() !== true ) {
// show error message
$this->error_message = $request->get_error_message();
add_action( 'admin_notices', array( $this, 'show_update_error' ) );
return false;
}
// request succeeded, delete transient indicating a request failed
delete_transient( $this->request_failed_transient_key );
// decode response
$response = $request->get_response();
// check if response returned that a given site was inactive
if ( isset( $response->license_check ) && ! empty( $response->license_check ) && $response->license_check != 'valid' ) {
// deactivate local license
$this->license_manager->set_license_status( 'invalid' );
// show notice to let the user know we deactivated his/her license
$this->error_message = __( "This site has not been activated properly on yoast.com and thus cannot check for future updates. Please activate your site with a valid license key.", $this->product->get_text_domain() );
/**
* Filter: 'yoast-show-license-notice' - Show the license notice.
*
* @api bool $show True if notices should be shown.
*/
if ( apply_filters( 'yoast-show-license-notice', true ) ) {
add_action( 'admin_notices', array( $this, 'show_update_error' ) );
}
}
$response->sections = maybe_unserialize( $response->sections );
// store response
set_transient( $this->response_transient_key, $response, 10800 );
return $response;
}
/**
* Gets the remote product data (from the EDD API)
*
* - If it was previously fetched in the current requests, this gets it from the instance property
* - Next, it tries the 3-hour transient
* - Next, it calls the remote API and stores the result
*
* @return object
*/
protected function get_remote_data() {
// always use property if it's set
if ( null !== $this->update_response ) {
return $this->update_response;
}
// get cached remote data
$data = $this->get_cached_remote_data();
// if cache is empty or expired, call remote api
if ( $data === false ) {
$data = $this->call_remote_api();
}
$this->update_response = $data;
return $data;
}
/**
* Gets the remote product data from a 3-hour transient
*
* @return bool|mixed
*/
private function get_cached_remote_data() {
$data = get_transient( $this->response_transient_key );
if ( $data ) {
return $data;
}
return false;
}
}
}

View File

@@ -0,0 +1,2 @@
<?php
//Nothing to see here

View File

@@ -0,0 +1,102 @@
<?php
if ( ! defined( 'ABSPATH' ) ) {
header( 'HTTP/1.0 403 Forbidden' );
die;
}
/**
* @var Yoast_Product $product
*/
$product = $this->product;
$this->show_license_form_heading();
if( $api_host_available['availability'] === false ){
echo '<div class="notice notice-error inline yoast-notice-error"><p>' . sprintf( __( 'We couldn\'t create a connection to our API to verify your license key(s). Please ask your hosting company to allow outgoing connections from your server to %s.', $product->get_text_domain() ), $api_host_available['url'] ) . '</p></div>';
}
if( $api_host_available['curl_version'] !== false && version_compare( $api_host_available['curl_version'], '7.20.0', '<')){
echo '<div class="notice notice-error inline yoast-notice-error"><p>' . sprintf( __( 'Your server has an outdated version of the PHP module cURL (Version: %s). Please ask your hosting company to update this to a recent version of cURL. You can read more about that in our %sKnowledge base%s.', $product->get_text_domain() ), $api_host_available['curl_version'], '<a href="http://kb.yoast.com/article/90-is-my-curl-up-to-date" target="_blank">', '</a>' ) . '</p></div>';
}
// Output form tags if we're not embedded in another form
if( ! $embedded ) {
echo '<form method="post" action="">';
}
wp_nonce_field( $nonce_name, $nonce_name ); ?>
<table class="form-table yoast-license-form">
<tbody>
<tr valign="top">
<th scope="row" valign="top"><?php _e( 'License status', $product->get_text_domain() ); ?></th>
<td>
<?php if ( $this->license_is_valid() ) { ?>
<span class="yoast-license-status-active"><?php _e( 'ACTIVE', $product->get_text_domain() ); ?></span> &nbsp; - &nbsp; <?php _e( 'you are receiving updates.', $product->get_text_domain() ); ?>
<?php } else { ?>
<span class="yoast-license-status-inactive"><?php _e( 'INACTIVE', $product->get_text_domain() ); ?></span> &nbsp; - &nbsp; <?php _e( 'you are <strong>not</strong> receiving updates.', $product->get_text_domain() ); ?>
<?php } ?>
</td>
</tr>
<tr valign="top">
<th scope="row" valign="top"><?php _e('Toggle license status', $product->get_text_domain() ); ?></th>
<td class="yoast-license-toggler">
<?php if( $this->license_is_valid() ) { ?>
<button name="<?php echo esc_attr( $action_name ); ?>" type="submit" class="button button-secondary yoast-license-deactivate" value="deactivate"><?php echo esc_html_e( 'Deactivate License', $product->get_text_domain() ); ?></button> &nbsp;
<small><?php _e( '(deactivate your license so you can activate it on another WordPress site)', $product->get_text_domain() ); ?></small>
<?php } else {
if( $this->get_license_key() !== '') { ?>
<button name="<?php echo esc_attr( $action_name ); ?>" type="submit" class="button button-secondary yoast-license-activate" value="activate" /><?php echo esc_html_e('Activate License', $product->get_text_domain() ); ?></button> &nbsp;
<?php } else {
_e( 'Please enter a license key in the field below first.', $product->get_text_domain() );
}
} ?>
</td>
</tr>
<tr valign="top">
<th scope="row" valign="top"><?php _e( 'License Key', $product->get_text_domain() ); ?></th>
<td>
<input name="<?php echo esc_attr( $key_name ); ?>" type="text" class="regular-text textinput yoast-license-key-field <?php if( $obfuscate ) { ?>yoast-license-obfuscate<?php } ?>" value="<?php echo esc_attr( $visible_license_key ); ?>" placeholder="<?php echo esc_attr( sprintf( __( 'Paste your %s license key here...', $product->get_text_domain() ), $product->get_item_name() ) ); ?>" <?php if( $readonly ) { echo 'readonly="readonly"'; } ?> />
<?php if( $this->license_constant_is_defined ) { ?>
<p class="help"><?php printf( __( "You defined your license key using the %s PHP constant.", $product->get_text_domain() ), '<code>' . $this->license_constant_name . '</code>' ); ?></p>
<?php } ?>
</td>
</tr>
</tbody>
</table>
<?php
if( $this->license_is_valid() ) {
$expiry_date = strtotime( $this->get_license_expiry_date() );
if( $expiry_date !== false ) {
echo '<p>';
printf( __( 'Your %s license will expire on %s.', $product->get_text_domain() ), $product->get_item_name(), date('F jS Y', $expiry_date ) );
if( strtotime( '+3 months' ) > $expiry_date ) {
printf( ' ' . __('%sRenew your license now%s.', $product->get_text_domain() ), '<a href="'. $this->product->get_tracking_url( 'renewal' ) .'">', '</a>' );
}
echo '</p>';
}
}
// Only show a "Save Changes" button and end form if we're not embedded in another form.
if( ! $embedded ) {
// only show "Save Changes" button if license is not activated and not defined with a constant
if( $readonly === false && $api_host_available['availability'] === true ) {
submit_button();
}
echo '</form>';
}
$product = null;

View File

@@ -0,0 +1,2 @@
<?php
//Nothing to see here

View File

@@ -0,0 +1,67 @@
<?php
if ( ! defined( 'ABSPATH' ) ) {
header( 'HTTP/1.0 403 Forbidden' );
die;
}
?><script type="text/javascript">
(function($) {
if( typeof YoastLicenseManager !== "undefined" ) {
return;
}
window.YoastLicenseManager = (function () {
function init() {
var $keyInputs = $(".yoast-license-key-field.yoast-license-obfuscate");
var $actionButtons = $('.yoast-license-toggler button');
var $submitButtons = $('input[type="submit"], button[type="submit"]');
$submitButtons.click( addDisableEvent );
$actionButtons.click( actOnLicense );
$keyInputs.click( setEmptyValue );
}
function setEmptyValue() {
if( ! $(this).is('[readonly]') ) {
$(this).val('');
}
}
function actOnLicense() {
var $formScope = $(this).closest('form');
var $actionButton = $formScope.find('.yoast-license-toggler button');
// fake input field with exact same name => value
$("<input />")
.attr('type', 'hidden')
.attr( 'name', $(this).attr('name') )
.val( $(this).val() )
.appendTo( $formScope );
// change button text to show we're working..
var text = ( $actionButton.hasClass('yoast-license-activate') ) ? "Activating..." : "Deactivating...";
$actionButton.text( text );
}
function addDisableEvent() {
var $formScope = $(this).closest('form');
$formScope.submit(disableButtons);
}
function disableButtons() {
var $formScope = $(this).closest('form');
var $submitButton = $formScope.find('input[type="submit"], button[type="submit"]');
$submitButton.prop( 'disabled', true );
}
return {
init: init
}
})();
YoastLicenseManager.init();
})(jQuery);
</script>