Project

General

Profile

Bug #56307 ยป changes.diff

Some of the changes already done and tested in "one big block" - Steffen Ritter, 2014-02-26 13:52

View differences:

typo3/sysext/about/Classes/Package.php
<?php
namespace TYPO3\CMS\About;
/***************************************************************
* Copyright notice
*
* (c) 2013 Christian Kuhn <lolli@schwarzbu.ch>
* All rights reserved
*
* This script is part of the TYPO3 project. The TYPO3 project is
* free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* The GNU General Public License can be found at
* http://www.gnu.org/copyleft/gpl.html.
* A copy is found in the text file GPL.txt and important notices to the license
* from the author is found in LICENSE.txt distributed with these scripts.
*
*
* This script is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/
use TYPO3\CMS\Core\Package\Package as BasePackage;
/**
* This is the About package
*/
class Package extends BasePackage {
/**
* @var bool
*/
protected $partOfFactoryDefault = TRUE;
}
typo3/sysext/about/composer.json
},
"replace": {
"about": "*"
},
"extra": {
"protected": false,
"partOfFactoryDefault": true,
"partOfMinimalUsableSystem": false
}
}
typo3/sysext/aboutmodules/Classes/Package.php
<?php
namespace TYPO3\CMS\Aboutmodules;
/***************************************************************
* Copyright notice
*
* (c) 2013 Christian Kuhn <lolli@schwarzbu.ch>
* All rights reserved
*
* This script is part of the TYPO3 project. The TYPO3 project is
* free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* The GNU General Public License can be found at
* http://www.gnu.org/copyleft/gpl.html.
* A copy is found in the text file GPL.txt and important notices to the license
* from the author is found in LICENSE.txt distributed with these scripts.
*
*
* This script is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/
use TYPO3\CMS\Core\Package\Package as BasePackage;
/**
* This is the Aboutmodules package
*/
class Package extends BasePackage {
/**
* @var bool
*/
protected $partOfFactoryDefault = TRUE;
}
typo3/sysext/aboutmodules/composer.json
},
"replace": {
"aboutmodules": "*"
},
"extra": {
"protected": false,
"partOfFactoryDefault": true,
"partOfMinimalUsableSystem": false
}
}
typo3/sysext/backend/Classes/Package.php
<?php
namespace TYPO3\CMS\Backend;
/***************************************************************
* Copyright notice
*
* (c) 2013 Thomas Maroschik <tmaroschik@dfau.de>
* All rights reserved
*
* This script is part of the TYPO3 project. The TYPO3 project is
* free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* The GNU General Public License can be found at
* http://www.gnu.org/copyleft/gpl.html.
* A copy is found in the text file GPL.txt and important notices to the license
* from the author is found in LICENSE.txt distributed with these scripts.
*
*
* This script is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/
use TYPO3\CMS\Core\Package\Package as BasePackage;
/**
* This is the backend package
*
* @author Thomas Maroschik <tmaroschik@dfau.de>
*/
class Package extends BasePackage {
/**
* @var boolean
*/
protected $protected = TRUE;
/**
* @var bool
*/
protected $partOfFactoryDefault = TRUE;
/**
* @var bool
*/
protected $partOfMinimalUsableSystem = TRUE;
}
typo3/sysext/backend/composer.json
},
"replace": {
"backend": "*"
},
"extra": {
"protected": true,
"partOfFactoryDefault": true,
"partOfMinimalUsableSystem": true
}
}
typo3/sysext/belog/Classes/Package.php
<?php
namespace TYPO3\CMS\Belog;
/***************************************************************
* Copyright notice
*
* (c) 2013 Christian Kuhn <lolli@schwarzbu.ch>
* All rights reserved
*
* This script is part of the TYPO3 project. The TYPO3 project is
* free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* The GNU General Public License can be found at
* http://www.gnu.org/copyleft/gpl.html.
* A copy is found in the text file GPL.txt and important notices to the license
* from the author is found in LICENSE.txt distributed with these scripts.
*
*
* This script is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/
use TYPO3\CMS\Core\Package\Package as BasePackage;
/**
* This is the Belog package
*/
class Package extends BasePackage {
/**
* @var bool
*/
protected $partOfFactoryDefault = TRUE;
}
typo3/sysext/belog/composer.json
},
"replace": {
"belog": "*"
},
"extra": {
"protected": false,
"partOfFactoryDefault": true,
"partOfMinimalUsableSystem": false
}
}
typo3/sysext/beuser/Classes/Package.php
<?php
namespace TYPO3\CMS\Beuser;
/***************************************************************
* Copyright notice
*
* (c) 2013 Christian Kuhn <lolli@schwarzbu.ch>
* All rights reserved
*
* This script is part of the TYPO3 project. The TYPO3 project is
* free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* The GNU General Public License can be found at
* http://www.gnu.org/copyleft/gpl.html.
* A copy is found in the text file GPL.txt and important notices to the license
* from the author is found in LICENSE.txt distributed with these scripts.
*
*
* This script is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/
use TYPO3\CMS\Core\Package\Package as BasePackage;
/**
* This is the Beuser package
*/
class Package extends BasePackage {
/**
* @var bool
*/
protected $partOfFactoryDefault = TRUE;
}
typo3/sysext/beuser/composer.json
},
"replace": {
"beuser": "*"
},
"extra": {
"protected": false,
"partOfFactoryDefault": true,
"partOfMinimalUsableSystem": false
}
}
typo3/sysext/cms/Classes/Package.php
<?php
namespace TYPO3\CMS\Cms;
/***************************************************************
* Copyright notice
*
* (c) 2013 Thomas Maroschik <tmaroschik@dfau.de>
* All rights reserved
*
* This script is part of the TYPO3 project. The TYPO3 project is
* free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* The GNU General Public License can be found at
* http://www.gnu.org/copyleft/gpl.html.
* A copy is found in the text file GPL.txt and important notices to the license
* from the author is found in LICENSE.txt distributed with these scripts.
*
*
* This script is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/
use TYPO3\CMS\Core\Package\Package as BasePackage;
/**
* This is the cms package
*
* @author Thomas Maroschik <tmaroschik@dfau.de>
*/
class Package extends BasePackage {
/**
* @var boolean
*/
protected $protected = TRUE;
/**
* @var bool
*/
protected $partOfFactoryDefault = TRUE;
/**
* @var bool
*/
protected $partOfMinimalUsableSystem = TRUE;
}
typo3/sysext/cms/composer.json
},
"replace": {
"cms": "*"
},
"extra": {
"protected": true,
"partOfFactoryDefault": true,
"partOfMinimalUsableSystem": true
}
}
typo3/sysext/cms/tslib/index_ts.php
// Timetracking started
if ($_COOKIE[\TYPO3\CMS\Core\Authentication\BackendUserAuthentication::getCookieName()]) {
$TT = new \TYPO3\CMS\Core\TimeTracker\TimeTracker();
$TT->start();
} else {
$TT = new \TYPO3\CMS\Core\TimeTracker\NullTimeTracker();
}
$TT->start();
\TYPO3\CMS\Core\Core\Bootstrap::getInstance()->initializeTypo3DbGlobal();
// Hook to preprocess the current request:
......
ob_clean();
require $classPath;
}
die;
exit;
}
\TYPO3\CMS\Core\Core\Bootstrap::getInstance()->setCacheHashOptions();
/** @var $TSFE \TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController */
$TSFE = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(
'TYPO3\\CMS\\Frontend\\Controller\\TypoScriptFrontendController',
typo3/sysext/context_help/Classes/Package.php
<?php
namespace TYPO3\CMS\ContextHelp;
/***************************************************************
* Copyright notice
*
* (c) 2013 Christian Kuhn <lolli@schwarzbu.ch>
* All rights reserved
*
* This script is part of the TYPO3 project. The TYPO3 project is
* free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* The GNU General Public License can be found at
* http://www.gnu.org/copyleft/gpl.html.
* A copy is found in the text file GPL.txt and important notices to the license
* from the author is found in LICENSE.txt distributed with these scripts.
*
*
* This script is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/
use TYPO3\CMS\Core\Package\Package as BasePackage;
/**
* This is the ContextHelp package
*/
class Package extends BasePackage {
/**
* @var bool
*/
protected $partOfFactoryDefault = TRUE;
}
typo3/sysext/context_help/composer.json
},
"replace": {
"context_help": "*"
},
"extra": {
"protected": false,
"partOfFactoryDefault": true,
"partOfMinimalUsableSystem": false
}
}
typo3/sysext/core/Classes/Configuration/ConfigurationManager.php
protected $additionalFactoryConfigurationFile = 'typo3conf/AdditionalFactoryConfiguration.php';
/**
* @var array
*/
protected static $defaultConfiguration = NULL;
/**
* @var array
*/
protected static $localConfiguration = NULL;
/**
* @var string Absolute path to typo3conf directory
*/
protected $pathTypo3Conf = PATH_typo3conf;
......
* @return array
*/
public function getDefaultConfiguration() {
return require $this->getDefaultConfigurationFileLocation();
if (static::$defaultConfiguration === NULL) {
static::$defaultConfiguration = require_once $this->getDefaultConfigurationFileLocation();
}
return static::$defaultConfiguration;
}
/**
......
* @return array Content array of local configuration file
*/
public function getLocalConfiguration() {
return require $this->getLocalConfigurationFileLocation();
if (static::$localConfiguration === NULL) {
static::$localConfiguration = require_once $this->getLocalConfigurationFileLocation();
}
return static::$localConfiguration;
}
/**
......
);
}
$configuration = Utility\ArrayUtility::sortByKeyRecursive($configuration);
static::$localConfiguration = $configuration;
return Utility\GeneralUtility::writeFile(
$localConfigurationFile,
'<?php' . LF .
typo3/sysext/core/Classes/Core/Bootstrap.php
->defineUserAgentConstant()
->registerExtDirectComponents()
->transferDeprecatedCurlSettings()
->setCacheHashOptions()
->setDefaultTimezone()
->initializeL10nLocales()
->convertPageNotFoundHandlingToBoolean()
->registerGlobalDebugFunctions()
// SwiftMailerAdapter is
// @deprecated since 6.1, will be removed two versions later - will be removed together with \TYPO3\CMS\Core\Utility\MailUtility::mail()
......
Utility\ExtensionManagementUtility::setPackageManager($packageManager);
$packageManager->injectClassLoader($this->getEarlyInstance('TYPO3\\CMS\\Core\\Core\\ClassLoader'));
$packageManager->injectCoreCache($this->getEarlyInstance('TYPO3\\CMS\\Core\\Cache\\CacheManager')->getCache('cache_core'));
$packageManager->injectDependencyResolver(Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Package\\DependencyResolver'));
$packageManager->initialize($this, PATH_site);
Utility\GeneralUtility::setSingletonInstance('TYPO3\\CMS\\Core\\Package\\PackageManager', $packageManager);
$GLOBALS['TYPO3_LOADED_EXT'] = new \TYPO3\CMS\Core\Compatibility\LoadedExtensionsArray($packageManager);
......
* @internal This is not a public API method, do not use in own extensions
*/
public function loadTypo3LoadedExtAndExtLocalconf($allowCaching = TRUE) {
$this->getInstance()
->loadAdditionalConfigurationFromExtensions($allowCaching);
$this->loadAdditionalConfigurationFromExtensions($allowCaching);
return $this;
}
......
*
* @return Bootstrap
*/
protected function setCacheHashOptions() {
public function setCacheHashOptions() {
$GLOBALS['TYPO3_CONF_VARS']['FE']['cacheHash'] = array(
'cachedParametersWhiteList' => Utility\GeneralUtility::trimExplode(',', $GLOBALS['TYPO3_CONF_VARS']['FE']['cHashOnlyForParameters'], TRUE),
'excludedParameters' => Utility\GeneralUtility::trimExplode(',', $GLOBALS['TYPO3_CONF_VARS']['FE']['cHashExcludedParameters'], TRUE),
......
}
/**
* Convert type of "pageNotFound_handling" setting in case it was written as a
* string (e.g. if edited in Install Tool)
*
* @TODO : Remove, if the Install Tool handles such data types correctly
* @return Bootstrap
*/
protected function convertPageNotFoundHandlingToBoolean() {
if (!strcasecmp($GLOBALS['TYPO3_CONF_VARS']['FE']['pageNotFound_handling'], 'TRUE')) {
$GLOBALS['TYPO3_CONF_VARS']['FE']['pageNotFound_handling'] = TRUE;
}
return $this;
}
/**
* Register xdebug(), debug(), debugBegin() and debugEnd() as global functions
*
* Note: Yes, this is possible in php! xdebug() is then a global function, even
typo3/sysext/core/Classes/Core/ClassLoader.php
*/
public function injectClassesCache(Cache\Frontend\StringFrontend $classesCache) {
/** @var $earlyClassLoaderBackend Cache\Backend\TransientMemoryBackend */
$earlyClassesCache = $this->classesCache;
$earlyClassLoaderBackend = $this->classesCache->getBackend();
$this->classesCache = $classesCache;
$this->isEarlyCache = FALSE;
$this->classAliasMap->injectClassesCache($classesCache);
foreach ($earlyClassesCache->getByTag('early') as $originalClassLoadingInformation) {
$classLoadingInformation = explode("\xff", $originalClassLoadingInformation);
$cacheEntryIdentifier = strtolower(str_replace('\\', '_', $classLoadingInformation[1]));
foreach ($earlyClassLoaderBackend->findIdentifiersByTag('early') as $cacheEntryIdentifier) {
if (!$this->classesCache->has($cacheEntryIdentifier)) {
$this->classesCache->set($cacheEntryIdentifier, $originalClassLoadingInformation);
$this->classesCache->set($cacheEntryIdentifier, $earlyClassLoaderBackend->get($cacheEntryIdentifier));
}
}
}
......
* @return boolean
*/
public function loadClass($className) {
if (strpos($className, ' ') !== FALSE) {
return FALSE;
}
if ($className[0] === '\\') {
$className = substr($className, 1);
}
if (!$this->isValidClassName($className)) {
return FALSE;
}
$cacheEntryIdentifier = strtolower(str_replace('\\', '_', $className));
$classLoadingInformation = NULL;
try {
$rawClassLoadingInformation = $this->classesCache->get($cacheEntryIdentifier);
if ($rawClassLoadingInformation !== FALSE) {
if ($rawClassLoadingInformation !== '') {
$classLoadingInformation = explode("\xff", $rawClassLoadingInformation);
}
if ($rawClassLoadingInformation !== FALSE && $rawClassLoadingInformation !== '') {
$classLoadingInformation = explode("\xff", $rawClassLoadingInformation);
} else {
$classLoadingInformation = $this->buildClassLoadingInformation($className);
if ($classLoadingInformation !== NULL) {
......
// but PHP fails to recognize the real path of the class. See #55904
$loadingSuccessful = class_exists($classLoadingInformation[1], FALSE) || (bool)require_once $classLoadingInformation[0];
}
if ($loadingSuccessful && count($classLoadingInformation) > 2) {
$originalClassName = $classLoadingInformation[1];
foreach (array_slice($classLoadingInformation, 2) as $aliasClassName) {
$this->setAliasForClassName($aliasClassName, $originalClassName);
$elementCount = count($classLoadingInformation);
if ($loadingSuccessful && $elementCount > 2) {
for ($i = 2; $i < $elementCount; ++$i) {
$this->setAliasForClassName($classLoadingInformation[$i], $classLoadingInformation[1]);
}
}
......
return $classLoadingInformation;
}
/**
* Find out if a class name is valid
*
* @param string $className
* @return boolean
*/
protected function isValidClassName($className) {
return strpos($className, ' ') === FALSE;
}
/**
* Retrieve class loading information for class from core package
......
if (substr($className, 0, 14) === 'TYPO3\\CMS\\Core') {
$classesFolder = substr($className, 15, 5) === 'Tests' ? '' : 'Classes/';
$classFilePath = PATH_typo3 . 'sysext/core/' . $classesFolder . str_replace('\\', '/', substr($className, 15)) . '.php';
if (@file_exists($classFilePath)) {
return array($classFilePath, $className);
}
return array($classFilePath, $className);
}
return NULL;
}
......
return NULL;
}
$classInformation = $this->runtimeClassLoadingInformationCache[$lowercasedClassName];
return @file_exists($classInformation[0]) ? $classInformation : NULL;
return $classInformation;
}
/**
......
* @param string $className
* @return array|null
*/
protected function buildClassLoadingInformationForClassFromRegisteredPackages($className) {;
protected function buildClassLoadingInformationForClassFromRegisteredPackages($className) {
$nameSpacedLegacyClass = str_replace('_', '\\', $className);
foreach ($this->packageNamespaces as $packageNamespace => $packageData) {
if (substr(str_replace('_', '\\', $className), 0, $packageData['namespaceLength']) === $packageNamespace) {
if (substr($nameSpacedLegacyClass, 0, $packageData['namespaceLength']) === $packageNamespace) {
if ($packageData['substituteNamespaceInPath']) {
// If it's a TYPO3 package, classes don't comply to PSR-0.
// The namespace part is substituted.
typo3/sysext/core/Classes/Core/SystemEnvironmentBuilder.php
require_once __DIR__ . '/../Utility/PathUtility.php';
require_once __DIR__ . '/../SingletonInterface.php';
require_once __DIR__ . '/../Configuration/ConfigurationManager.php';
require_once __DIR__ . '/../Cache/Cache.php';
require_once __DIR__ . '/../Cache/CacheFactory.php';
require_once __DIR__ . '/../Cache/CacheManager.php';
require_once __DIR__ . '/../Cache/Frontend/FrontendInterface.php';
require_once __DIR__ . '/../Cache/Frontend/AbstractFrontend.php';
require_once __DIR__ . '/../Cache/Frontend/StringFrontend.php';
......
require_once __DIR__ . '/../Cache/Backend/TaggableBackendInterface.php';
require_once __DIR__ . '/../Cache/Backend/AbstractBackend.php';
require_once __DIR__ . '/../Cache/Backend/TransientMemoryBackend.php';
require_once __DIR__ . '/../Cache/Backend/SimpleFileBackend.php';
require_once __DIR__ . '/ClassLoader.php';
require_once __DIR__ . '/ClassAliasMap.php';
}
typo3/sysext/core/Classes/Localization/Locales.php
);
/**
* Array_flipped version of $isoReverseMapping;
*
* @var array
*/
protected $isoMapping;
protected $isoMapping = array (
'ba' => 'bs',
'cz' => 'cs',
'dk' => 'da',
'gr' => 'el',
'qc' => 'fr_CA',
'ga' => 'gl',
'jp' => 'ja',
'ge' => 'ka',
'gl' => 'kl',
'kr' => 'ko',
'my' => 'ms',
'br' => 'pt_BR',
'si' => 'sl',
'se' => 'sv',
'ua' => 'uk',
'vn' => 'vi',
'hk' => 'zh_HK',
'ch' => 'zh_CN'
);
/**
* Dependencies for locales
*
* @var array
*/
protected $localeDependencies;
protected $localeDependencies = array(
'fr_CA' => 'fr',
'pt_BR' => 'pt'
);
/**
* Initializes the languages.
......
static public function initialize() {
/** @var $instance \TYPO3\CMS\Core\Localization\Locales */
$instance = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Localization\\Locales');
$instance->isoMapping = array_flip($instance->isoReverseMapping);
// Allow user-defined locales
if (isset($GLOBALS['TYPO3_CONF_VARS']['SYS']['localization']['locales']['user']) && is_array($GLOBALS['TYPO3_CONF_VARS']['SYS']['localization']['locales']['user'])) {
foreach ($GLOBALS['TYPO3_CONF_VARS']['SYS']['localization']['locales']['user'] as $locale => $name) {
if (!isset($instance->languages[$locale])) {
$instance->languages[$locale] = $name;
if (strlen($locale) == 5) {
$instance->localeDependencies[$locale] = array(substr($locale, 0, 2));
}
}
}
}
// Initializes the locale dependencies with TYPO3 supported locales
$instance->localeDependencies = array();
foreach ($instance->languages as $locale => $name) {
if (strlen($locale) == 5) {
$instance->localeDependencies[$locale] = array(substr($locale, 0, 2));
}
}
// Merge user-provided locale dependencies
if (isset($GLOBALS['TYPO3_CONF_VARS']['SYS']['localization']['locales']['dependencies']) && is_array($GLOBALS['TYPO3_CONF_VARS']['SYS']['localization']['locales']['dependencies'])) {
\TYPO3\CMS\Core\Utility\ArrayUtility::mergeRecursiveWithOverrule($instance->localeDependencies, $GLOBALS['TYPO3_CONF_VARS']['SYS']['localization']['locales']['dependencies']);
typo3/sysext/core/Classes/Package.php
<?php
namespace TYPO3\CMS\Core;
/***************************************************************
* Copyright notice
*
* (c) 2013 Thomas Maroschik <tmaroschik@dfau.de>
* All rights reserved
*
* This script is part of the TYPO3 project. The TYPO3 project is
* free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* The GNU General Public License can be found at
* http://www.gnu.org/copyleft/gpl.html.
* A copy is found in the text file GPL.txt and important notices to the license
* from the author is found in LICENSE.txt distributed with these scripts.
*
*
* This script is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/
use TYPO3\CMS\Core\Package\Package as BasePackage;
/**
* This is the core package
*/
class Package extends BasePackage {
/**
* @var boolean
*/
protected $protected = TRUE;
/**
* @var bool
*/
protected $partOfFactoryDefault = TRUE;
/**
* @var bool
*/
protected $partOfMinimalUsableSystem = TRUE;
}
typo3/sysext/core/Classes/Package/Package.php
}
/**
* @param boolean $partOfFactoryDefault
* @internal
*/
public function setPartOfFactoryDefault($partOfFactoryDefault) {
$this->partOfFactoryDefault = (boolean)$partOfFactoryDefault;
}
/**
* @param boolean $partOfMinimalUsableSystem
* @internal
*/
public function setPartOfMinimalUsableSystem($partOfMinimalUsableSystem) {
$this->partOfMinimalUsableSystem = (boolean)$partOfMinimalUsableSystem;
}
/**
* @return bool
*/
protected function getExtensionEmconf() {
......
*/
public function getPackageReplacementKeys() {
// The cast to array is required since the manifest returns data with type mixed
return (array)$this->getComposerManifest('replace') ?: array();
$replacement = (array)$this->getComposerManifest('replace');
if ($replacement !== array()) {
unset($replacement[$this->getPackageKey()]);
return $replacement;
} else {
return array();
}
}
/**
typo3/sysext/core/Classes/Package/PackageManager.php
protected $runtimeActivatedPackages = array();
/**
* @var array
*/
protected $protectedPackageKeys = array();
/**
* Constructor
*/
public function __construct() {
......
break;
}
}
try {
$composerManifest = self::getComposerManifest($composerManifestPath);
$packageKey = \TYPO3\CMS\Core\Package\PackageFactory::getPackageKeyFromManifest($composerManifest, $packagePath, $packagesBasePath);
$packageKey = PackageFactory::getPackageKeyFromManifest($composerManifest, $packagePath, $packagesBasePath);
$this->composerNameToPackageKeyMap[strtolower($composerManifest->name)] = $packageKey;
$this->packageStatesConfiguration['packages'][$packageKey]['manifestPath'] = substr($composerManifestPath, strlen($packagePath)) ? : '';
$this->packageStatesConfiguration['packages'][$packageKey]['composerName'] = $composerManifest->name;
$this->packageStatesConfiguration['packages'][$packageKey]['protected'] = FALSE;
$this->packageStatesConfiguration['packages'][$packageKey]['partOfFactoryDefault'] = FALSE;
$this->packageStatesConfiguration['packages'][$packageKey]['partOfMinimalUsableSystem'] = FALSE;
if (isset($composerManifest->extra)) {
if (isset($composerManifest->extra->protected)) {
$this->packageStatesConfiguration['packages'][$packageKey]['protected'] = (boolean)$composerManifest->extra->protected;
}
if (isset($composerManifest->extra->partOfFactoryDefault)) {
$this->packageStatesConfiguration['packages'][$packageKey]['partOfFactoryDefault'] = (boolean)$composerManifest->extra->partOfFactoryDefault;
}
if (isset($composerManifest->extra->partOfMinimalUsableSystem)) {
$this->packageStatesConfiguration['packages'][$packageKey]['partOfMinimalUsableSystem'] = (boolean)$composerManifest->extra->partOfMinimalUsableSystem;
}
}
} catch (\TYPO3\Flow\Package\Exception\MissingPackageManifestException $exception) {
$relativePackagePath = substr($packagePath, strlen($packagesBasePath));
$packageKey = substr($relativePackagePath, strpos($relativePackagePath, '/') + 1, -1);
......
}
/**
* Looks for composer.json in the given path and returns a path or NULL.
* Looks for composer.json in the given path and returns a path or NULL
* Needs to return array() if ext_emconf.php is present so package is not interpreted as "regular" package by
* Flow-Package-Management parts
*
* @param string $packagePath
* @return array
......
try {
$package = $this->packageFactory->create($this->packagesBasePath, $packagePath, $packageKey, $classesPath, $manifestPath);
$package->setProtected($stateConfiguration['protected'] || $package->isProtected());
if ($package instanceof Package) {
$package->setPartOfFactoryDefault($stateConfiguration['partOfFactoryDefault'] || $package->isPartOfFactoryDefault());
$package->setPartOfMinimalUsableSystem($stateConfiguration['partOfMinimalUsableSystem'] || $package->isPartOfMinimalUsableSystem());
}
} catch (\TYPO3\Flow\Package\Exception\InvalidPackagePathException $exception) {
$this->unregisterPackageByPackageKey($packageKey);
continue;
......
$package = parent::registerPackage($package, $sortAndSave);
if ($package instanceof PackageInterface) {
foreach ($package->getPackageReplacementKeys() as $packageToReplace => $versionConstraint) {
$this->packageAliasMap[strtolower($packageToReplace)] = $package->getPackageKey();
if ($packageToReplace !== $package->getPackageKey()) {
$this->packageAliasMap[strtolower($packageToReplace)] = $package->getPackageKey();
}
}
}
return $package;
......
protected function sortAvailablePackagesByDependencies() {
$this->resolvePackageDependencies();
$this->packageStatesConfiguration['packages'] = $this->dependencyResolver->sortPackageStatesConfigurationByDependency($this->packageStatesConfiguration['packages']);
$this->packageStatesConfiguration['packages'] = $this->getDependencyResolver()
->sortPackageStatesConfigurationByDependency($this->packageStatesConfiguration['packages']);
// Reorder the packages according to the loading order
$newPackages = array();
......
$this->packages = $newPackages;
}
/**
* @return DependencyResolver
*/
protected function getDependencyResolver() {
if ($this->dependencyResolver === NULL) {
$this->dependencyResolver = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Package\\DependencyResolver');
}
return $this->dependencyResolver;
}
}
typo3/sysext/core/Configuration/DefaultConfiguration.php
),
'LOG' => array(
'writerConfiguration' => array(
\TYPO3\CMS\Core\Log\LogLevel::DEBUG => array(
7 => array( // equals \TYPO3\CMS\Core\Log\LogLevel::DEBUG - for performance reasons this is put as plain value
'TYPO3\\CMS\\Core\\Log\\Writer\\FileWriter' => array(
'logFile' => 'typo3temp/logs/typo3.log'
)
......
),
'deprecated' => array(
'writerConfiguration' => array(
\TYPO3\CMS\Core\Log\LogLevel::WARNING => array(
4 => array( // equals \TYPO3\CMS\Core\Log\LogLevel::WARNING - for performance reasons this is put as plain value
'TYPO3\\CMS\\Core\\Log\\Writer\\FileWriter' => array(
'logFile' => 'typo3conf/deprecation.log'
)
typo3/sysext/core/composer.json
},
"replace": {
"core": "*"
},
"extra": {
"protected": true,
"partOfFactoryDefault": true,
"partOfMinimalUsableSystem": true
}
}
typo3/sysext/cshmanual/Classes/Package.php
<?php
namespace TYPO3\CMS\Cshmanual;
/***************************************************************
* Copyright notice
*
* (c) 2013 Thomas Maroschik <tmaroschik@dfau.de>
* All rights reserved
*
* This script is part of the TYPO3 project. The TYPO3 project is
* free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* The GNU General Public License can be found at
* http://www.gnu.org/copyleft/gpl.html.
* A copy is found in the text file GPL.txt and important notices to the license
* from the author is found in LICENSE.txt distributed with these scripts.
*
*
* This script is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/
use TYPO3\CMS\Core\Package\Package as BasePackage;
/**
* This is the cshmanual package
*/
class Package extends BasePackage {
/**
* @var boolean
*/
protected $protected = TRUE;
/**
* @var bool
*/
protected $partOfFactoryDefault = TRUE;
/**
* @var bool
*/
protected $partOfMinimalUsableSystem = TRUE;
}
typo3/sysext/cshmanual/composer.json
},
"replace": {
"cshmanual": "*"
},
"extra": {
"protected": true,
"partOfFactoryDefault": true,
"partOfMinimalUsableSystem": true
}
}
typo3/sysext/css_styled_content/composer.json
},
"replace": {
"css_styled_content": "*"
},
"extra": {
"protected": false,
"partOfFactoryDefault": true,
"partOfMinimalUsableSystem": false
}
}
typo3/sysext/dbal/composer.json
"replace": {
"dbal": "*"
}
,
"extra": {
"protected": false,
"partOfFactoryDefault": false,
"partOfMinimalUsableSystem": false
}
}
typo3/sysext/documentation/Classes/Package.php
<?php
namespace TYPO3\CMS\Documentation;
/***************************************************************
* Copyright notice
*
* (c) 2013 Christian Kuhn <lolli@schwarzbu.ch>
* All rights reserved
*
* This script is part of the TYPO3 project. The TYPO3 project is
* free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* The GNU General Public License can be found at
* http://www.gnu.org/copyleft/gpl.html.
* A copy is found in the text file GPL.txt and important notices to the license
* from the author is found in LICENSE.txt distributed with these scripts.
*
*
* This script is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/
use TYPO3\CMS\Core\Package\Package as BasePackage;
/**
* This is the Documentation package
*/
class Package extends BasePackage {
/**
* @var bool
*/
protected $partOfFactoryDefault = TRUE;
}
typo3/sysext/documentation/composer.json
},
"replace": {
"documentation": "*"
},
"extra": {
"protected": false,
"partOfFactoryDefault": true,
"partOfMinimalUsableSystem": false
}
}
typo3/sysext/extbase/Classes/Package.php
<?php
namespace TYPO3\CMS\Extbase;
/***************************************************************
* Copyright notice
*
* (c) 2013 Thomas Maroschik <tmaroschik@dfau.de>
* All rights reserved
*
* This script is part of the TYPO3 project. The TYPO3 project is
* free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* The GNU General Public License can be found at
* http://www.gnu.org/copyleft/gpl.html.
* A copy is found in the text file GPL.txt and important notices to the license
* from the author is found in LICENSE.txt distributed with these scripts.
*
*
* This script is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/
use TYPO3\CMS\Core\Package\Package as BasePackage;
/**
* This is the extbase package
*/
class Package extends BasePackage {
/**
* @var boolean
*/
protected $protected = TRUE;
/**
* @var bool
*/
protected $partOfFactoryDefault = TRUE;
/**
* @var bool
*/
protected $partOfMinimalUsableSystem = TRUE;
}
typo3/sysext/extbase/composer.json
},
"replace": {
"extbase": "*"
},
"extra": {
"protected": true,
"partOfFactoryDefault": true,
"partOfMinimalUsableSystem": true
}
}
typo3/sysext/extensionmanager/Classes/Package.php
<?php
namespace TYPO3\CMS\Extensionmanager;
/***************************************************************
* Copyright notice
*
* (c) 2013 Thomas Maroschik <tmaroschik@dfau.de>
* All rights reserved
*
* This script is part of the TYPO3 project. The TYPO3 project is
* free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* The GNU General Public License can be found at
* http://www.gnu.org/copyleft/gpl.html.
* A copy is found in the text file GPL.txt and important notices to the license
* from the author is found in LICENSE.txt distributed with these scripts.
*
*
* This script is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/
use TYPO3\CMS\Core\Package\Package as BasePackage;
/**
* This is the extensionmanager package
*/
class Package extends BasePackage {
/**
* @var boolean
*/
protected $protected = TRUE;
/**
* @var bool
*/
protected $partOfFactoryDefault = TRUE;
/**
* @var bool
*/
protected $partOfMinimalUsableSystem = TRUE;
}
typo3/sysext/extensionmanager/composer.json
},
"replace": {
"extensionmanager": "*"
},
"extra": {
"protected": true,
"partOfFactoryDefault": true,
"partOfMinimalUsableSystem": true
}
}
typo3/sysext/extra_page_cm_options/Classes/Package.php
<?php
namespace TYPO3\CMS\ExtraPageCmOptions;
/***************************************************************
* Copyright notice
*
* (c) 2013 Christian Kuhn <lolli@schwarzbu.ch>
* All rights reserved
*
* This script is part of the TYPO3 project. The TYPO3 project is
* free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* The GNU General Public License can be found at
* http://www.gnu.org/copyleft/gpl.html.
* A copy is found in the text file GPL.txt and important notices to the license
* from the author is found in LICENSE.txt distributed with these scripts.
*
*
* This script is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/
use TYPO3\CMS\Core\Package\Package as BasePackage;
/**
* This is the ExtraPageCmOptions package
*/
class Package extends BasePackage {
/**
* @var bool
*/
protected $partOfFactoryDefault = TRUE;
}
typo3/sysext/extra_page_cm_options/composer.json
},
"replace": {
"extra_page_cm_options": "*"
},
"extra": {
"protected": false,
"partOfFactoryDefault": true,
"partOfMinimalUsableSystem": false
}
}
typo3/sysext/feedit/composer.json
},
"replace": {
"feedit": "*"
},
"extra": {
"protected": false,
"partOfFactoryDefault": false,
"partOfMinimalUsableSystem": false
}
}
typo3/sysext/felogin/Classes/Package.php
<?php
namespace TYPO3\CMS\Felogin;
/***************************************************************
* Copyright notice
*
* (c) 2013 Christian Kuhn <lolli@schwarzbu.ch>
* All rights reserved
*
* This script is part of the TYPO3 project. The TYPO3 project is
* free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* The GNU General Public License can be found at
* http://www.gnu.org/copyleft/gpl.html.
* A copy is found in the text file GPL.txt and important notices to the license
* from the author is found in LICENSE.txt distributed with these scripts.
*
*
* This script is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/
use TYPO3\CMS\Core\Package\Package as BasePackage;
/**
* This is the Felogin package
*/
class Package extends BasePackage {
/**
* @var bool
*/
protected $partOfFactoryDefault = TRUE;
}
... This diff was truncated because it exceeds the maximum size that can be displayed.
    (1-1/1)