From d7789609eae857e910812cf62ae55355b836ad58 Mon Sep 17 00:00:00 2001 From: Date: Sun, 9 Jul 2017 04:48:17 -0700 Subject: [PATCH] *yoink* --- .editorconfig | 12 + .gitignore | 1 + .travis.yml | 28 ++ Assets/JsonManifest.php | 41 ++ Assets/ManifestInterface.php | 31 ++ Config.php | 7 + Container.php | 9 + LICENSE.md | 19 + README.md | 7 + Template/Blade.php | 140 ++++++ Template/BladeProvider.php | 77 ++++ Template/FileViewFinder.php | 40 ++ composer.json | 44 ++ composer.lock | 809 +++++++++++++++++++++++++++++++++++ 14 files changed, 1265 insertions(+) create mode 100644 .editorconfig create mode 100644 .gitignore create mode 100644 .travis.yml create mode 100644 Assets/JsonManifest.php create mode 100644 Assets/ManifestInterface.php create mode 100644 Config.php create mode 100644 Container.php create mode 100644 LICENSE.md create mode 100644 README.md create mode 100644 Template/Blade.php create mode 100644 Template/BladeProvider.php create mode 100644 Template/FileViewFinder.php create mode 100644 composer.json create mode 100644 composer.lock diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..6e67130 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,12 @@ +root = true + +[*] +indent_style = space +indent_size = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.php] +indent_size = 4 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..49ce3c1 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/vendor \ No newline at end of file diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..dcb3942 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,28 @@ +language: php +sudo: false +dist: trusty +php: + - 7.1 + - 7.0 + - 5.6 + - nightly + +matrix: + fast_finish: true + allow_failures: + - php: nightly + +cache: + apt: true + directories: + - $HOME/.composer/cache + - vendor + +before_install: + - composer self-update + +install: + - composer install -o --prefer-dist --no-interaction + +script: + - composer test diff --git a/Assets/JsonManifest.php b/Assets/JsonManifest.php new file mode 100644 index 0000000..37e5839 --- /dev/null +++ b/Assets/JsonManifest.php @@ -0,0 +1,41 @@ +manifest = file_exists($manifestPath) ? json_decode(file_get_contents($manifestPath), true) : []; + $this->dist = $distUri; + } + + /** @inheritdoc */ + public function get($asset) + { + return isset($this->manifest[$asset]) ? $this->manifest[$asset] : $asset; + } + + /** @inheritdoc */ + public function getUri($asset) + { + return "{$this->dist}/{$this->get($asset)}"; + } +} diff --git a/Assets/ManifestInterface.php b/Assets/ManifestInterface.php new file mode 100644 index 0000000..a1542ee --- /dev/null +++ b/Assets/ManifestInterface.php @@ -0,0 +1,31 @@ +env = $env; + } + + /** + * Get the compiler + * + * @return \Illuminate\View\Compilers\BladeCompiler + */ + public function compiler() + { + static $engineResolver; + if (!$engineResolver) { + $engineResolver = $this->getContainer()->make('view.engine.resolver'); + } + return $engineResolver->resolve('blade')->getCompiler(); + } + + /** + * @param string $view + * @param array $data + * @param array $mergeData + * @return string + */ + public function render($view, $data = [], $mergeData = []) + { + /** @var \Illuminate\Contracts\Filesystem\Filesystem $filesystem */ + $filesystem = $this->getContainer()['files']; + return $this->{$filesystem->exists($view) ? 'file' : 'make'}($view, $data, $mergeData)->render(); + } + + /** + * @param string $file + * @param array $data + * @param array $mergeData + * @return string + */ + public function compiledPath($file, $data = [], $mergeData = []) + { + $rendered = $this->file($file, $data, $mergeData); + /** @var EngineInterface $engine */ + $engine = $rendered->getEngine(); + + if (!($engine instanceof CompilerEngine)) { + // Using PhpEngine, so just return the file + return $file; + } + + $compiler = $engine->getCompiler(); + $compiledPath = $compiler->getCompiledPath($rendered->getPath()); + if ($compiler->isExpired($compiledPath)) { + $compiler->compile($file); + } + return $compiledPath; + } + + /** + * @param string $file + * @return string + */ + public function normalizeViewPath($file) + { + // Convert `\` to `/` + $view = str_replace('\\', '/', $file); + + // Add namespace to path if necessary + $view = $this->applyNamespaceToPath($view); + + // Remove unnecessary parts of the path + $view = str_replace(array_merge( + $this->getContainer()['config']['view.paths'], + ['.blade.php', '.php', '.css'] + ), '', $view); + + // Remove superfluous and leading slashes + return ltrim(preg_replace('%//+%', '/', $view), '/'); + } + + /** + * Convert path to view namespace + * + * @param string $path + * @return string + */ + public function applyNamespaceToPath($path) + { + /** @var ViewFinderInterface $finder */ + $finder = $this->getContainer()['view.finder']; + if (!method_exists($finder, 'getHints')) { + return $path; + } + $delimiter = $finder::HINT_PATH_DELIMITER; + $hints = $finder->getHints(); + $view = array_reduce(array_keys($hints), function ($view, $namespace) use ($delimiter, $hints) { + return str_replace($hints[$namespace], $namespace.$delimiter, $view); + }, $path); + return preg_replace("%{$delimiter}[\\/]*%", $delimiter, $view); + } + + /** + * Pass any method to the view Factory instance. + * + * @param string $method + * @param array $params + * @return mixed + */ + public function __call($method, $params) + { + return call_user_func_array([$this->env, $method], $params); + } +} diff --git a/Template/BladeProvider.php b/Template/BladeProvider.php new file mode 100644 index 0000000..8762835 --- /dev/null +++ b/Template/BladeProvider.php @@ -0,0 +1,77 @@ +app->bindIf('config', function () use ($config) { + return $config; + }, true); + } + + /** + * Bind required instances for the service provider. + */ + public function register() + { + $this->registerFilesystem(); + $this->registerEvents(); + $this->registerEngineResolver(); + $this->registerViewFinder(); + $this->registerFactory(); + return $this; + } + + /** + * Register Filesystem + */ + public function registerFilesystem() + { + $this->app->bindIf('files', Filesystem::class, true); + return $this; + } + + /** + * Register the events dispatcher + */ + public function registerEvents() + { + $this->app->bindIf('events', Dispatcher::class, true); + return $this; + } + + /** + * Register the view finder implementation. + */ + public function registerViewFinder() + { + $this->app->bindIf('view.finder', function ($app) { + $config = $this->app['config']; + $paths = $config['view.paths']; + $namespaces = $config['view.namespaces']; + $finder = new FileViewFinder($app['files'], $paths); + array_map([$finder, 'addNamespace'], array_keys($namespaces), $namespaces); + return $finder; + }, true); + return $this; + } +} diff --git a/Template/FileViewFinder.php b/Template/FileViewFinder.php new file mode 100644 index 0000000..daadce7 --- /dev/null +++ b/Template/FileViewFinder.php @@ -0,0 +1,40 @@ + $part) { + $templates[] = $templates[$i].self::FALLBACK_PARTS_DELIMITER.$part; + } + rsort($templates); + return $this->getPossibleViewFilesFromTemplates($templates); + } + + /** + * Get an array of possible view files from an array of templates + * + * @param array $templates + * @return array + */ + public function getPossibleViewFilesFromTemplates($templates) + { + return call_user_func_array('array_merge', array_map(function ($template) { + return array_map(function ($extension) use ($template) { + return str_replace('.', '/', $template).'.'.$extension; + }, $this->extensions); + }, $templates)); + } +} diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..7b2ef94 --- /dev/null +++ b/composer.json @@ -0,0 +1,44 @@ +{ + "name": "roots/sage-lib", + "license": "MIT", + "description": "Library files for Sage Starter Theme", + "homepage": "https://roots.io/sage/", + "authors": [ + { + "name": "QWp6t", + "email": "hi@qwp6t.me", + "homepage": "https://github.com/qwp6t" + }, + { + "name": "Ben Word", + "email": "ben@benword.com", + "homepage": "https://github.com/retlehs" + } + ], + "keywords": [ + "wordpress" + ], + "support": { + "issues": "https://github.com/roots/sage-lib/issues", + "forum": "https://discourse.roots.io/" + }, + "autoload": { + "psr-4": { + "Roots\\Sage\\": "" + } + }, + "require": { + "php": ">=5.6.4", + "composer/installers": "~1.0", + "illuminate/view": "~5.4", + "illuminate/config": "~5.4" + }, + "require-dev": { + "squizlabs/php_codesniffer": "^2.8.0" + }, + "scripts": { + "test": [ + "phpcs --ignore=vendor --extensions=php --standard=PSR2 ." + ] + } +} diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..0a5f34d --- /dev/null +++ b/composer.lock @@ -0,0 +1,809 @@ +{ + "_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#composer-lock-the-lock-file", + "This file is @generated automatically" + ], + "content-hash": "42b4f82222972c512285ada093321b44", + "packages": [ + { + "name": "composer/installers", + "version": "v1.3.0", + "source": { + "type": "git", + "url": "https://github.com/composer/installers.git", + "reference": "79ad876c7498c0bbfe7eed065b8651c93bfd6045" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/installers/zipball/79ad876c7498c0bbfe7eed065b8651c93bfd6045", + "reference": "79ad876c7498c0bbfe7eed065b8651c93bfd6045", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0" + }, + "replace": { + "roundcube/plugin-installer": "*", + "shama/baton": "*" + }, + "require-dev": { + "composer/composer": "1.0.*@dev", + "phpunit/phpunit": "4.1.*" + }, + "type": "composer-plugin", + "extra": { + "class": "Composer\\Installers\\Plugin", + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Installers\\": "src/Composer/Installers" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Kyle Robinson Young", + "email": "kyle@dontkry.com", + "homepage": "https://github.com/shama" + } + ], + "description": "A multi-framework Composer library installer", + "homepage": "https://composer.github.io/installers/", + "keywords": [ + "Craft", + "Dolibarr", + "Eliasis", + "Hurad", + "ImageCMS", + "Kanboard", + "MODX Evo", + "Mautic", + "Maya", + "OXID", + "Plentymarkets", + "Porto", + "RadPHP", + "SMF", + "Thelia", + "WolfCMS", + "agl", + "aimeos", + "annotatecms", + "attogram", + "bitrix", + "cakephp", + "chef", + "cockpit", + "codeigniter", + "concrete5", + "croogo", + "dokuwiki", + "drupal", + "elgg", + "expressionengine", + "fuelphp", + "grav", + "installer", + "itop", + "joomla", + "kohana", + "laravel", + "lavalite", + "lithium", + "magento", + "mako", + "mediawiki", + "modulework", + "moodle", + "phpbb", + "piwik", + "ppi", + "puppet", + "reindex", + "roundcube", + "shopware", + "silverstripe", + "sydes", + "symfony", + "typo3", + "wordpress", + "yawik", + "zend", + "zikula" + ], + "time": "2017-04-24T06:37:16+00:00" + }, + { + "name": "doctrine/inflector", + "version": "v1.1.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/inflector.git", + "reference": "90b2128806bfde671b6952ab8bea493942c1fdae" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/90b2128806bfde671b6952ab8bea493942c1fdae", + "reference": "90b2128806bfde671b6952ab8bea493942c1fdae", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "require-dev": { + "phpunit/phpunit": "4.*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-0": { + "Doctrine\\Common\\Inflector\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Common String Manipulations with regard to casing and singular/plural rules.", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "inflection", + "pluralize", + "singularize", + "string" + ], + "time": "2015-11-06T14:35:42+00:00" + }, + { + "name": "illuminate/config", + "version": "v5.4.27", + "source": { + "type": "git", + "url": "https://github.com/illuminate/config.git", + "reference": "8fe700aa596bc623d347e4578041fbda7a44c3d9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/illuminate/config/zipball/8fe700aa596bc623d347e4578041fbda7a44c3d9", + "reference": "8fe700aa596bc623d347e4578041fbda7a44c3d9", + "shasum": "" + }, + "require": { + "illuminate/contracts": "5.4.*", + "illuminate/support": "5.4.*", + "php": ">=5.6.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.4-dev" + } + }, + "autoload": { + "psr-4": { + "Illuminate\\Config\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "The Illuminate Config package.", + "homepage": "https://laravel.com", + "time": "2017-02-04T20:27:32+00:00" + }, + { + "name": "illuminate/container", + "version": "v5.4.27", + "source": { + "type": "git", + "url": "https://github.com/illuminate/container.git", + "reference": "c5b8a02a34a52c307f16922334c355c5eef725a6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/illuminate/container/zipball/c5b8a02a34a52c307f16922334c355c5eef725a6", + "reference": "c5b8a02a34a52c307f16922334c355c5eef725a6", + "shasum": "" + }, + "require": { + "illuminate/contracts": "5.4.*", + "php": ">=5.6.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.4-dev" + } + }, + "autoload": { + "psr-4": { + "Illuminate\\Container\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "The Illuminate Container package.", + "homepage": "https://laravel.com", + "time": "2017-05-24T14:15:53+00:00" + }, + { + "name": "illuminate/contracts", + "version": "v5.4.27", + "source": { + "type": "git", + "url": "https://github.com/illuminate/contracts.git", + "reference": "31f0193eb14aa3ee07841dc254081425616e79f0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/illuminate/contracts/zipball/31f0193eb14aa3ee07841dc254081425616e79f0", + "reference": "31f0193eb14aa3ee07841dc254081425616e79f0", + "shasum": "" + }, + "require": { + "php": ">=5.6.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.4-dev" + } + }, + "autoload": { + "psr-4": { + "Illuminate\\Contracts\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "The Illuminate Contracts package.", + "homepage": "https://laravel.com", + "time": "2017-04-19T20:17:43+00:00" + }, + { + "name": "illuminate/events", + "version": "v5.4.27", + "source": { + "type": "git", + "url": "https://github.com/illuminate/events.git", + "reference": "ebdca3b0305e9fc954afb9e422c4559482cd11e6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/illuminate/events/zipball/ebdca3b0305e9fc954afb9e422c4559482cd11e6", + "reference": "ebdca3b0305e9fc954afb9e422c4559482cd11e6", + "shasum": "" + }, + "require": { + "illuminate/container": "5.4.*", + "illuminate/contracts": "5.4.*", + "illuminate/support": "5.4.*", + "php": ">=5.6.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.4-dev" + } + }, + "autoload": { + "psr-4": { + "Illuminate\\Events\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "The Illuminate Events package.", + "homepage": "https://laravel.com", + "time": "2017-05-02T12:57:00+00:00" + }, + { + "name": "illuminate/filesystem", + "version": "v5.4.27", + "source": { + "type": "git", + "url": "https://github.com/illuminate/filesystem.git", + "reference": "e0ee832f625fbfadb816a972655b1a66af1a5bda" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/illuminate/filesystem/zipball/e0ee832f625fbfadb816a972655b1a66af1a5bda", + "reference": "e0ee832f625fbfadb816a972655b1a66af1a5bda", + "shasum": "" + }, + "require": { + "illuminate/contracts": "5.4.*", + "illuminate/support": "5.4.*", + "php": ">=5.6.4", + "symfony/finder": "~3.2" + }, + "suggest": { + "league/flysystem": "Required to use the Flysystem local and FTP drivers (~1.0).", + "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (~1.0).", + "league/flysystem-rackspace": "Required to use the Flysystem Rackspace driver (~1.0)." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.4-dev" + } + }, + "autoload": { + "psr-4": { + "Illuminate\\Filesystem\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "The Illuminate Filesystem package.", + "homepage": "https://laravel.com", + "time": "2017-05-18T14:37:58+00:00" + }, + { + "name": "illuminate/support", + "version": "v5.4.27", + "source": { + "type": "git", + "url": "https://github.com/illuminate/support.git", + "reference": "a42393b56d0ec75f55e760f2a47bcf85a17a278d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/illuminate/support/zipball/a42393b56d0ec75f55e760f2a47bcf85a17a278d", + "reference": "a42393b56d0ec75f55e760f2a47bcf85a17a278d", + "shasum": "" + }, + "require": { + "doctrine/inflector": "~1.0", + "ext-mbstring": "*", + "illuminate/contracts": "5.4.*", + "paragonie/random_compat": "~1.4|~2.0", + "php": ">=5.6.4" + }, + "replace": { + "tightenco/collect": "self.version" + }, + "suggest": { + "illuminate/filesystem": "Required to use the composer class (5.2.*).", + "symfony/process": "Required to use the composer class (~3.2).", + "symfony/var-dumper": "Required to use the dd function (~3.2)." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.4-dev" + } + }, + "autoload": { + "psr-4": { + "Illuminate\\Support\\": "" + }, + "files": [ + "helpers.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "The Illuminate Support package.", + "homepage": "https://laravel.com", + "time": "2017-06-15T12:35:32+00:00" + }, + { + "name": "illuminate/view", + "version": "v5.4.27", + "source": { + "type": "git", + "url": "https://github.com/illuminate/view.git", + "reference": "423652ea1c4c4c2f6494bd6b8cfb6eb943c5ba75" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/illuminate/view/zipball/423652ea1c4c4c2f6494bd6b8cfb6eb943c5ba75", + "reference": "423652ea1c4c4c2f6494bd6b8cfb6eb943c5ba75", + "shasum": "" + }, + "require": { + "illuminate/container": "5.4.*", + "illuminate/contracts": "5.4.*", + "illuminate/events": "5.4.*", + "illuminate/filesystem": "5.4.*", + "illuminate/support": "5.4.*", + "php": ">=5.6.4", + "symfony/debug": "~3.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.4-dev" + } + }, + "autoload": { + "psr-4": { + "Illuminate\\View\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "The Illuminate View package.", + "homepage": "https://laravel.com", + "time": "2017-06-07T13:32:57+00:00" + }, + { + "name": "paragonie/random_compat", + "version": "v2.0.10", + "source": { + "type": "git", + "url": "https://github.com/paragonie/random_compat.git", + "reference": "634bae8e911eefa89c1abfbf1b66da679ac8f54d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/random_compat/zipball/634bae8e911eefa89c1abfbf1b66da679ac8f54d", + "reference": "634bae8e911eefa89c1abfbf1b66da679ac8f54d", + "shasum": "" + }, + "require": { + "php": ">=5.2.0" + }, + "require-dev": { + "phpunit/phpunit": "4.*|5.*" + }, + "suggest": { + "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." + }, + "type": "library", + "autoload": { + "files": [ + "lib/random.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com" + } + ], + "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", + "keywords": [ + "csprng", + "pseudorandom", + "random" + ], + "time": "2017-03-13T16:27:32+00:00" + }, + { + "name": "psr/log", + "version": "1.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", + "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "time": "2016-10-10T12:19:37+00:00" + }, + { + "name": "symfony/debug", + "version": "v3.3.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/debug.git", + "reference": "63b85a968486d95ff9542228dc2e4247f16f9743" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/debug/zipball/63b85a968486d95ff9542228dc2e4247f16f9743", + "reference": "63b85a968486d95ff9542228dc2e4247f16f9743", + "shasum": "" + }, + "require": { + "php": ">=5.5.9", + "psr/log": "~1.0" + }, + "conflict": { + "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2" + }, + "require-dev": { + "symfony/http-kernel": "~2.8|~3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Debug\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Debug Component", + "homepage": "https://symfony.com", + "time": "2017-07-05T13:02:37+00:00" + }, + { + "name": "symfony/finder", + "version": "v3.3.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "baea7f66d30854ad32988c11a09d7ffd485810c4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/baea7f66d30854ad32988c11a09d7ffd485810c4", + "reference": "baea7f66d30854ad32988c11a09d7ffd485810c4", + "shasum": "" + }, + "require": { + "php": ">=5.5.9" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.3-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Finder Component", + "homepage": "https://symfony.com", + "time": "2017-06-01T21:01:25+00:00" + } + ], + "packages-dev": [ + { + "name": "squizlabs/php_codesniffer", + "version": "2.9.1", + "source": { + "type": "git", + "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", + "reference": "dcbed1074f8244661eecddfc2a675430d8d33f62" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/dcbed1074f8244661eecddfc2a675430d8d33f62", + "reference": "dcbed1074f8244661eecddfc2a675430d8d33f62", + "shasum": "" + }, + "require": { + "ext-simplexml": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": ">=5.1.2" + }, + "require-dev": { + "phpunit/phpunit": "~4.0" + }, + "bin": [ + "scripts/phpcs", + "scripts/phpcbf" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "classmap": [ + "CodeSniffer.php", + "CodeSniffer/CLI.php", + "CodeSniffer/Exception.php", + "CodeSniffer/File.php", + "CodeSniffer/Fixer.php", + "CodeSniffer/Report.php", + "CodeSniffer/Reporting.php", + "CodeSniffer/Sniff.php", + "CodeSniffer/Tokens.php", + "CodeSniffer/Reports/", + "CodeSniffer/Tokenizers/", + "CodeSniffer/DocGenerators/", + "CodeSniffer/Standards/AbstractPatternSniff.php", + "CodeSniffer/Standards/AbstractScopeSniff.php", + "CodeSniffer/Standards/AbstractVariableSniff.php", + "CodeSniffer/Standards/IncorrectPatternException.php", + "CodeSniffer/Standards/Generic/Sniffs/", + "CodeSniffer/Standards/MySource/Sniffs/", + "CodeSniffer/Standards/PEAR/Sniffs/", + "CodeSniffer/Standards/PSR1/Sniffs/", + "CodeSniffer/Standards/PSR2/Sniffs/", + "CodeSniffer/Standards/Squiz/Sniffs/", + "CodeSniffer/Standards/Zend/Sniffs/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Greg Sherwood", + "role": "lead" + } + ], + "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "homepage": "http://www.squizlabs.com/php-codesniffer", + "keywords": [ + "phpcs", + "standards" + ], + "time": "2017-05-22T02:43:20+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "php": ">=5.6.4" + }, + "platform-dev": [] +}