mirror of
https://github.com/WordPress/WordPress.git
synced 2024-12-23 01:27:36 +01:00
Bootstrap: add composer.lock
and src/wp-vendor
files. Nothing is using this code yet, just going through the motions. Ignore the files in src/wp-vendor/composer
that will explode in PHP 5.2.
See #36335. Built from https://develop.svn.wordpress.org/trunk@38394 git-svn-id: http://core.svn.wordpress.org/trunk@38335 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
bb16c53108
commit
599d45019f
@ -4,7 +4,7 @@
|
||||
*
|
||||
* @global string $wp_version
|
||||
*/
|
||||
$wp_version = '4.7-alpha-38393';
|
||||
$wp_version = '4.7-alpha-38394';
|
||||
|
||||
/**
|
||||
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
|
||||
|
7
wp-vendor/autoload_52.php
Normal file
7
wp-vendor/autoload_52.php
Normal file
@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
// autoload_52.php generated by xrstf/composer-php52
|
||||
|
||||
require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
|
||||
|
||||
return ComposerAutoloaderInit5759bae7e770c5001f6b93d9ea09c420::getLoader();
|
271
wp-vendor/composer/ClassLoader52.php
Normal file
271
wp-vendor/composer/ClassLoader52.php
Normal file
@ -0,0 +1,271 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright (c) 2013, Christoph Mewes, http://www.xrstf.de
|
||||
*
|
||||
* This file is released under the terms of the MIT license. You can find the
|
||||
* complete text in the attached LICENSE file or online at:
|
||||
*
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
*
|
||||
* --------------------------------------------------------------------------
|
||||
*
|
||||
* 99% of this is copied as-is from the original Composer source code and is
|
||||
* released under MIT license as well. Copyright goes to:
|
||||
*
|
||||
* - Fabien Potencier <fabien@symfony.com>
|
||||
* - Jordi Boggiano <j.boggiano@seld.be>
|
||||
*/
|
||||
|
||||
class xrstf_Composer52_ClassLoader {
|
||||
private $prefixes = array();
|
||||
private $fallbackDirs = array();
|
||||
private $useIncludePath = false;
|
||||
private $classMap = array();
|
||||
private $classMapAuthoratative = false;
|
||||
private $allowUnderscore = false;
|
||||
|
||||
/**
|
||||
* @param boolean $flag true to allow class names with a leading underscore, false to disable
|
||||
*/
|
||||
public function setAllowUnderscore($flag) {
|
||||
$this->allowUnderscore = (boolean) $flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function getPrefixes() {
|
||||
return $this->prefixes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Turns off searching the prefix and fallback directories for classes
|
||||
* that have not been registered with the class map.
|
||||
*
|
||||
* @param bool $classMapAuthoratative
|
||||
*/
|
||||
public function setClassMapAuthoritative($classMapAuthoratative) {
|
||||
$this->classMapAuthoratative = $classMapAuthoratative;
|
||||
}
|
||||
|
||||
/**
|
||||
* Should class lookup fail if not found in the current class map?
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function getClassMapAuthoratative() {
|
||||
return $this->classMapAuthoratative;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function getFallbackDirs() {
|
||||
return $this->fallbackDirs;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
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 classes, merging with any others previously set.
|
||||
*
|
||||
* @param string $prefix the classes prefix
|
||||
* @param array|string $paths the location(s) of the classes
|
||||
* @param bool $prepend prepend the location(s)
|
||||
*/
|
||||
public function add($prefix, $paths, $prepend = false) {
|
||||
if (!$prefix) {
|
||||
if ($prepend) {
|
||||
$this->fallbackDirs = array_merge(
|
||||
(array) $paths,
|
||||
$this->fallbackDirs
|
||||
);
|
||||
}
|
||||
else {
|
||||
$this->fallbackDirs = array_merge(
|
||||
$this->fallbackDirs,
|
||||
(array) $paths
|
||||
);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (!isset($this->prefixes[$prefix])) {
|
||||
$this->prefixes[$prefix] = (array) $paths;
|
||||
return;
|
||||
}
|
||||
|
||||
if ($prepend) {
|
||||
$this->prefixes[$prefix] = array_merge(
|
||||
(array) $paths,
|
||||
$this->prefixes[$prefix]
|
||||
);
|
||||
}
|
||||
else {
|
||||
$this->prefixes[$prefix] = array_merge(
|
||||
$this->prefixes[$prefix],
|
||||
(array) $paths
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers a set of classes, replacing any others previously set.
|
||||
*
|
||||
* @param string $prefix the classes prefix
|
||||
* @param array|string $paths the location(s) of the classes
|
||||
*/
|
||||
public function set($prefix, $paths) {
|
||||
if (!$prefix) {
|
||||
$this->fallbackDirs = (array) $paths;
|
||||
return;
|
||||
}
|
||||
|
||||
$this->prefixes[$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;
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers this instance as an autoloader.
|
||||
*/
|
||||
public function register() {
|
||||
spl_autoload_register(array($this, 'loadClass'), true);
|
||||
}
|
||||
|
||||
/**
|
||||
* 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
|
||||
*/
|
||||
public function loadClass($class) {
|
||||
if ($file = $this->findFile($class)) {
|
||||
include $file;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Finds the path to the file where the class is defined.
|
||||
*
|
||||
* @param string $class the name of the class
|
||||
* @return string|null the path, if found
|
||||
*/
|
||||
public function findFile($class) {
|
||||
if ('\\' === $class[0]) {
|
||||
$class = substr($class, 1);
|
||||
}
|
||||
|
||||
if (isset($this->classMap[$class])) {
|
||||
return $this->classMap[$class];
|
||||
}
|
||||
elseif ($this->classMapAuthoratative) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$classPath = $this->getClassPath($class);
|
||||
|
||||
foreach ($this->prefixes as $prefix => $dirs) {
|
||||
if (0 === strpos($class, $prefix)) {
|
||||
foreach ($dirs as $dir) {
|
||||
if (file_exists($dir.DIRECTORY_SEPARATOR.$classPath)) {
|
||||
return $dir.DIRECTORY_SEPARATOR.$classPath;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($this->fallbackDirs as $dir) {
|
||||
if (file_exists($dir.DIRECTORY_SEPARATOR.$classPath)) {
|
||||
return $dir.DIRECTORY_SEPARATOR.$classPath;
|
||||
}
|
||||
}
|
||||
|
||||
if ($this->useIncludePath && $file = self::resolveIncludePath($classPath)) {
|
||||
return $file;
|
||||
}
|
||||
|
||||
return $this->classMap[$class] = false;
|
||||
}
|
||||
|
||||
private function getClassPath($class) {
|
||||
if (false !== $pos = strrpos($class, '\\')) {
|
||||
// namespaced class name
|
||||
$classPath = str_replace('\\', DIRECTORY_SEPARATOR, substr($class, 0, $pos)).DIRECTORY_SEPARATOR;
|
||||
$className = substr($class, $pos + 1);
|
||||
}
|
||||
else {
|
||||
// PEAR-like class name
|
||||
$classPath = null;
|
||||
$className = $class;
|
||||
}
|
||||
|
||||
$className = str_replace('_', DIRECTORY_SEPARATOR, $className);
|
||||
|
||||
// restore the prefix
|
||||
if ($this->allowUnderscore && DIRECTORY_SEPARATOR === $className[0]) {
|
||||
$className[0] = '_';
|
||||
}
|
||||
|
||||
$classPath .= $className.'.php';
|
||||
|
||||
return $classPath;
|
||||
}
|
||||
|
||||
public static function resolveIncludePath($classPath) {
|
||||
$paths = explode(PATH_SEPARATOR, get_include_path());
|
||||
|
||||
foreach ($paths as $path) {
|
||||
$path = rtrim($path, '/\\');
|
||||
|
||||
if ($file = file_exists($path.DIRECTORY_SEPARATOR.$file)) {
|
||||
return $file;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
21
wp-vendor/composer/LICENSE
Normal file
21
wp-vendor/composer/LICENSE
Normal file
@ -0,0 +1,21 @@
|
||||
|
||||
Copyright (c) 2016 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.
|
||||
|
201
wp-vendor/composer/autoload_classmap.php
Normal file
201
wp-vendor/composer/autoload_classmap.php
Normal file
@ -0,0 +1,201 @@
|
||||
<?php
|
||||
|
||||
// autoload_classmap.php @generated by Composer
|
||||
|
||||
$vendorDir = dirname(dirname(__FILE__));
|
||||
$baseDir = dirname(dirname($vendorDir));
|
||||
|
||||
return array(
|
||||
'Automatic_Upgrader_Skin' => $baseDir . '/src/wp-admin/includes/class-automatic-upgrader-skin.php',
|
||||
'Bulk_Plugin_Upgrader_Skin' => $baseDir . '/src/wp-admin/includes/class-bulk-plugin-upgrader-skin.php',
|
||||
'Bulk_Theme_Upgrader_Skin' => $baseDir . '/src/wp-admin/includes/class-bulk-theme-upgrader-skin.php',
|
||||
'Bulk_Upgrader_Skin' => $baseDir . '/src/wp-admin/includes/class-bulk-upgrader-skin.php',
|
||||
'Core_Upgrader' => $baseDir . '/src/wp-admin/includes/class-core-upgrader.php',
|
||||
'Custom_Background' => $baseDir . '/src/wp-admin/custom-background.php',
|
||||
'Custom_Image_Header' => $baseDir . '/src/wp-admin/custom-header.php',
|
||||
'File_Upload_Upgrader' => $baseDir . '/src/wp-admin/includes/class-file-upload-upgrader.php',
|
||||
'IXR_Base64' => $baseDir . '/src/wp-includes/IXR/class-IXR-base64.php',
|
||||
'IXR_Client' => $baseDir . '/src/wp-includes/IXR/class-IXR-client.php',
|
||||
'IXR_ClientMulticall' => $baseDir . '/src/wp-includes/IXR/class-IXR-clientmulticall.php',
|
||||
'IXR_Date' => $baseDir . '/src/wp-includes/IXR/class-IXR-date.php',
|
||||
'IXR_Error' => $baseDir . '/src/wp-includes/IXR/class-IXR-error.php',
|
||||
'IXR_IntrospectionServer' => $baseDir . '/src/wp-includes/IXR/class-IXR-introspectionserver.php',
|
||||
'IXR_Message' => $baseDir . '/src/wp-includes/IXR/class-IXR-message.php',
|
||||
'IXR_Request' => $baseDir . '/src/wp-includes/IXR/class-IXR-request.php',
|
||||
'IXR_Server' => $baseDir . '/src/wp-includes/IXR/class-IXR-server.php',
|
||||
'IXR_Value' => $baseDir . '/src/wp-includes/IXR/class-IXR-value.php',
|
||||
'Language_Pack_Upgrader' => $baseDir . '/src/wp-admin/includes/class-language-pack-upgrader.php',
|
||||
'Language_Pack_Upgrader_Skin' => $baseDir . '/src/wp-admin/includes/class-language-pack-upgrader-skin.php',
|
||||
'PHPMailer' => $baseDir . '/src/wp-includes/class-phpmailer.php',
|
||||
'POP3' => $baseDir . '/src/wp-includes/class-pop3.php',
|
||||
'PasswordHash' => $baseDir . '/src/wp-includes/class-phpass.php',
|
||||
'PclZip' => $baseDir . '/src/wp-admin/includes/class-pclzip.php',
|
||||
'Plugin_Installer_Skin' => $baseDir . '/src/wp-admin/includes/class-plugin-installer-skin.php',
|
||||
'Plugin_Upgrader' => $baseDir . '/src/wp-admin/includes/class-plugin-upgrader.php',
|
||||
'Plugin_Upgrader_Skin' => $baseDir . '/src/wp-admin/includes/class-plugin-upgrader-skin.php',
|
||||
'Requests' => $baseDir . '/src/wp-includes/class-requests.php',
|
||||
'SMTP' => $baseDir . '/src/wp-includes/class-smtp.php',
|
||||
'Services_JSON' => $baseDir . '/src/wp-includes/class-json.php',
|
||||
'Services_JSON_Error' => $baseDir . '/src/wp-includes/class-json.php',
|
||||
'SimplePie' => $baseDir . '/src/wp-includes/class-simplepie.php',
|
||||
'Theme_Installer_Skin' => $baseDir . '/src/wp-admin/includes/class-theme-installer-skin.php',
|
||||
'Theme_Upgrader' => $baseDir . '/src/wp-admin/includes/class-theme-upgrader.php',
|
||||
'Theme_Upgrader_Skin' => $baseDir . '/src/wp-admin/includes/class-theme-upgrader-skin.php',
|
||||
'WP' => $baseDir . '/src/wp-includes/class-wp.php',
|
||||
'WP_Admin_Bar' => $baseDir . '/src/wp-includes/class-wp-admin-bar.php',
|
||||
'WP_Ajax_Response' => $baseDir . '/src/wp-includes/class-wp-ajax-response.php',
|
||||
'WP_Ajax_Upgrader_Skin' => $baseDir . '/src/wp-admin/includes/class-wp-ajax-upgrader-skin.php',
|
||||
'WP_Automatic_Updater' => $baseDir . '/src/wp-admin/includes/class-wp-automatic-updater.php',
|
||||
'WP_Comment' => $baseDir . '/src/wp-includes/class-wp-comment.php',
|
||||
'WP_Comment_Query' => $baseDir . '/src/wp-includes/class-wp-comment-query.php',
|
||||
'WP_Comments_List_Table' => $baseDir . '/src/wp-admin/includes/class-wp-comments-list-table.php',
|
||||
'WP_Customize_Background_Image_Control' => $baseDir . '/src/wp-includes/customize/class-wp-customize-background-image-control.php',
|
||||
'WP_Customize_Background_Image_Setting' => $baseDir . '/src/wp-includes/customize/class-wp-customize-background-image-setting.php',
|
||||
'WP_Customize_Color_Control' => $baseDir . '/src/wp-includes/customize/class-wp-customize-color-control.php',
|
||||
'WP_Customize_Control' => $baseDir . '/src/wp-includes/class-wp-customize-control.php',
|
||||
'WP_Customize_Cropped_Image_Control' => $baseDir . '/src/wp-includes/customize/class-wp-customize-cropped-image-control.php',
|
||||
'WP_Customize_Filter_Setting' => $baseDir . '/src/wp-includes/customize/class-wp-customize-filter-setting.php',
|
||||
'WP_Customize_Header_Image_Control' => $baseDir . '/src/wp-includes/customize/class-wp-customize-header-image-control.php',
|
||||
'WP_Customize_Header_Image_Setting' => $baseDir . '/src/wp-includes/customize/class-wp-customize-header-image-setting.php',
|
||||
'WP_Customize_Image_Control' => $baseDir . '/src/wp-includes/customize/class-wp-customize-image-control.php',
|
||||
'WP_Customize_Manager' => $baseDir . '/src/wp-includes/class-wp-customize-manager.php',
|
||||
'WP_Customize_Media_Control' => $baseDir . '/src/wp-includes/customize/class-wp-customize-media-control.php',
|
||||
'WP_Customize_Nav_Menu_Auto_Add_Control' => $baseDir . '/src/wp-includes/customize/class-wp-customize-nav-menu-auto-add-control.php',
|
||||
'WP_Customize_Nav_Menu_Control' => $baseDir . '/src/wp-includes/customize/class-wp-customize-nav-menu-control.php',
|
||||
'WP_Customize_Nav_Menu_Item_Control' => $baseDir . '/src/wp-includes/customize/class-wp-customize-nav-menu-item-control.php',
|
||||
'WP_Customize_Nav_Menu_Item_Setting' => $baseDir . '/src/wp-includes/customize/class-wp-customize-nav-menu-item-setting.php',
|
||||
'WP_Customize_Nav_Menu_Location_Control' => $baseDir . '/src/wp-includes/customize/class-wp-customize-nav-menu-location-control.php',
|
||||
'WP_Customize_Nav_Menu_Name_Control' => $baseDir . '/src/wp-includes/customize/class-wp-customize-nav-menu-name-control.php',
|
||||
'WP_Customize_Nav_Menu_Section' => $baseDir . '/src/wp-includes/customize/class-wp-customize-nav-menu-section.php',
|
||||
'WP_Customize_Nav_Menu_Setting' => $baseDir . '/src/wp-includes/customize/class-wp-customize-nav-menu-setting.php',
|
||||
'WP_Customize_Nav_Menus' => $baseDir . '/src/wp-includes/class-wp-customize-nav-menus.php',
|
||||
'WP_Customize_Nav_Menus_Panel' => $baseDir . '/src/wp-includes/customize/class-wp-customize-nav-menus-panel.php',
|
||||
'WP_Customize_New_Menu_Control' => $baseDir . '/src/wp-includes/customize/class-wp-customize-new-menu-control.php',
|
||||
'WP_Customize_New_Menu_Section' => $baseDir . '/src/wp-includes/customize/class-wp-customize-new-menu-section.php',
|
||||
'WP_Customize_Panel' => $baseDir . '/src/wp-includes/class-wp-customize-panel.php',
|
||||
'WP_Customize_Partial' => $baseDir . '/src/wp-includes/customize/class-wp-customize-partial.php',
|
||||
'WP_Customize_Section' => $baseDir . '/src/wp-includes/class-wp-customize-section.php',
|
||||
'WP_Customize_Selective_Refresh' => $baseDir . '/src/wp-includes/customize/class-wp-customize-selective-refresh.php',
|
||||
'WP_Customize_Setting' => $baseDir . '/src/wp-includes/class-wp-customize-setting.php',
|
||||
'WP_Customize_Sidebar_Section' => $baseDir . '/src/wp-includes/customize/class-wp-customize-sidebar-section.php',
|
||||
'WP_Customize_Site_Icon_Control' => $baseDir . '/src/wp-includes/customize/class-wp-customize-site-icon-control.php',
|
||||
'WP_Customize_Theme_Control' => $baseDir . '/src/wp-includes/customize/class-wp-customize-theme-control.php',
|
||||
'WP_Customize_Themes_Section' => $baseDir . '/src/wp-includes/customize/class-wp-customize-themes-section.php',
|
||||
'WP_Customize_Upload_Control' => $baseDir . '/src/wp-includes/customize/class-wp-customize-upload-control.php',
|
||||
'WP_Customize_Widgets' => $baseDir . '/src/wp-includes/class-wp-customize-widgets.php',
|
||||
'WP_Date_Query' => $baseDir . '/src/wp-includes/date.php',
|
||||
'WP_Dependencies' => $baseDir . '/src/wp-includes/class.wp-dependencies.php',
|
||||
'WP_Embed' => $baseDir . '/src/wp-includes/class-wp-embed.php',
|
||||
'WP_Error' => $baseDir . '/src/wp-includes/class-wp-error.php',
|
||||
'WP_Feed_Cache' => $baseDir . '/src/wp-includes/class-wp-feed-cache.php',
|
||||
'WP_Feed_Cache_Transient' => $baseDir . '/src/wp-includes/class-wp-feed-cache-transient.php',
|
||||
'WP_Filesystem_Base' => $baseDir . '/src/wp-admin/includes/class-wp-filesystem-base.php',
|
||||
'WP_Filesystem_Direct' => $baseDir . '/src/wp-admin/includes/class-wp-filesystem-direct.php',
|
||||
'WP_Filesystem_FTPext' => $baseDir . '/src/wp-admin/includes/class-wp-filesystem-ftpext.php',
|
||||
'WP_Filesystem_SSH2' => $baseDir . '/src/wp-admin/includes/class-wp-filesystem-ssh2.php',
|
||||
'WP_Filesystem_ftpsockets' => $baseDir . '/src/wp-admin/includes/class-wp-filesystem-ftpsockets.php',
|
||||
'WP_HTTP_Fsockopen' => $baseDir . '/src/wp-includes/class-wp-http-streams.php',
|
||||
'WP_HTTP_IXR_Client' => $baseDir . '/src/wp-includes/class-wp-http-ixr-client.php',
|
||||
'WP_HTTP_Proxy' => $baseDir . '/src/wp-includes/class-wp-http-proxy.php',
|
||||
'WP_HTTP_Requests_Response' => $baseDir . '/src/wp-includes/class-wp-http-requests-response.php',
|
||||
'WP_HTTP_Response' => $baseDir . '/src/wp-includes/class-wp-http-response.php',
|
||||
'WP_Http' => $baseDir . '/src/wp-includes/class-http.php',
|
||||
'WP_Http_Cookie' => $baseDir . '/src/wp-includes/class-wp-http-cookie.php',
|
||||
'WP_Http_Curl' => $baseDir . '/src/wp-includes/class-wp-http-curl.php',
|
||||
'WP_Http_Encoding' => $baseDir . '/src/wp-includes/class-wp-http-encoding.php',
|
||||
'WP_Http_Streams' => $baseDir . '/src/wp-includes/class-wp-http-streams.php',
|
||||
'WP_Image_Editor' => $baseDir . '/src/wp-includes/class-wp-image-editor.php',
|
||||
'WP_Image_Editor_GD' => $baseDir . '/src/wp-includes/class-wp-image-editor-gd.php',
|
||||
'WP_Image_Editor_Imagick' => $baseDir . '/src/wp-includes/class-wp-image-editor-imagick.php',
|
||||
'WP_Importer' => $baseDir . '/src/wp-admin/includes/class-wp-importer.php',
|
||||
'WP_Internal_Pointers' => $baseDir . '/src/wp-admin/includes/class-wp-internal-pointers.php',
|
||||
'WP_Links_List_Table' => $baseDir . '/src/wp-admin/includes/class-wp-links-list-table.php',
|
||||
'WP_List_Table' => $baseDir . '/src/wp-admin/includes/class-wp-list-table.php',
|
||||
'WP_Locale' => $baseDir . '/src/wp-includes/class-wp-locale.php',
|
||||
'WP_MS_Sites_List_Table' => $baseDir . '/src/wp-admin/includes/class-wp-ms-sites-list-table.php',
|
||||
'WP_MS_Themes_List_Table' => $baseDir . '/src/wp-admin/includes/class-wp-ms-themes-list-table.php',
|
||||
'WP_MS_Users_List_Table' => $baseDir . '/src/wp-admin/includes/class-wp-ms-users-list-table.php',
|
||||
'WP_MatchesMapRegex' => $baseDir . '/src/wp-includes/class-wp-matchesmapregex.php',
|
||||
'WP_Media_List_Table' => $baseDir . '/src/wp-admin/includes/class-wp-media-list-table.php',
|
||||
'WP_Meta_Query' => $baseDir . '/src/wp-includes/class-wp-meta-query.php',
|
||||
'WP_Metadata_Lazyloader' => $baseDir . '/src/wp-includes/class-wp-metadata-lazyloader.php',
|
||||
'WP_Nav_Menu_Widget' => $baseDir . '/src/wp-includes/widgets/class-wp-nav-menu-widget.php',
|
||||
'WP_Network' => $baseDir . '/src/wp-includes/class-wp-network.php',
|
||||
'WP_Network_Query' => $baseDir . '/src/wp-includes/class-wp-network-query.php',
|
||||
'WP_Plugin_Install_List_Table' => $baseDir . '/src/wp-admin/includes/class-wp-plugin-install-list-table.php',
|
||||
'WP_Plugins_List_Table' => $baseDir . '/src/wp-admin/includes/class-wp-plugins-list-table.php',
|
||||
'WP_Post' => $baseDir . '/src/wp-includes/class-wp-post.php',
|
||||
'WP_Post_Comments_List_Table' => $baseDir . '/src/wp-admin/includes/class-wp-post-comments-list-table.php',
|
||||
'WP_Post_Type' => $baseDir . '/src/wp-includes/class-wp-post-type.php',
|
||||
'WP_Posts_List_Table' => $baseDir . '/src/wp-admin/includes/class-wp-posts-list-table.php',
|
||||
'WP_Press_This' => $baseDir . '/src/wp-admin/includes/class-wp-press-this.php',
|
||||
'WP_Query' => $baseDir . '/src/wp-includes/class-wp-query.php',
|
||||
'WP_REST_Request' => $baseDir . '/src/wp-includes/rest-api/class-wp-rest-request.php',
|
||||
'WP_REST_Response' => $baseDir . '/src/wp-includes/rest-api/class-wp-rest-response.php',
|
||||
'WP_REST_Server' => $baseDir . '/src/wp-includes/rest-api/class-wp-rest-server.php',
|
||||
'WP_Rewrite' => $baseDir . '/src/wp-includes/class-wp-rewrite.php',
|
||||
'WP_Role' => $baseDir . '/src/wp-includes/class-wp-role.php',
|
||||
'WP_Roles' => $baseDir . '/src/wp-includes/class-wp-roles.php',
|
||||
'WP_Screen' => $baseDir . '/src/wp-admin/includes/class-wp-screen.php',
|
||||
'WP_Scripts' => $baseDir . '/src/wp-includes/class.wp-scripts.php',
|
||||
'WP_Session_Tokens' => $baseDir . '/src/wp-includes/class-wp-session-tokens.php',
|
||||
'WP_SimplePie_File' => $baseDir . '/src/wp-includes/class-wp-simplepie-file.php',
|
||||
'WP_SimplePie_Sanitize_KSES' => $baseDir . '/src/wp-includes/class-wp-simplepie-sanitize-kses.php',
|
||||
'WP_Site' => $baseDir . '/src/wp-includes/class-wp-site.php',
|
||||
'WP_Site_Icon' => $baseDir . '/src/wp-admin/includes/class-wp-site-icon.php',
|
||||
'WP_Site_Query' => $baseDir . '/src/wp-includes/class-wp-site-query.php',
|
||||
'WP_Styles' => $baseDir . '/src/wp-includes/class.wp-styles.php',
|
||||
'WP_Tax_Query' => $baseDir . '/src/wp-includes/class-wp-tax-query.php',
|
||||
'WP_Term' => $baseDir . '/src/wp-includes/class-wp-term.php',
|
||||
'WP_Term_Query' => $baseDir . '/src/wp-includes/class-wp-term-query.php',
|
||||
'WP_Terms_List_Table' => $baseDir . '/src/wp-admin/includes/class-wp-terms-list-table.php',
|
||||
'WP_Text_Diff_Renderer_Table' => $baseDir . '/src/wp-includes/class-wp-text-diff-renderer-table.php',
|
||||
'WP_Text_Diff_Renderer_inline' => $baseDir . '/src/wp-includes/class-wp-text-diff-renderer-inline.php',
|
||||
'WP_Theme' => $baseDir . '/src/wp-includes/class-wp-theme.php',
|
||||
'WP_Theme_Install_List_Table' => $baseDir . '/src/wp-admin/includes/class-wp-theme-install-list-table.php',
|
||||
'WP_Themes_List_Table' => $baseDir . '/src/wp-admin/includes/class-wp-themes-list-table.php',
|
||||
'WP_Upgrader' => $baseDir . '/src/wp-admin/includes/class-wp-upgrader.php',
|
||||
'WP_Upgrader_Skin' => $baseDir . '/src/wp-admin/includes/class-wp-upgrader-skin.php',
|
||||
'WP_User' => $baseDir . '/src/wp-includes/class-wp-user.php',
|
||||
'WP_User_Meta_Session_Tokens' => $baseDir . '/src/wp-includes/class-wp-user-meta-session-tokens.php',
|
||||
'WP_User_Query' => $baseDir . '/src/wp-includes/class-wp-user-query.php',
|
||||
'WP_Users_List_Table' => $baseDir . '/src/wp-admin/includes/class-wp-users-list-table.php',
|
||||
'WP_Widget' => $baseDir . '/src/wp-includes/class-wp-widget.php',
|
||||
'WP_Widget_Archives' => $baseDir . '/src/wp-includes/widgets/class-wp-widget-archives.php',
|
||||
'WP_Widget_Area_Customize_Control' => $baseDir . '/src/wp-includes/customize/class-wp-widget-area-customize-control.php',
|
||||
'WP_Widget_Calendar' => $baseDir . '/src/wp-includes/widgets/class-wp-widget-calendar.php',
|
||||
'WP_Widget_Categories' => $baseDir . '/src/wp-includes/widgets/class-wp-widget-categories.php',
|
||||
'WP_Widget_Factory' => $baseDir . '/src/wp-includes/class-wp-widget-factory.php',
|
||||
'WP_Widget_Form_Customize_Control' => $baseDir . '/src/wp-includes/customize/class-wp-widget-form-customize-control.php',
|
||||
'WP_Widget_Links' => $baseDir . '/src/wp-includes/widgets/class-wp-widget-links.php',
|
||||
'WP_Widget_Meta' => $baseDir . '/src/wp-includes/widgets/class-wp-widget-meta.php',
|
||||
'WP_Widget_Pages' => $baseDir . '/src/wp-includes/widgets/class-wp-widget-pages.php',
|
||||
'WP_Widget_RSS' => $baseDir . '/src/wp-includes/widgets/class-wp-widget-rss.php',
|
||||
'WP_Widget_Recent_Comments' => $baseDir . '/src/wp-includes/widgets/class-wp-widget-recent-comments.php',
|
||||
'WP_Widget_Recent_Posts' => $baseDir . '/src/wp-includes/widgets/class-wp-widget-recent-posts.php',
|
||||
'WP_Widget_Search' => $baseDir . '/src/wp-includes/widgets/class-wp-widget-search.php',
|
||||
'WP_Widget_Tag_Cloud' => $baseDir . '/src/wp-includes/widgets/class-wp-widget-tag-cloud.php',
|
||||
'WP_Widget_Text' => $baseDir . '/src/wp-includes/widgets/class-wp-widget-text.php',
|
||||
'WP_oEmbed' => $baseDir . '/src/wp-includes/class-oembed.php',
|
||||
'WP_oEmbed_Controller' => $baseDir . '/src/wp-includes/class-wp-oembed-controller.php',
|
||||
'Walker' => $baseDir . '/src/wp-includes/class-wp-walker.php',
|
||||
'Walker_Category' => $baseDir . '/src/wp-includes/class-walker-category.php',
|
||||
'Walker_CategoryDropdown' => $baseDir . '/src/wp-includes/class-walker-category-dropdown.php',
|
||||
'Walker_Category_Checklist' => $baseDir . '/src/wp-admin/includes/class-walker-category-checklist.php',
|
||||
'Walker_Comment' => $baseDir . '/src/wp-includes/class-walker-comment.php',
|
||||
'Walker_Nav_Menu' => $baseDir . '/src/wp-includes/class-walker-nav-menu.php',
|
||||
'Walker_Nav_Menu_Checklist' => $baseDir . '/src/wp-admin/includes/class-walker-nav-menu-checklist.php',
|
||||
'Walker_Nav_Menu_Edit' => $baseDir . '/src/wp-admin/includes/class-walker-nav-menu-edit.php',
|
||||
'Walker_Page' => $baseDir . '/src/wp-includes/class-walker-page.php',
|
||||
'Walker_PageDropdown' => $baseDir . '/src/wp-includes/class-walker-page-dropdown.php',
|
||||
'_WP_Dependency' => $baseDir . '/src/wp-includes/class-wp-dependency.php',
|
||||
'_WP_Editors' => $baseDir . '/src/wp-includes/class-wp-editor.php',
|
||||
'_WP_List_Table_Compat' => $baseDir . '/src/wp-admin/includes/class-wp-list-table-compat.php',
|
||||
'ftp' => $baseDir . '/src/wp-admin/includes/class-ftp.php',
|
||||
'ftp_base' => $baseDir . '/src/wp-admin/includes/class-ftp.php',
|
||||
'ftp_pure' => $baseDir . '/src/wp-admin/includes/class-ftp-pure.php',
|
||||
'ftp_sockets' => $baseDir . '/src/wp-admin/includes/class-ftp-sockets.php',
|
||||
'phpmailerException' => $baseDir . '/src/wp-includes/class-phpmailer.php',
|
||||
'wp_xmlrpc_server' => $baseDir . '/src/wp-includes/class-wp-xmlrpc-server.php',
|
||||
'wpdb' => $baseDir . '/src/wp-includes/wp-db.php',
|
||||
);
|
10
wp-vendor/composer/autoload_namespaces.php
Normal file
10
wp-vendor/composer/autoload_namespaces.php
Normal file
@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
// autoload_namespaces.php @generated by Composer
|
||||
|
||||
$vendorDir = dirname(dirname(__FILE__));
|
||||
$baseDir = dirname(dirname($vendorDir));
|
||||
|
||||
return array(
|
||||
'xrstf\\Composer52' => array($vendorDir . '/xrstf/composer-php52/lib'),
|
||||
);
|
9
wp-vendor/composer/autoload_psr4.php
Normal file
9
wp-vendor/composer/autoload_psr4.php
Normal file
@ -0,0 +1,9 @@
|
||||
<?php
|
||||
|
||||
// autoload_psr4.php @generated by Composer
|
||||
|
||||
$vendorDir = dirname(dirname(__FILE__));
|
||||
$baseDir = dirname(dirname($vendorDir));
|
||||
|
||||
return array(
|
||||
);
|
44
wp-vendor/composer/autoload_real_52.php
Normal file
44
wp-vendor/composer/autoload_real_52.php
Normal file
@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
// autoload_real_52.php generated by xrstf/composer-php52
|
||||
|
||||
class ComposerAutoloaderInit5759bae7e770c5001f6b93d9ea09c420 {
|
||||
private static $loader;
|
||||
|
||||
public static function loadClassLoader($class) {
|
||||
if ('xrstf_Composer52_ClassLoader' === $class) {
|
||||
require dirname(__FILE__).'/ClassLoader52.php';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return xrstf_Composer52_ClassLoader
|
||||
*/
|
||||
public static function getLoader() {
|
||||
if (null !== self::$loader) {
|
||||
return self::$loader;
|
||||
}
|
||||
|
||||
spl_autoload_register(array('ComposerAutoloaderInit5759bae7e770c5001f6b93d9ea09c420', 'loadClassLoader'), true /*, true */);
|
||||
self::$loader = $loader = new xrstf_Composer52_ClassLoader();
|
||||
spl_autoload_unregister(array('ComposerAutoloaderInit5759bae7e770c5001f6b93d9ea09c420', 'loadClassLoader'));
|
||||
|
||||
$vendorDir = dirname(dirname(__FILE__));
|
||||
$baseDir = dirname(dirname($vendorDir));
|
||||
$dir = dirname(__FILE__);
|
||||
|
||||
$map = require $dir.'/autoload_namespaces.php';
|
||||
foreach ($map as $namespace => $path) {
|
||||
$loader->add($namespace, $path);
|
||||
}
|
||||
|
||||
$classMap = require $dir.'/autoload_classmap.php';
|
||||
if ($classMap) {
|
||||
$loader->addClassMap($classMap);
|
||||
}
|
||||
|
||||
$loader->register(true);
|
||||
|
||||
return $loader;
|
||||
}
|
||||
}
|
35
wp-vendor/composer/installed.json
Normal file
35
wp-vendor/composer/installed.json
Normal file
@ -0,0 +1,35 @@
|
||||
[
|
||||
{
|
||||
"name": "xrstf/composer-php52",
|
||||
"version": "v1.0.20",
|
||||
"version_normalized": "1.0.20.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/composer-php52/composer-php52.git",
|
||||
"reference": "bd41459d5e27df8d33057842b32377c39e97a5a8"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/composer-php52/composer-php52/zipball/bd41459d5e27df8d33057842b32377c39e97a5a8",
|
||||
"reference": "bd41459d5e27df8d33057842b32377c39e97a5a8",
|
||||
"shasum": ""
|
||||
},
|
||||
"time": "2016-04-16 21:52:24",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-default": "1.x-dev"
|
||||
}
|
||||
},
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"xrstf\\Composer52": "lib/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
]
|
||||
}
|
||||
]
|
19
wp-vendor/xrstf/composer-php52/LICENSE
Normal file
19
wp-vendor/xrstf/composer-php52/LICENSE
Normal file
@ -0,0 +1,19 @@
|
||||
Copyright (c) 2013 Christoph Mewes
|
||||
|
||||
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.
|
37
wp-vendor/xrstf/composer-php52/README.md
Normal file
37
wp-vendor/xrstf/composer-php52/README.md
Normal file
@ -0,0 +1,37 @@
|
||||
PHP 5.2 Autoloading for Composer
|
||||
================================
|
||||
|
||||
This package provides an easy way to get a PHP 5.2 compatible autoloader out of Composer. The generated autoloader is fully compatible to the original and is written into separate files, each ending with `_52.php`.
|
||||
|
||||
Legacy
|
||||
------
|
||||
|
||||
Please do not use this, if you can avoid it. It's a horrible hack, often breaks and is extremely tied to Composer's interna. This package was originally developed in 2012, when PHP 5.2 was much more common on cheap webhosts.
|
||||
|
||||
In 2016, this package has been moved from Bitbucket to a Github organization, because the original developer could no longer reliably maintain it. This is the reason for this legacy package name ``xrstf/...``.
|
||||
|
||||
Usage
|
||||
-----
|
||||
|
||||
In your project's `composer.json`, add the following lines:
|
||||
|
||||
```json
|
||||
{
|
||||
"require": {
|
||||
"xrstf/composer-php52": "1.*"
|
||||
},
|
||||
"scripts": {
|
||||
"post-install-cmd": [
|
||||
"xrstf\\Composer52\\Generator::onPostInstallCmd"
|
||||
],
|
||||
"post-update-cmd": [
|
||||
"xrstf\\Composer52\\Generator::onPostInstallCmd"
|
||||
],
|
||||
"post-autoload-dump": [
|
||||
"xrstf\\Composer52\\Generator::onPostInstallCmd"
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
After the next update/install, you will have a `vendor/autoload_52.php` file, that you can simply include and use in PHP 5.2 projects.
|
26
wp-vendor/xrstf/composer-php52/composer.json
Normal file
26
wp-vendor/xrstf/composer-php52/composer.json
Normal file
@ -0,0 +1,26 @@
|
||||
{
|
||||
"name": "xrstf/composer-php52",
|
||||
"license": "MIT",
|
||||
"support": {
|
||||
"source": "https://github.com/composer-php52/composer-php52",
|
||||
"issues": "https://github.com/composer-php52/composer-php52/issues"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"xrstf\\Composer52": "lib/"
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
"post-install-cmd": [
|
||||
"xrstf\\Composer52\\Generator::onPostInstallCmd"
|
||||
],
|
||||
"post-update-cmd": [
|
||||
"xrstf\\Composer52\\Generator::onPostInstallCmd"
|
||||
]
|
||||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-default": "1.x-dev"
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,346 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright (c) 2013, Christoph Mewes, http://www.xrstf.de
|
||||
*
|
||||
* This file is released under the terms of the MIT license. You can find the
|
||||
* complete text in the attached LICENSE file or online at:
|
||||
*
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
*
|
||||
* --------------------------------------------------------------------------
|
||||
*
|
||||
* 99% of this is copied as-is from the original Composer source code and is
|
||||
* released under MIT license as well. Copyright goes to:
|
||||
*
|
||||
* - Igor Wiedler <igor@wiedler.ch>
|
||||
* - Jordi Boggiano <j.boggiano@seld.be>
|
||||
*/
|
||||
|
||||
namespace xrstf\Composer52;
|
||||
|
||||
use Composer\Autoload\AutoloadGenerator as BaseGenerator;
|
||||
use Composer\Autoload\ClassMapGenerator;
|
||||
use Composer\Config;
|
||||
use Composer\Installer\InstallationManager;
|
||||
use Composer\Package\AliasPackage;
|
||||
use Composer\Package\PackageInterface;
|
||||
use Composer\Repository\InstalledRepositoryInterface;
|
||||
use Composer\Util\Filesystem;
|
||||
|
||||
class AutoloadGenerator extends BaseGenerator {
|
||||
|
||||
/**
|
||||
* @var bool
|
||||
*/
|
||||
private $classMapAuthoritative = false;
|
||||
|
||||
public function __construct() {
|
||||
// do nothing (but keep this constructor so we can build an instance without the need for an event dispatcher)
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether or not generated autoloader considers the class map
|
||||
* authoritative.
|
||||
*
|
||||
* @param bool $classMapAuthoritative
|
||||
*/
|
||||
public function setClassMapAuthoritative($classMapAuthoritative)
|
||||
{
|
||||
$this->classMapAuthoritative = (boolean) $classMapAuthoritative;
|
||||
}
|
||||
|
||||
public function dump(Config $config, InstalledRepositoryInterface $localRepo, PackageInterface $mainPackage, InstallationManager $installationManager, $targetDir, $scanPsr0Packages = false, $suffix = '') {
|
||||
if ($this->classMapAuthoritative) {
|
||||
// Force scanPsr0Packages when classmap is authoritative
|
||||
$scanPsr0Packages = true;
|
||||
}
|
||||
|
||||
$filesystem = new Filesystem();
|
||||
$filesystem->ensureDirectoryExists($config->get('vendor-dir'));
|
||||
|
||||
$cwd = getcwd();
|
||||
$basePath = $filesystem->normalizePath($cwd);
|
||||
$vendorPath = $filesystem->normalizePath(realpath($config->get('vendor-dir')));
|
||||
$targetDir = $vendorPath.'/'.$targetDir;
|
||||
$filesystem->ensureDirectoryExists($targetDir);
|
||||
|
||||
$useGlobalIncludePath = (bool) $config->get('use-include-path');
|
||||
$prependAutoloader = $config->get('prepend-autoloader') === false ? 'false' : 'true';
|
||||
$classMapAuthoritative = $config->get('classmap-authoritative');
|
||||
|
||||
$vendorPathCode = $filesystem->findShortestPathCode(realpath($targetDir), $vendorPath, true);
|
||||
$vendorPathToTargetDirCode = $filesystem->findShortestPathCode($vendorPath, realpath($targetDir), true);
|
||||
|
||||
$appBaseDirCode = $filesystem->findShortestPathCode($vendorPath, $basePath, true);
|
||||
$appBaseDirCode = str_replace('__DIR__', '$vendorDir', $appBaseDirCode);
|
||||
|
||||
// add 5.2 compat
|
||||
$vendorPathCode = str_replace('__DIR__', 'dirname(__FILE__)', $vendorPathCode);
|
||||
$vendorPathToTargetDirCode = str_replace('__DIR__', 'dirname(__FILE__)', $vendorPathToTargetDirCode);
|
||||
|
||||
$packageMap = $this->buildPackageMap($installationManager, $mainPackage, $localRepo->getCanonicalPackages());
|
||||
$autoloads = $this->parseAutoloads($packageMap, $mainPackage);
|
||||
|
||||
// add custom psr-0 autoloading if the root package has a target dir
|
||||
$targetDirLoader = null;
|
||||
$mainAutoload = $mainPackage->getAutoload();
|
||||
if ($mainPackage->getTargetDir() && !empty($mainAutoload['psr-0'])) {
|
||||
$levels = count(explode('/', $filesystem->normalizePath($mainPackage->getTargetDir())));
|
||||
$prefixes = implode(', ', array_map(function ($prefix) {
|
||||
return var_export($prefix, true);
|
||||
}, array_keys($mainAutoload['psr-0'])));
|
||||
|
||||
$baseDirFromTargetDirCode = $filesystem->findShortestPathCode($targetDir, $basePath, true);
|
||||
|
||||
$targetDirLoader = <<<EOF
|
||||
|
||||
public static function autoload(\$class) {
|
||||
\$dir = $baseDirFromTargetDirCode.'/';
|
||||
\$prefixes = array($prefixes);
|
||||
|
||||
foreach (\$prefixes as \$prefix) {
|
||||
if (0 !== strpos(\$class, \$prefix)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
\$path = explode(DIRECTORY_SEPARATOR, self::getClassPath(\$class));
|
||||
\$path = \$dir.implode('/', array_slice(\$path, $levels));
|
||||
|
||||
if (!\$path = self::resolveIncludePath(\$path)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
require \$path;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
EOF;
|
||||
}
|
||||
|
||||
$filesCode = "";
|
||||
$autoloads['files'] = new \RecursiveIteratorIterator(new \RecursiveArrayIterator($autoloads['files']));
|
||||
foreach ($autoloads['files'] as $functionFile) {
|
||||
// don't include file if it is using PHP 5.3+ syntax
|
||||
// https://bitbucket.org/xrstf/composer-php52/issue/4
|
||||
if ($this->isPHP53($functionFile)) {
|
||||
$filesCode .= '// require '.$this->getPathCode($filesystem, $basePath, $vendorPath, $functionFile)."; // disabled because of PHP 5.3 syntax\n";
|
||||
}
|
||||
else {
|
||||
$filesCode .= ' require '.$this->getPathCode($filesystem, $basePath, $vendorPath, $functionFile).";\n";
|
||||
}
|
||||
}
|
||||
|
||||
if (!$suffix) {
|
||||
$suffix = md5(uniqid('', true));
|
||||
}
|
||||
|
||||
$includePathFile = $this->getIncludePathsFile($packageMap, $filesystem, $basePath, $vendorPath, $vendorPathCode, $appBaseDirCode);
|
||||
|
||||
file_put_contents($vendorPath.'/autoload_52.php', $this->getAutoloadFile($vendorPathToTargetDirCode, $suffix));
|
||||
file_put_contents($targetDir.'/autoload_real_52.php', $this->getAutoloadRealFile(true, (bool) $includePathFile, $targetDirLoader, $filesCode, $vendorPathCode, $appBaseDirCode, $suffix, $useGlobalIncludePath, $prependAutoloader));
|
||||
|
||||
// use stream_copy_to_stream instead of copy
|
||||
// to work around https://bugs.php.net/bug.php?id=64634
|
||||
$sourceLoader = fopen(__DIR__.'/ClassLoader.php', 'r');
|
||||
$targetLoader = fopen($targetDir.'/ClassLoader52.php', 'w+');
|
||||
stream_copy_to_stream($sourceLoader, $targetLoader);
|
||||
fclose($sourceLoader);
|
||||
fclose($targetLoader);
|
||||
unset($sourceLoader, $targetLoader);
|
||||
}
|
||||
|
||||
protected function isPHP53($file) {
|
||||
$tokens = token_get_all(file_get_contents($file));
|
||||
$php53 = array(T_DIR, T_GOTO, T_NAMESPACE, T_NS_C, T_NS_SEPARATOR, T_USE);
|
||||
|
||||
// PHP 5.4+
|
||||
if (defined('T_TRAIT')) {
|
||||
$php53[] = T_TRAIT;
|
||||
$php53[] = T_TRAIT_C;
|
||||
$php53[] = T_TRAIT_C;
|
||||
}
|
||||
|
||||
// PHP 5.5+
|
||||
if (defined('T_FINALLY')) {
|
||||
$php53[] = T_FINALLY;
|
||||
$php53[] = T_YIELD;
|
||||
}
|
||||
|
||||
foreach ($tokens as $token) {
|
||||
if (is_array($token) && in_array($token[0], $php53)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
protected function getIncludePathsFile(array $packageMap, Filesystem $filesystem, $basePath, $vendorPath, $vendorPathCode, $appBaseDirCode) {
|
||||
$includePaths = array();
|
||||
|
||||
foreach ($packageMap as $item) {
|
||||
list($package, $installPath) = $item;
|
||||
|
||||
if (null !== $package->getTargetDir() && strlen($package->getTargetDir()) > 0) {
|
||||
$installPath = substr($installPath, 0, -strlen('/'.$package->getTargetDir()));
|
||||
}
|
||||
|
||||
foreach ($package->getIncludePaths() as $includePath) {
|
||||
$includePath = trim($includePath, '/');
|
||||
$includePaths[] = empty($installPath) ? $includePath : $installPath.'/'.$includePath;
|
||||
}
|
||||
}
|
||||
|
||||
if (!$includePaths) {
|
||||
return;
|
||||
}
|
||||
|
||||
$includePathsFile = <<<EOF
|
||||
<?php
|
||||
|
||||
// include_paths_52.php generated by xrstf/composer-php52
|
||||
|
||||
\$vendorDir = $vendorPathCode;
|
||||
\$baseDir = $appBaseDirCode;
|
||||
|
||||
return array(
|
||||
|
||||
EOF;
|
||||
|
||||
foreach ($includePaths as $path) {
|
||||
$includePathsFile .= "\t" . $this->getPathCode($filesystem, $basePath, $vendorPath, $path) . ",\n";
|
||||
}
|
||||
|
||||
return $includePathsFile . ");\n";
|
||||
}
|
||||
|
||||
protected function getAutoloadFile($vendorPathToTargetDirCode, $suffix) {
|
||||
return <<<AUTOLOAD
|
||||
<?php
|
||||
|
||||
// autoload_52.php generated by xrstf/composer-php52
|
||||
|
||||
require_once $vendorPathToTargetDirCode.'/autoload_real_52.php';
|
||||
|
||||
return ComposerAutoloaderInit$suffix::getLoader();
|
||||
|
||||
AUTOLOAD;
|
||||
}
|
||||
|
||||
protected function getAutoloadRealFile($useClassMap, $useIncludePath, $targetDirLoader, $filesCode, $vendorPathCode, $appBaseDirCode, $suffix, $useGlobalIncludePath, $prependAutoloader, $staticPhpVersion = 70000) {
|
||||
// TODO the class ComposerAutoloaderInit should be revert to a closure
|
||||
// when APC has been fixed:
|
||||
// - https://github.com/composer/composer/issues/959
|
||||
// - https://bugs.php.net/bug.php?id=52144
|
||||
// - https://bugs.php.net/bug.php?id=61576
|
||||
// - https://bugs.php.net/bug.php?id=59298
|
||||
|
||||
if ($filesCode) {
|
||||
$filesCode = "\n\n".rtrim($filesCode);
|
||||
}
|
||||
|
||||
$file = <<<HEADER
|
||||
<?php
|
||||
|
||||
// autoload_real_52.php generated by xrstf/composer-php52
|
||||
|
||||
class ComposerAutoloaderInit$suffix {
|
||||
private static \$loader;
|
||||
|
||||
public static function loadClassLoader(\$class) {
|
||||
if ('xrstf_Composer52_ClassLoader' === \$class) {
|
||||
require dirname(__FILE__).'/ClassLoader52.php';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return xrstf_Composer52_ClassLoader
|
||||
*/
|
||||
public static function getLoader() {
|
||||
if (null !== self::\$loader) {
|
||||
return self::\$loader;
|
||||
}
|
||||
|
||||
spl_autoload_register(array('ComposerAutoloaderInit$suffix', 'loadClassLoader'), true /*, true */);
|
||||
self::\$loader = \$loader = new xrstf_Composer52_ClassLoader();
|
||||
spl_autoload_unregister(array('ComposerAutoloaderInit$suffix', 'loadClassLoader'));
|
||||
|
||||
\$vendorDir = $vendorPathCode;
|
||||
\$baseDir = $appBaseDirCode;
|
||||
\$dir = dirname(__FILE__);
|
||||
|
||||
|
||||
HEADER;
|
||||
|
||||
if ($useIncludePath) {
|
||||
$file .= <<<'INCLUDE_PATH'
|
||||
$includePaths = require $dir.'/include_paths.php';
|
||||
array_push($includePaths, get_include_path());
|
||||
set_include_path(implode(PATH_SEPARATOR, $includePaths));
|
||||
|
||||
|
||||
INCLUDE_PATH;
|
||||
}
|
||||
|
||||
$file .= <<<'PSR0'
|
||||
$map = require $dir.'/autoload_namespaces.php';
|
||||
foreach ($map as $namespace => $path) {
|
||||
$loader->add($namespace, $path);
|
||||
}
|
||||
|
||||
|
||||
PSR0;
|
||||
|
||||
if ($useClassMap) {
|
||||
$file .= <<<'CLASSMAP'
|
||||
$classMap = require $dir.'/autoload_classmap.php';
|
||||
if ($classMap) {
|
||||
$loader->addClassMap($classMap);
|
||||
}
|
||||
|
||||
|
||||
CLASSMAP;
|
||||
}
|
||||
|
||||
if ($this->classMapAuthoritative) {
|
||||
$file .= <<<'CLASSMAPAUTHORITATIVE'
|
||||
$loader->setClassMapAuthoritative(true);
|
||||
|
||||
CLASSMAPAUTHORITATIVE;
|
||||
}
|
||||
|
||||
if ($useGlobalIncludePath) {
|
||||
$file .= <<<'INCLUDEPATH'
|
||||
$loader->setUseIncludePath(true);
|
||||
|
||||
|
||||
INCLUDEPATH;
|
||||
}
|
||||
|
||||
if ($targetDirLoader) {
|
||||
$file .= <<<REGISTER_AUTOLOAD
|
||||
spl_autoload_register(array('ComposerAutoloaderInit$suffix', 'autoload'), true);
|
||||
|
||||
|
||||
REGISTER_AUTOLOAD;
|
||||
|
||||
}
|
||||
|
||||
$file .= <<<METHOD_FOOTER
|
||||
\$loader->register($prependAutoloader);{$filesCode}
|
||||
|
||||
return \$loader;
|
||||
}
|
||||
|
||||
METHOD_FOOTER;
|
||||
|
||||
$file .= $targetDirLoader;
|
||||
|
||||
return $file . <<<FOOTER
|
||||
}
|
||||
|
||||
FOOTER;
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,271 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright (c) 2013, Christoph Mewes, http://www.xrstf.de
|
||||
*
|
||||
* This file is released under the terms of the MIT license. You can find the
|
||||
* complete text in the attached LICENSE file or online at:
|
||||
*
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
*
|
||||
* --------------------------------------------------------------------------
|
||||
*
|
||||
* 99% of this is copied as-is from the original Composer source code and is
|
||||
* released under MIT license as well. Copyright goes to:
|
||||
*
|
||||
* - Fabien Potencier <fabien@symfony.com>
|
||||
* - Jordi Boggiano <j.boggiano@seld.be>
|
||||
*/
|
||||
|
||||
class xrstf_Composer52_ClassLoader {
|
||||
private $prefixes = array();
|
||||
private $fallbackDirs = array();
|
||||
private $useIncludePath = false;
|
||||
private $classMap = array();
|
||||
private $classMapAuthoratative = false;
|
||||
private $allowUnderscore = false;
|
||||
|
||||
/**
|
||||
* @param boolean $flag true to allow class names with a leading underscore, false to disable
|
||||
*/
|
||||
public function setAllowUnderscore($flag) {
|
||||
$this->allowUnderscore = (boolean) $flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function getPrefixes() {
|
||||
return $this->prefixes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Turns off searching the prefix and fallback directories for classes
|
||||
* that have not been registered with the class map.
|
||||
*
|
||||
* @param bool $classMapAuthoratative
|
||||
*/
|
||||
public function setClassMapAuthoritative($classMapAuthoratative) {
|
||||
$this->classMapAuthoratative = $classMapAuthoratative;
|
||||
}
|
||||
|
||||
/**
|
||||
* Should class lookup fail if not found in the current class map?
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function getClassMapAuthoratative() {
|
||||
return $this->classMapAuthoratative;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function getFallbackDirs() {
|
||||
return $this->fallbackDirs;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
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 classes, merging with any others previously set.
|
||||
*
|
||||
* @param string $prefix the classes prefix
|
||||
* @param array|string $paths the location(s) of the classes
|
||||
* @param bool $prepend prepend the location(s)
|
||||
*/
|
||||
public function add($prefix, $paths, $prepend = false) {
|
||||
if (!$prefix) {
|
||||
if ($prepend) {
|
||||
$this->fallbackDirs = array_merge(
|
||||
(array) $paths,
|
||||
$this->fallbackDirs
|
||||
);
|
||||
}
|
||||
else {
|
||||
$this->fallbackDirs = array_merge(
|
||||
$this->fallbackDirs,
|
||||
(array) $paths
|
||||
);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (!isset($this->prefixes[$prefix])) {
|
||||
$this->prefixes[$prefix] = (array) $paths;
|
||||
return;
|
||||
}
|
||||
|
||||
if ($prepend) {
|
||||
$this->prefixes[$prefix] = array_merge(
|
||||
(array) $paths,
|
||||
$this->prefixes[$prefix]
|
||||
);
|
||||
}
|
||||
else {
|
||||
$this->prefixes[$prefix] = array_merge(
|
||||
$this->prefixes[$prefix],
|
||||
(array) $paths
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers a set of classes, replacing any others previously set.
|
||||
*
|
||||
* @param string $prefix the classes prefix
|
||||
* @param array|string $paths the location(s) of the classes
|
||||
*/
|
||||
public function set($prefix, $paths) {
|
||||
if (!$prefix) {
|
||||
$this->fallbackDirs = (array) $paths;
|
||||
return;
|
||||
}
|
||||
|
||||
$this->prefixes[$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;
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers this instance as an autoloader.
|
||||
*/
|
||||
public function register() {
|
||||
spl_autoload_register(array($this, 'loadClass'), true);
|
||||
}
|
||||
|
||||
/**
|
||||
* 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
|
||||
*/
|
||||
public function loadClass($class) {
|
||||
if ($file = $this->findFile($class)) {
|
||||
include $file;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Finds the path to the file where the class is defined.
|
||||
*
|
||||
* @param string $class the name of the class
|
||||
* @return string|null the path, if found
|
||||
*/
|
||||
public function findFile($class) {
|
||||
if ('\\' === $class[0]) {
|
||||
$class = substr($class, 1);
|
||||
}
|
||||
|
||||
if (isset($this->classMap[$class])) {
|
||||
return $this->classMap[$class];
|
||||
}
|
||||
elseif ($this->classMapAuthoratative) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$classPath = $this->getClassPath($class);
|
||||
|
||||
foreach ($this->prefixes as $prefix => $dirs) {
|
||||
if (0 === strpos($class, $prefix)) {
|
||||
foreach ($dirs as $dir) {
|
||||
if (file_exists($dir.DIRECTORY_SEPARATOR.$classPath)) {
|
||||
return $dir.DIRECTORY_SEPARATOR.$classPath;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($this->fallbackDirs as $dir) {
|
||||
if (file_exists($dir.DIRECTORY_SEPARATOR.$classPath)) {
|
||||
return $dir.DIRECTORY_SEPARATOR.$classPath;
|
||||
}
|
||||
}
|
||||
|
||||
if ($this->useIncludePath && $file = self::resolveIncludePath($classPath)) {
|
||||
return $file;
|
||||
}
|
||||
|
||||
return $this->classMap[$class] = false;
|
||||
}
|
||||
|
||||
private function getClassPath($class) {
|
||||
if (false !== $pos = strrpos($class, '\\')) {
|
||||
// namespaced class name
|
||||
$classPath = str_replace('\\', DIRECTORY_SEPARATOR, substr($class, 0, $pos)).DIRECTORY_SEPARATOR;
|
||||
$className = substr($class, $pos + 1);
|
||||
}
|
||||
else {
|
||||
// PEAR-like class name
|
||||
$classPath = null;
|
||||
$className = $class;
|
||||
}
|
||||
|
||||
$className = str_replace('_', DIRECTORY_SEPARATOR, $className);
|
||||
|
||||
// restore the prefix
|
||||
if ($this->allowUnderscore && DIRECTORY_SEPARATOR === $className[0]) {
|
||||
$className[0] = '_';
|
||||
}
|
||||
|
||||
$classPath .= $className.'.php';
|
||||
|
||||
return $classPath;
|
||||
}
|
||||
|
||||
public static function resolveIncludePath($classPath) {
|
||||
$paths = explode(PATH_SEPARATOR, get_include_path());
|
||||
|
||||
foreach ($paths as $path) {
|
||||
$path = rtrim($path, '/\\');
|
||||
|
||||
if ($file = file_exists($path.DIRECTORY_SEPARATOR.$file)) {
|
||||
return $file;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
<?php
|
||||
/*
|
||||
* Copyright (c) 2013, Christoph Mewes, http://www.xrstf.de
|
||||
*
|
||||
* This file is released under the terms of the MIT license. You can find the
|
||||
* complete text in the attached LICENSE file or online at:
|
||||
*
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
*/
|
||||
|
||||
namespace xrstf\Composer52;
|
||||
|
||||
use Composer\Repository\CompositeRepository;
|
||||
use Composer\Script\Event;
|
||||
|
||||
class Generator {
|
||||
public static function onPostInstallCmd(Event $event) {
|
||||
$composer = $event->getComposer();
|
||||
$installationManager = $composer->getInstallationManager();
|
||||
$repoManager = $composer->getRepositoryManager();
|
||||
$localRepo = $repoManager->getLocalRepository();
|
||||
$package = $composer->getPackage();
|
||||
$config = $composer->getConfig();
|
||||
|
||||
// We can't gain access to the Command's input object, so we have to look
|
||||
// for -o / --optimize-autoloader ourselves. Sadly, neither getopt() works
|
||||
// (always returns an empty array), nor does Symfony's Console Input, as
|
||||
// it expects a full definition of the current command line and we can't
|
||||
// provide that.
|
||||
|
||||
$args = $_SERVER['argv'];
|
||||
$optimize = in_array('-o', $args) || in_array('--optimize-autoloader', $args) || in_array('--optimize', $args);
|
||||
|
||||
$suffix = $config->get('autoloader-suffix');
|
||||
|
||||
$generator = new AutoloadGenerator();
|
||||
$generator->dump($config, $localRepo, $package, $installationManager, 'composer', $optimize, $suffix);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user