diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..924c715 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,3 @@ +[*.json] +indent_style = space +indent_size = 2 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..242bd95 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.idea +logs/ diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 9dea212..0000000 --- a/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "BMLT-Satellite-Base-Class"] - path = BMLT-Satellite-Base-Class - url = git@bitbucket.org:bmlt/bmlt-satellite-base-class.git diff --git a/BMLT-Satellite-Base-Class b/BMLT-Satellite-Base-Class deleted file mode 160000 index e78b9f8..0000000 --- a/BMLT-Satellite-Base-Class +++ /dev/null @@ -1 +0,0 @@ -Subproject commit e78b9f8b4fc87b221f3983c395b8220cdeb0dbe7 diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..06466ef --- /dev/null +++ b/Dockerfile @@ -0,0 +1,26 @@ +FROM wordpress:4.9.8-php7.2-apache + +RUN apt-get update && \ + apt-get install -y --no-install-recommends ssl-cert && \ + rm -r /var/lib/apt/lists/* && \ + a2enmod ssl rewrite expires && \ + a2ensite default-ssl + +ENV PHP_INI_PATH "/usr/local/etc/php/php.ini" + +RUN pecl install xdebug-2.6.1 \ + && docker-php-ext-enable xdebug \ + && echo "zend_extension=$(find /usr/local/lib/php/extensions/ -name xdebug.so)" >> ${PHP_INI_PATH} \ + && echo "xdebug.remote_port=9000" >> ${PHP_INI_PATH} \ + && echo "xdebug.remote_enable=1" >> ${PHP_INI_PATH} \ + && echo "xdebug.remote_connect_back=0" >> ${PHP_INI_PATH} \ + && echo "xdebug.remote_host=docker.for.mac.localhost" >> ${PHP_INI_PATH} \ + && echo "xdebug.idekey=IDEA_DEBUG" >> ${PHP_INI_PATH} \ + && echo "xdebug.remote_autostart=1" >> ${PHP_INI_PATH} \ + && echo "xdebug.remote_log=/tmp/xdebug.log" >> ${PHP_INI_PATH} \ + && echo "log_errors = On" >> ${PHP_INI_PATH} \ + && echo "error_reporting = E_ALL" >> ${PHP_INI_PATH} \ + && echo "error_log=/var/www/php_error.log" >> ${PHP_INI_PATH} + +EXPOSE 80 +EXPOSE 443 diff --git a/assets/banner-772x250.png b/assets/banner-772x250.png new file mode 100644 index 0000000..6dba182 Binary files /dev/null and b/assets/banner-772x250.png differ diff --git a/assets/icon-256x256.png b/assets/icon-256x256.png new file mode 100644 index 0000000..5da6c15 Binary files /dev/null and b/assets/icon-256x256.png differ diff --git a/bmlt-wordpress-satellite-plugin.php b/bmlt-wordpress-satellite-plugin.php index b93e037..b246036 100644 --- a/bmlt-wordpress-satellite-plugin.php +++ b/bmlt-wordpress-satellite-plugin.php @@ -6,7 +6,7 @@ * * * These need to be without the asterisks, as WP parses them. * Plugin Name: BMLT WordPress Satellite -Plugin URI: http://bmlt.magshare.net +Plugin URI: https://bmlt.app Author: MAGSHARE Description: This is a WordPress plugin satellite of the Basic Meeting List Toolbox. Version: 3.9.4 @@ -49,7 +49,8 @@ } // Include the satellite driver class. -require_once ( dirname ( __FILE__ ).'/BMLT-Satellite-Base-Class/bmlt-cms-satellite-plugin.php' ); +define('ROOTPATH', __DIR__); +require_once ( ROOTPATH .'/vendor/bmlt/bmlt-satellite-base-class/bmlt-cms-satellite-plugin.php' ); /****************************************************************************************//** * \class BMLTWPPlugin * @@ -392,7 +393,7 @@ function standard_head ( $from_admin = false ///< True, if this was called fr $head_content .= self::stripFile ( 'table_styles.css' ) . "\n"; $head_content .= self::stripFile ( 'quicksearch.css' ) . "\n"; - $dirname = dirname ( __FILE__ ) . '/BMLT-Satellite-Base-Class/themes'; + $dirname = dirname ( __FILE__ ) . '/vendor/bmlt/bmlt-satellite-base-class/themes'; $dir = new DirectoryIterator ( $dirname ); foreach ( $dir as $fileinfo ) @@ -582,11 +583,11 @@ protected function get_plugin_path() { if ( plugins_url() ) { - $url = plugins_url()."/bmlt-wordpress-satellite-plugin/BMLT-Satellite-Base-Class/"; + $url = plugins_url()."/bmlt-wordpress-satellite-plugin/vendor/bmlt/bmlt-satellite-base-class/"; } elseif ( defined ('WP_PLUGIN_URL' ) ) { - $url = WP_PLUGIN_URL."/bmlt-wordpress-satellite-plugin/BMLT-Satellite-Base-Class/"; + $url = WP_PLUGIN_URL."/bmlt-wordpress-satellite-plugin/vendor/bmlt/bmlt-satellite-base-class/"; } else { @@ -595,7 +596,7 @@ protected function get_plugin_path() } elseif ( !function_exists ( 'plugins_url' ) && defined ('WP_PLUGIN_URL' ) ) { - $url = WP_PLUGIN_URL."/bmlt-wordpress-satellite-plugin/BMLT-Satellite-Base-Class/"; + $url = WP_PLUGIN_URL."/bmlt-wordpress-satellite-plugin/vendor/bmlt/bmlt-satellite-base-class/"; } else { diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..5b7a391 --- /dev/null +++ b/composer.json @@ -0,0 +1,22 @@ +{ + "name": "bmlt/bmlt-wordpress-satellite-plugin", + "description": "This is a WordPress plugin of a BMLT satellite client.", + "type": "project", + "license": "GPL", + "authors": [{ + "name": "littlegreenviper" + },{ + "name": "radius314" + }], + "repositories": [{ + "url": "https://github.com/bmlt-enabled/bmlt-satellite-base-class", + "type": "git" + }, { + "url": "https://github.com/bmlt-enabled/bmlt-satellite-driver", + "type": "git" + }], + "require": { + "bmlt/bmlt-satellite-base-class": "dev-master", + "bmlt/bmlt-satellite-driver": "dev-master" + } +} diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..f4e9628 --- /dev/null +++ b/composer.lock @@ -0,0 +1,70 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "57cf134f0dbba101aabf9a701fbc6d03", + "packages": [ + { + "name": "bmlt/bmlt-satellite-base-class", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/bmlt-enabled/bmlt-satellite-base-class", + "reference": "0132ef3b0036eb8c99bfca41f04d8af24090bd3f" + }, + "require": { + "bmlt/bmlt-satellite-driver": "dev-master" + }, + "type": "library", + "license": [ + "GPL" + ], + "authors": [ + { + "name": "littlegreenviper" + }, + { + "name": "radius314" + } + ], + "description": "This is a generic CMS plugin class for a BMLT satellite client.", + "time": "2018-11-15T03:41:47+00:00" + }, + { + "name": "bmlt/bmlt-satellite-driver", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/bmlt-enabled/bmlt-satellite-driver", + "reference": "1fcad76015c0d620cf2a38e9fb77822e15c9fa3c" + }, + "type": "library", + "license": [ + "GPL" + ], + "authors": [ + { + "name": "littlegreenviper" + }, + { + "name": "radius314" + } + ], + "description": "Provides low-level communication to the BMLT Root Server.", + "time": "2018-11-14T17:09:17+00:00" + } + ], + "packages-dev": [], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": { + "bmlt/bmlt-satellite-base-class": 20, + "bmlt/bmlt-satellite-driver": 20 + }, + "prefer-stable": false, + "prefer-lowest": false, + "platform": [], + "platform-dev": [] +} diff --git a/contribute.md b/contribute.md new file mode 100644 index 0000000..f73d6e1 --- /dev/null +++ b/contribute.md @@ -0,0 +1,19 @@ +To contribute to bmlt-wp, fork, make your changes and send a pull request to the master branch. + +Take a look at the issues for bugs that you might be able to help fix. + +Once your pull request is merged it will be released in the next version. + +We are using https://github.com/GaryJones/wordpress-plugin-svn-deploy to deploy the plugin to SVN. + +To get things going in your local environment. + +`docker-compose up` + +Get your wordpress installation going. Remember your admin password. Once it's up, login to admin and activate the "BMLT Satellite PLugin" plugin. + +Now you can make edits to the bmlt-wordpress-satellite-plugin.php file and it will instantly take effect. + +In order to pull in the necessary updated dependencies run `composer update` + +Please make note of the .editorconfig file and adhere to it as this will minimise the amount of formatting errors. If you are using PHPStorm you will need to install the EditorConfig plugin. diff --git a/doc/Doxyfile b/doc/Doxyfile index 6313bf3..3e37fa4 100644 --- a/doc/Doxyfile +++ b/doc/Doxyfile @@ -824,7 +824,7 @@ RECURSIVE = YES # Note that relative paths are relative to the directory from which doxygen is # run. -EXCLUDE = ../BMLT-Satellite-Base-Class +EXCLUDE = ../vendor/bmlt/bmlt-satellite-base-class # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or # directories that are symbolic links (a Unix file system feature) are excluded diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..a2fb97c --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,23 @@ +version: '3.1' + +services: + wordpress: + build: . + restart: always + ports: + - 8080:80 + - 7443:443 + environment: + WORDPRESS_DB_PASSWORD: example + VIRTUAL_HOST: localhost + volumes: + - ../:/var/www/html/wp-content/plugins + - ./logs/:/var/log/apache2 + + mysql: + image: mysql:5.7 + restart: always + ports: + - 3306:3306 + environment: + MYSQL_ROOT_PASSWORD: example diff --git a/readme.txt b/readme.txt index 92833d1..d24267c 100644 --- a/readme.txt +++ b/readme.txt @@ -1,12 +1,12 @@ === BMLT WordPress Plugin === -Contributors: magblogapi -Plugin URI: http://bmlt.magshare.net +Contributors: magblogapi, radius314 +Plugin URI: https://bmlt.app Tags: na, meeting list, meeting finder, maps, recovery, addiction, webservant Author: MAGSHARE -Requires at least: 2.6 -Tested up to: 4.9.4 -Stable tag: 3.9.3 +Requires at least: 4.0 +Tested up to: 5.0.0 +Stable tag: 3.9.4 This is a "satellite" plugin for the Basic Meeting List Toolbox (BMLT). @@ -20,11 +20,11 @@ It is very easy to install and use. It has an administration panel that lets you This is a standard WordPress plugin. Either use the in-dashboard installer, or move the main directory into the wp-content/plugins/ directory and activate it. -[More information can be found here.](http://bmlt.magshare.net/satellites/cms-plugins/wordpress/) +[More information can be found here.](https://bmlt.app/satellites/cms-plugins/wordpress/) -[Administration instructions can be found here.](http://bmlt.magshare.net/satellites/cms-plugins/cms-plugin-administration/) +[Administration instructions can be found here.](https://bmlt.app/satellites/cms-plugins/cms-plugin-administration/) -[Usage instructions for the shortcodes can be found here.](http://bmlt.magshare.net/satellites/cms-plugins/shortcodes/) +[Usage instructions for the shortcodes can be found here.](https://bmlt.app/satellites/cms-plugins/shortcodes/) == Changelist == @@ -32,6 +32,8 @@ This is a standard WordPress plugin. Either use the in-dashboard installer, or m - Moved the home Git repo to GitHub. - Added the BlackWhiteAndRed theme. +- Migrated to use composer instead of submodules. +- Compatability tested for WP 5.0.0. ***Version 3.9.3* ** *- July 31, 2018* @@ -162,7 +164,7 @@ This is a standard WordPress plugin. Either use the in-dashboard installer, or m - Updated the readme file to reflect the current plugin state. - Removed out-of-date screengrabs. -- Fixed a bug, in which the proper throbber was not being displayed where multiple themes are on the same page for the [bmlt_table](http://bmlt.magshare.net/satellites/the-fast-table-display/) shortcode. +- Fixed a bug, in which the proper throbber was not being displayed where multiple themes are on the same page for the [bmlt_table](https://bmlt.app/satellites/the-fast-table-display/) shortcode. - The standard [[bmlt]] search single meeting results now have a grayed out background, and clicking anywhere outside the details will dismiss the dialog. ***Version 3.3.3* ** *- April 9, 2016* diff --git a/vendor/autoload.php b/vendor/autoload.php new file mode 100644 index 0000000..99e4641 --- /dev/null +++ b/vendor/autoload.php @@ -0,0 +1,7 @@ + + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Autoload; + +/** + * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. + * + * $loader = new \Composer\Autoload\ClassLoader(); + * + * // register classes with namespaces + * $loader->add('Symfony\Component', __DIR__.'/component'); + * $loader->add('Symfony', __DIR__.'/framework'); + * + * // activate the autoloader + * $loader->register(); + * + * // to enable searching the include path (eg. for PEAR packages) + * $loader->setUseIncludePath(true); + * + * In this example, if you try to use a class in the Symfony\Component + * namespace or one of its children (Symfony\Component\Console for instance), + * the autoloader will first look for the class under the component/ + * directory, and it will then fallback to the framework/ directory if not + * found before giving up. + * + * This class is loosely based on the Symfony UniversalClassLoader. + * + * @author Fabien Potencier + * @author Jordi Boggiano + * @see http://www.php-fig.org/psr/psr-0/ + * @see http://www.php-fig.org/psr/psr-4/ + */ +class ClassLoader +{ + // PSR-4 + private $prefixLengthsPsr4 = array(); + private $prefixDirsPsr4 = array(); + private $fallbackDirsPsr4 = array(); + + // PSR-0 + private $prefixesPsr0 = array(); + private $fallbackDirsPsr0 = array(); + + private $useIncludePath = false; + private $classMap = array(); + private $classMapAuthoritative = false; + private $missingClasses = array(); + private $apcuPrefix; + + public function getPrefixes() + { + if (!empty($this->prefixesPsr0)) { + return call_user_func_array('array_merge', $this->prefixesPsr0); + } + + return array(); + } + + public function getPrefixesPsr4() + { + return $this->prefixDirsPsr4; + } + + public function getFallbackDirs() + { + return $this->fallbackDirsPsr0; + } + + public function getFallbackDirsPsr4() + { + return $this->fallbackDirsPsr4; + } + + public function getClassMap() + { + return $this->classMap; + } + + /** + * @param array $classMap Class to filename map + */ + public function addClassMap(array $classMap) + { + if ($this->classMap) { + $this->classMap = array_merge($this->classMap, $classMap); + } else { + $this->classMap = $classMap; + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, either + * appending or prepending to the ones previously set for this prefix. + * + * @param string $prefix The prefix + * @param array|string $paths The PSR-0 root directories + * @param bool $prepend Whether to prepend the directories + */ + public function add($prefix, $paths, $prepend = false) + { + if (!$prefix) { + if ($prepend) { + $this->fallbackDirsPsr0 = array_merge( + (array) $paths, + $this->fallbackDirsPsr0 + ); + } else { + $this->fallbackDirsPsr0 = array_merge( + $this->fallbackDirsPsr0, + (array) $paths + ); + } + + return; + } + + $first = $prefix[0]; + if (!isset($this->prefixesPsr0[$first][$prefix])) { + $this->prefixesPsr0[$first][$prefix] = (array) $paths; + + return; + } + if ($prepend) { + $this->prefixesPsr0[$first][$prefix] = array_merge( + (array) $paths, + $this->prefixesPsr0[$first][$prefix] + ); + } else { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $this->prefixesPsr0[$first][$prefix], + (array) $paths + ); + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, either + * appending or prepending to the ones previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param array|string $paths The PSR-4 base directories + * @param bool $prepend Whether to prepend the directories + * + * @throws \InvalidArgumentException + */ + public function addPsr4($prefix, $paths, $prepend = false) + { + if (!$prefix) { + // Register directories for the root namespace. + if ($prepend) { + $this->fallbackDirsPsr4 = array_merge( + (array) $paths, + $this->fallbackDirsPsr4 + ); + } else { + $this->fallbackDirsPsr4 = array_merge( + $this->fallbackDirsPsr4, + (array) $paths + ); + } + } elseif (!isset($this->prefixDirsPsr4[$prefix])) { + // Register directories for a new namespace. + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = (array) $paths; + } elseif ($prepend) { + // Prepend directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + (array) $paths, + $this->prefixDirsPsr4[$prefix] + ); + } else { + // Append directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $this->prefixDirsPsr4[$prefix], + (array) $paths + ); + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, + * replacing any others previously set for this prefix. + * + * @param string $prefix The prefix + * @param array|string $paths The PSR-0 base directories + */ + public function set($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr0 = (array) $paths; + } else { + $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, + * replacing any others previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param array|string $paths The PSR-4 base directories + * + * @throws \InvalidArgumentException + */ + public function setPsr4($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr4 = (array) $paths; + } else { + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = (array) $paths; + } + } + + /** + * Turns on searching the include path for class files. + * + * @param bool $useIncludePath + */ + public function setUseIncludePath($useIncludePath) + { + $this->useIncludePath = $useIncludePath; + } + + /** + * Can be used to check if the autoloader uses the include path to check + * for classes. + * + * @return bool + */ + public function getUseIncludePath() + { + return $this->useIncludePath; + } + + /** + * Turns off searching the prefix and fallback directories for classes + * that have not been registered with the class map. + * + * @param bool $classMapAuthoritative + */ + public function setClassMapAuthoritative($classMapAuthoritative) + { + $this->classMapAuthoritative = $classMapAuthoritative; + } + + /** + * Should class lookup fail if not found in the current class map? + * + * @return bool + */ + public function isClassMapAuthoritative() + { + return $this->classMapAuthoritative; + } + + /** + * APCu prefix to use to cache found/not-found classes, if the extension is enabled. + * + * @param string|null $apcuPrefix + */ + public function setApcuPrefix($apcuPrefix) + { + $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null; + } + + /** + * The APCu prefix in use, or null if APCu caching is not enabled. + * + * @return string|null + */ + public function getApcuPrefix() + { + return $this->apcuPrefix; + } + + /** + * Registers this instance as an autoloader. + * + * @param bool $prepend Whether to prepend the autoloader or not + */ + public function register($prepend = false) + { + spl_autoload_register(array($this, 'loadClass'), true, $prepend); + } + + /** + * Unregisters this instance as an autoloader. + */ + public function unregister() + { + spl_autoload_unregister(array($this, 'loadClass')); + } + + /** + * Loads the given class or interface. + * + * @param string $class The name of the class + * @return bool|null True if loaded, null otherwise + */ + public function loadClass($class) + { + if ($file = $this->findFile($class)) { + includeFile($file); + + return true; + } + } + + /** + * Finds the path to the file where the class is defined. + * + * @param string $class The name of the class + * + * @return string|false The path if found, false otherwise + */ + public function findFile($class) + { + // class map lookup + if (isset($this->classMap[$class])) { + return $this->classMap[$class]; + } + if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { + return false; + } + if (null !== $this->apcuPrefix) { + $file = apcu_fetch($this->apcuPrefix.$class, $hit); + if ($hit) { + return $file; + } + } + + $file = $this->findFileWithExtension($class, '.php'); + + // Search for Hack files if we are running on HHVM + if (false === $file && defined('HHVM_VERSION')) { + $file = $this->findFileWithExtension($class, '.hh'); + } + + if (null !== $this->apcuPrefix) { + apcu_add($this->apcuPrefix.$class, $file); + } + + if (false === $file) { + // Remember that this class does not exist. + $this->missingClasses[$class] = true; + } + + return $file; + } + + private function findFileWithExtension($class, $ext) + { + // PSR-4 lookup + $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; + + $first = $class[0]; + if (isset($this->prefixLengthsPsr4[$first])) { + $subPath = $class; + while (false !== $lastPos = strrpos($subPath, '\\')) { + $subPath = substr($subPath, 0, $lastPos); + $search = $subPath.'\\'; + if (isset($this->prefixDirsPsr4[$search])) { + $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1); + foreach ($this->prefixDirsPsr4[$search] as $dir) { + if (file_exists($file = $dir . $pathEnd)) { + return $file; + } + } + } + } + } + + // PSR-4 fallback dirs + foreach ($this->fallbackDirsPsr4 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { + return $file; + } + } + + // PSR-0 lookup + if (false !== $pos = strrpos($class, '\\')) { + // namespaced class name + $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) + . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); + } else { + // PEAR-like class name + $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; + } + + if (isset($this->prefixesPsr0[$first])) { + foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { + if (0 === strpos($class, $prefix)) { + foreach ($dirs as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + } + } + } + + // PSR-0 fallback dirs + foreach ($this->fallbackDirsPsr0 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + + // PSR-0 include paths. + if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { + return $file; + } + + return false; + } +} + +/** + * Scope isolated include. + * + * Prevents access to $this/self from included files. + */ +function includeFile($file) +{ + include $file; +} diff --git a/vendor/composer/LICENSE b/vendor/composer/LICENSE new file mode 100644 index 0000000..f27399a --- /dev/null +++ b/vendor/composer/LICENSE @@ -0,0 +1,21 @@ + +Copyright (c) Nils Adermann, Jordi Boggiano + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php new file mode 100644 index 0000000..7a91153 --- /dev/null +++ b/vendor/composer/autoload_classmap.php @@ -0,0 +1,9 @@ += 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); + if ($useStaticLoader) { + require_once __DIR__ . '/autoload_static.php'; + + call_user_func(\Composer\Autoload\ComposerStaticInitf29c0ae91770645bb3965db80b8febb1::getInitializer($loader)); + } else { + $map = require __DIR__ . '/autoload_namespaces.php'; + foreach ($map as $namespace => $path) { + $loader->set($namespace, $path); + } + + $map = require __DIR__ . '/autoload_psr4.php'; + foreach ($map as $namespace => $path) { + $loader->setPsr4($namespace, $path); + } + + $classMap = require __DIR__ . '/autoload_classmap.php'; + if ($classMap) { + $loader->addClassMap($classMap); + } + } + + $loader->register(true); + + return $loader; + } +} diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php new file mode 100644 index 0000000..29ddf0a --- /dev/null +++ b/vendor/composer/autoload_static.php @@ -0,0 +1,15 @@ +