default services conflit ?
This commit is contained in:
12
old.vendor/webmozart/assert/.editorconfig
Normal file
12
old.vendor/webmozart/assert/.editorconfig
Normal file
@@ -0,0 +1,12 @@
|
||||
root = true
|
||||
|
||||
[*]
|
||||
charset=utf-8
|
||||
end_of_line=lf
|
||||
trim_trailing_whitespace=true
|
||||
insert_final_newline=true
|
||||
indent_style=space
|
||||
indent_size=4
|
||||
|
||||
[*.yml]
|
||||
indent_size=2
|
||||
120
old.vendor/webmozart/assert/.github/workflows/ci.yaml
vendored
Normal file
120
old.vendor/webmozart/assert/.github/workflows/ci.yaml
vendored
Normal file
@@ -0,0 +1,120 @@
|
||||
# https://docs.github.com/en/actions
|
||||
|
||||
name: "CI"
|
||||
|
||||
on:
|
||||
pull_request: ~
|
||||
push:
|
||||
branches:
|
||||
- "master"
|
||||
|
||||
env:
|
||||
COMPOSER_ROOT_VERSION: 1.99
|
||||
|
||||
jobs:
|
||||
coding-standards:
|
||||
name: "Coding Standards"
|
||||
|
||||
runs-on: "ubuntu-latest"
|
||||
|
||||
steps:
|
||||
- name: "Checkout"
|
||||
uses: "actions/checkout@v2.3.4"
|
||||
|
||||
- name: "Install PHP"
|
||||
uses: "shivammathur/setup-php@2.9.0"
|
||||
with:
|
||||
coverage: "none"
|
||||
extensions: "mbstring"
|
||||
php-version: "7.4"
|
||||
tools: "composer-normalize"
|
||||
|
||||
- name: "Validate composer.json"
|
||||
run: "composer validate --strict"
|
||||
|
||||
- name: "Normalize composer.json"
|
||||
run: "composer-normalize --dry-run"
|
||||
|
||||
- name: "PHP-CS-Fixer"
|
||||
uses: "docker://oskarstark/php-cs-fixer-ga:2.18.0"
|
||||
with:
|
||||
args: "--dry-run --diff-format udiff"
|
||||
|
||||
static-code-analysis:
|
||||
name: "Static Code Analysis"
|
||||
|
||||
runs-on: "ubuntu-latest"
|
||||
|
||||
steps:
|
||||
- name: "Checkout"
|
||||
uses: "actions/checkout@v2.3.4"
|
||||
|
||||
- name: "Install PHP"
|
||||
uses: "shivammathur/setup-php@2.9.0"
|
||||
with:
|
||||
coverage: "none"
|
||||
extensions: "mbstring"
|
||||
php-version: "7.4"
|
||||
|
||||
- name: "Install dependencies with composer"
|
||||
run: "composer update --no-interaction --no-progress && composer i --working-dir=ci"
|
||||
|
||||
- name: "Run vimeo/psalm"
|
||||
run: "ci/vendor/bin/psalm --threads=4"
|
||||
|
||||
tests:
|
||||
name: "Tests"
|
||||
|
||||
runs-on: "ubuntu-latest"
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
php-version:
|
||||
- "7.2"
|
||||
- "7.3"
|
||||
- "7.4"
|
||||
- "8.0"
|
||||
|
||||
steps:
|
||||
- name: "Checkout"
|
||||
uses: "actions/checkout@v2.3.4"
|
||||
|
||||
- name: "Install PHP"
|
||||
uses: "shivammathur/setup-php@2.9.0"
|
||||
with:
|
||||
coverage: "none"
|
||||
extensions: "mbstring"
|
||||
php-version: "${{ matrix.php-version }}"
|
||||
|
||||
- name: "Install dependencies with composer"
|
||||
run: "composer update --no-interaction --no-progress"
|
||||
|
||||
- name: "Run unit tests"
|
||||
run: "vendor/bin/phpunit"
|
||||
|
||||
windows-tests:
|
||||
name: "Windows tests"
|
||||
|
||||
runs-on: "windows-latest"
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
php-version:
|
||||
- "7.4"
|
||||
|
||||
steps:
|
||||
- name: "Checkout"
|
||||
uses: "actions/checkout@v2.3.4"
|
||||
|
||||
- name: "Install PHP"
|
||||
uses: "shivammathur/setup-php@2.9.0"
|
||||
with:
|
||||
coverage: "none"
|
||||
extensions: "mbstring"
|
||||
php-version: "${{ matrix.php-version }}"
|
||||
|
||||
- name: "Install dependencies with composer"
|
||||
run: "composer update --no-interaction --no-progress"
|
||||
|
||||
- name: "Run unit tests"
|
||||
run: "vendor/bin/phpunit tests/AssertTest.php"
|
||||
24
old.vendor/webmozart/assert/.php_cs
Normal file
24
old.vendor/webmozart/assert/.php_cs
Normal file
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
$finder = PhpCsFixer\Finder::create()
|
||||
->in(__DIR__.'/src')
|
||||
->in(__DIR__.'/tests')
|
||||
;
|
||||
|
||||
return PhpCsFixer\Config::create()
|
||||
->setRiskyAllowed(true)
|
||||
->setRules([
|
||||
'@PSR2' => true,
|
||||
'@Symfony' => true,
|
||||
'ordered_imports' => true,
|
||||
'array_syntax' => ['syntax' => 'long'],
|
||||
'no_superfluous_phpdoc_tags' => false,
|
||||
'phpdoc_annotation_without_dot' => false,
|
||||
'phpdoc_types_order' => false,
|
||||
'phpdoc_summary' => false,
|
||||
'phpdoc_to_comment' => false,
|
||||
'phpdoc_align' => false,
|
||||
'yoda_style' => false,
|
||||
])
|
||||
->setFinder($finder)
|
||||
;
|
||||
190
old.vendor/webmozart/assert/CHANGELOG.md
Normal file
190
old.vendor/webmozart/assert/CHANGELOG.md
Normal file
@@ -0,0 +1,190 @@
|
||||
Changelog
|
||||
=========
|
||||
|
||||
## UNRELEASED
|
||||
|
||||
## 1.10.0
|
||||
|
||||
### Added
|
||||
|
||||
* On invalid assertion, we throw a `Webmozart\Assert\InvalidArgumentException`
|
||||
* Added `Assert::positiveInteger()`
|
||||
|
||||
### Changed
|
||||
|
||||
* Using a trait with real implementations of `all*()` and `nullOr*()` methods to improve psalm compatibility.
|
||||
|
||||
### Removed
|
||||
|
||||
* Support for PHP <7.2
|
||||
|
||||
## 1.9.1
|
||||
|
||||
## Fixed
|
||||
|
||||
* provisional support for PHP 8.0
|
||||
|
||||
## 1.9.0
|
||||
|
||||
* added better Psalm support for `all*` & `nullOr*` methods
|
||||
* These methods are now understood by Psalm through a mixin. You may need a newer version of Psalm in order to use this
|
||||
* added `@psalm-pure` annotation to `Assert::notFalse()`
|
||||
* added more `@psalm-assert` annotations where appropriate
|
||||
|
||||
## Changed
|
||||
|
||||
* the `all*` & `nullOr*` methods are now declared on an interface, instead of `@method` annotations.
|
||||
This interface is linked to the `Assert` class with a `@mixin` annotation. Most IDE's have supported this
|
||||
for a long time, and you should not lose any autocompletion capabilities. PHPStan has supported this since
|
||||
version `0.12.20`. This package is marked incompatible (with a composer conflict) with phpstan version prior to that.
|
||||
If you do not use PHPStan than this does not matter.
|
||||
|
||||
## 1.8.0
|
||||
|
||||
### Added
|
||||
|
||||
* added `Assert::notStartsWith()`
|
||||
* added `Assert::notEndsWith()`
|
||||
* added `Assert::inArray()`
|
||||
* added `@psalm-pure` annotations to pure assertions
|
||||
|
||||
### Fixed
|
||||
|
||||
* Exception messages of comparisons between `DateTime(Immutable)` objects now display their date & time.
|
||||
* Custom Exception messages for `Assert::count()` now use the values to render the exception message.
|
||||
|
||||
## 1.7.0 (2020-02-14)
|
||||
|
||||
### Added
|
||||
|
||||
* added `Assert::notFalse()`
|
||||
* added `Assert::isAOf()`
|
||||
* added `Assert::isAnyOf()`
|
||||
* added `Assert::isNotA()`
|
||||
|
||||
## 1.6.0 (2019-11-24)
|
||||
|
||||
### Added
|
||||
|
||||
* added `Assert::validArrayKey()`
|
||||
* added `Assert::isNonEmptyList()`
|
||||
* added `Assert::isNonEmptyMap()`
|
||||
* added `@throws InvalidArgumentException` annotations to all methods that throw.
|
||||
* added `@psalm-assert` for the list type to the `isList` assertion.
|
||||
|
||||
### Fixed
|
||||
|
||||
* `ResourceBundle` & `SimpleXMLElement` now pass the `isCountable` assertions.
|
||||
They are countable, without implementing the `Countable` interface.
|
||||
* The doc block of `range` now has the proper variables.
|
||||
* An empty array will now pass `isList` and `isMap`. As it is a valid form of both.
|
||||
If a non-empty variant is needed, use `isNonEmptyList` or `isNonEmptyMap`.
|
||||
|
||||
### Changed
|
||||
|
||||
* Removed some `@psalm-assert` annotations, that were 'side effect' assertions See:
|
||||
* [#144](https://github.com/webmozart/assert/pull/144)
|
||||
* [#145](https://github.com/webmozart/assert/issues/145)
|
||||
* [#146](https://github.com/webmozart/assert/pull/146)
|
||||
* [#150](https://github.com/webmozart/assert/pull/150)
|
||||
* If you use Psalm, the minimum version needed is `3.6.0`. Which is enforced through a composer conflict.
|
||||
If you don't use Psalm, then this has no impact.
|
||||
|
||||
## 1.5.0 (2019-08-24)
|
||||
|
||||
### Added
|
||||
|
||||
* added `Assert::uniqueValues()`
|
||||
* added `Assert::unicodeLetters()`
|
||||
* added: `Assert::email()`
|
||||
* added support for [Psalm](https://github.com/vimeo/psalm), by adding `@psalm-assert` annotations where appropriate.
|
||||
|
||||
### Fixed
|
||||
|
||||
* `Assert::endsWith()` would not give the correct result when dealing with a multibyte suffix.
|
||||
* `Assert::length(), minLength, maxLength, lengthBetween` would not give the correct result when dealing with multibyte characters.
|
||||
|
||||
**NOTE**: These 2 changes may break your assertions if you relied on the fact that multibyte characters didn't behave correctly.
|
||||
|
||||
### Changed
|
||||
|
||||
* The names of some variables have been updated to better reflect what they are.
|
||||
* All function calls are now in their FQN form, slightly increasing performance.
|
||||
* Tests are now properly ran against HHVM-3.30 and PHP nightly.
|
||||
|
||||
### Deprecation
|
||||
|
||||
* deprecated `Assert::isTraversable()` in favor of `Assert::isIterable()`
|
||||
* This was already done in 1.3.0, but it was only done through a silenced `trigger_error`. It is now annotated as well.
|
||||
|
||||
## 1.4.0 (2018-12-25)
|
||||
|
||||
### Added
|
||||
|
||||
* added `Assert::ip()`
|
||||
* added `Assert::ipv4()`
|
||||
* added `Assert::ipv6()`
|
||||
* added `Assert::notRegex()`
|
||||
* added `Assert::interfaceExists()`
|
||||
* added `Assert::isList()`
|
||||
* added `Assert::isMap()`
|
||||
* added polyfill for ctype
|
||||
|
||||
### Fixed
|
||||
|
||||
* Special case when comparing objects implementing `__toString()`
|
||||
|
||||
## 1.3.0 (2018-01-29)
|
||||
|
||||
### Added
|
||||
|
||||
* added `Assert::minCount()`
|
||||
* added `Assert::maxCount()`
|
||||
* added `Assert::countBetween()`
|
||||
* added `Assert::isCountable()`
|
||||
* added `Assert::notWhitespaceOnly()`
|
||||
* added `Assert::natural()`
|
||||
* added `Assert::notContains()`
|
||||
* added `Assert::isArrayAccessible()`
|
||||
* added `Assert::isInstanceOfAny()`
|
||||
* added `Assert::isIterable()`
|
||||
|
||||
### Fixed
|
||||
|
||||
* `stringNotEmpty` will no longer report "0" is an empty string
|
||||
|
||||
### Deprecation
|
||||
|
||||
* deprecated `Assert::isTraversable()` in favor of `Assert::isIterable()`
|
||||
|
||||
## 1.2.0 (2016-11-23)
|
||||
|
||||
* added `Assert::throws()`
|
||||
* added `Assert::count()`
|
||||
* added extension point `Assert::reportInvalidArgument()` for custom subclasses
|
||||
|
||||
## 1.1.0 (2016-08-09)
|
||||
|
||||
* added `Assert::object()`
|
||||
* added `Assert::propertyExists()`
|
||||
* added `Assert::propertyNotExists()`
|
||||
* added `Assert::methodExists()`
|
||||
* added `Assert::methodNotExists()`
|
||||
* added `Assert::uuid()`
|
||||
|
||||
## 1.0.2 (2015-08-24)
|
||||
|
||||
* integrated Style CI
|
||||
* add tests for minimum package dependencies on Travis CI
|
||||
|
||||
## 1.0.1 (2015-05-12)
|
||||
|
||||
* added support for PHP 5.3.3
|
||||
|
||||
## 1.0.0 (2015-05-12)
|
||||
|
||||
* first stable release
|
||||
|
||||
## 1.0.0-beta (2015-03-19)
|
||||
|
||||
* first beta release
|
||||
20
old.vendor/webmozart/assert/LICENSE
Normal file
20
old.vendor/webmozart/assert/LICENSE
Normal file
@@ -0,0 +1,20 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2014 Bernhard Schussek
|
||||
|
||||
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.
|
||||
287
old.vendor/webmozart/assert/README.md
Normal file
287
old.vendor/webmozart/assert/README.md
Normal file
@@ -0,0 +1,287 @@
|
||||
Webmozart Assert
|
||||
================
|
||||
|
||||
[](https://packagist.org/packages/webmozart/assert)
|
||||
[](https://packagist.org/packages/webmozart/assert)
|
||||
|
||||
This library contains efficient assertions to test the input and output of
|
||||
your methods. With these assertions, you can greatly reduce the amount of coding
|
||||
needed to write a safe implementation.
|
||||
|
||||
All assertions in the [`Assert`] class throw an `Webmozart\Assert\InvalidArgumentException` if
|
||||
they fail.
|
||||
|
||||
FAQ
|
||||
---
|
||||
|
||||
**What's the difference to [beberlei/assert]?**
|
||||
|
||||
This library is heavily inspired by Benjamin Eberlei's wonderful [assert package],
|
||||
but fixes a usability issue with error messages that can't be fixed there without
|
||||
breaking backwards compatibility.
|
||||
|
||||
This package features usable error messages by default. However, you can also
|
||||
easily write custom error messages:
|
||||
|
||||
```
|
||||
Assert::string($path, 'The path is expected to be a string. Got: %s');
|
||||
```
|
||||
|
||||
In [beberlei/assert], the ordering of the `%s` placeholders is different for
|
||||
every assertion. This package, on the contrary, provides consistent placeholder
|
||||
ordering for all assertions:
|
||||
|
||||
* `%s`: The tested value as string, e.g. `"/foo/bar"`.
|
||||
* `%2$s`, `%3$s`, ...: Additional assertion-specific values, e.g. the
|
||||
minimum/maximum length, allowed values, etc.
|
||||
|
||||
Check the source code of the assertions to find out details about the additional
|
||||
available placeholders.
|
||||
|
||||
Installation
|
||||
------------
|
||||
|
||||
Use [Composer] to install the package:
|
||||
|
||||
```
|
||||
$ composer require webmozart/assert
|
||||
```
|
||||
|
||||
Example
|
||||
-------
|
||||
|
||||
```php
|
||||
use Webmozart\Assert\Assert;
|
||||
|
||||
class Employee
|
||||
{
|
||||
public function __construct($id)
|
||||
{
|
||||
Assert::integer($id, 'The employee ID must be an integer. Got: %s');
|
||||
Assert::greaterThan($id, 0, 'The employee ID must be a positive integer. Got: %s');
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
If you create an employee with an invalid ID, an exception is thrown:
|
||||
|
||||
```php
|
||||
new Employee('foobar');
|
||||
// => Webmozart\Assert\InvalidArgumentException:
|
||||
// The employee ID must be an integer. Got: string
|
||||
|
||||
new Employee(-10);
|
||||
// => Webmozart\Assert\InvalidArgumentException:
|
||||
// The employee ID must be a positive integer. Got: -10
|
||||
```
|
||||
|
||||
Assertions
|
||||
----------
|
||||
|
||||
The [`Assert`] class provides the following assertions:
|
||||
|
||||
### Type Assertions
|
||||
|
||||
Method | Description
|
||||
-------------------------------------------------------- | --------------------------------------------------
|
||||
`string($value, $message = '')` | Check that a value is a string
|
||||
`stringNotEmpty($value, $message = '')` | Check that a value is a non-empty string
|
||||
`integer($value, $message = '')` | Check that a value is an integer
|
||||
`integerish($value, $message = '')` | Check that a value casts to an integer
|
||||
`positiveInteger($value, $message = '')` | Check that a value is a positive (non-zero) integer
|
||||
`float($value, $message = '')` | Check that a value is a float
|
||||
`numeric($value, $message = '')` | Check that a value is numeric
|
||||
`natural($value, $message= ''')` | Check that a value is a non-negative integer
|
||||
`boolean($value, $message = '')` | Check that a value is a boolean
|
||||
`scalar($value, $message = '')` | Check that a value is a scalar
|
||||
`object($value, $message = '')` | Check that a value is an object
|
||||
`resource($value, $type = null, $message = '')` | Check that a value is a resource
|
||||
`isCallable($value, $message = '')` | Check that a value is a callable
|
||||
`isArray($value, $message = '')` | Check that a value is an array
|
||||
`isTraversable($value, $message = '')` (deprecated) | Check that a value is an array or a `\Traversable`
|
||||
`isIterable($value, $message = '')` | Check that a value is an array or a `\Traversable`
|
||||
`isCountable($value, $message = '')` | Check that a value is an array or a `\Countable`
|
||||
`isInstanceOf($value, $class, $message = '')` | Check that a value is an `instanceof` a class
|
||||
`isInstanceOfAny($value, array $classes, $message = '')` | Check that a value is an `instanceof` at least one class on the array of classes
|
||||
`notInstanceOf($value, $class, $message = '')` | Check that a value is not an `instanceof` a class
|
||||
`isAOf($value, $class, $message = '')` | Check that a value is of the class or has one of its parents
|
||||
`isAnyOf($value, array $classes, $message = '')` | Check that a value is of at least one of the classes or has one of its parents
|
||||
`isNotA($value, $class, $message = '')` | Check that a value is not of the class or has not one of its parents
|
||||
`isArrayAccessible($value, $message = '')` | Check that a value can be accessed as an array
|
||||
`uniqueValues($values, $message = '')` | Check that the given array contains unique values
|
||||
|
||||
### Comparison Assertions
|
||||
|
||||
Method | Description
|
||||
----------------------------------------------- | ------------------------------------------------------------------
|
||||
`true($value, $message = '')` | Check that a value is `true`
|
||||
`false($value, $message = '')` | Check that a value is `false`
|
||||
`notFalse($value, $message = '')` | Check that a value is not `false`
|
||||
`null($value, $message = '')` | Check that a value is `null`
|
||||
`notNull($value, $message = '')` | Check that a value is not `null`
|
||||
`isEmpty($value, $message = '')` | Check that a value is `empty()`
|
||||
`notEmpty($value, $message = '')` | Check that a value is not `empty()`
|
||||
`eq($value, $value2, $message = '')` | Check that a value equals another (`==`)
|
||||
`notEq($value, $value2, $message = '')` | Check that a value does not equal another (`!=`)
|
||||
`same($value, $value2, $message = '')` | Check that a value is identical to another (`===`)
|
||||
`notSame($value, $value2, $message = '')` | Check that a value is not identical to another (`!==`)
|
||||
`greaterThan($value, $value2, $message = '')` | Check that a value is greater than another
|
||||
`greaterThanEq($value, $value2, $message = '')` | Check that a value is greater than or equal to another
|
||||
`lessThan($value, $value2, $message = '')` | Check that a value is less than another
|
||||
`lessThanEq($value, $value2, $message = '')` | Check that a value is less than or equal to another
|
||||
`range($value, $min, $max, $message = '')` | Check that a value is within a range
|
||||
`inArray($value, array $values, $message = '')` | Check that a value is one of a list of values
|
||||
`oneOf($value, array $values, $message = '')` | Check that a value is one of a list of values (alias of `inArray`)
|
||||
|
||||
### String Assertions
|
||||
|
||||
You should check that a value is a string with `Assert::string()` before making
|
||||
any of the following assertions.
|
||||
|
||||
Method | Description
|
||||
--------------------------------------------------- | -----------------------------------------------------------------
|
||||
`contains($value, $subString, $message = '')` | Check that a string contains a substring
|
||||
`notContains($value, $subString, $message = '')` | Check that a string does not contain a substring
|
||||
`startsWith($value, $prefix, $message = '')` | Check that a string has a prefix
|
||||
`notStartsWith($value, $prefix, $message = '')` | Check that a string does not have a prefix
|
||||
`startsWithLetter($value, $message = '')` | Check that a string starts with a letter
|
||||
`endsWith($value, $suffix, $message = '')` | Check that a string has a suffix
|
||||
`notEndsWith($value, $suffix, $message = '')` | Check that a string does not have a suffix
|
||||
`regex($value, $pattern, $message = '')` | Check that a string matches a regular expression
|
||||
`notRegex($value, $pattern, $message = '')` | Check that a string does not match a regular expression
|
||||
`unicodeLetters($value, $message = '')` | Check that a string contains Unicode letters only
|
||||
`alpha($value, $message = '')` | Check that a string contains letters only
|
||||
`digits($value, $message = '')` | Check that a string contains digits only
|
||||
`alnum($value, $message = '')` | Check that a string contains letters and digits only
|
||||
`lower($value, $message = '')` | Check that a string contains lowercase characters only
|
||||
`upper($value, $message = '')` | Check that a string contains uppercase characters only
|
||||
`length($value, $length, $message = '')` | Check that a string has a certain number of characters
|
||||
`minLength($value, $min, $message = '')` | Check that a string has at least a certain number of characters
|
||||
`maxLength($value, $max, $message = '')` | Check that a string has at most a certain number of characters
|
||||
`lengthBetween($value, $min, $max, $message = '')` | Check that a string has a length in the given range
|
||||
`uuid($value, $message = '')` | Check that a string is a valid UUID
|
||||
`ip($value, $message = '')` | Check that a string is a valid IP (either IPv4 or IPv6)
|
||||
`ipv4($value, $message = '')` | Check that a string is a valid IPv4
|
||||
`ipv6($value, $message = '')` | Check that a string is a valid IPv6
|
||||
`email($value, $message = '')` | Check that a string is a valid e-mail address
|
||||
`notWhitespaceOnly($value, $message = '')` | Check that a string contains at least one non-whitespace character
|
||||
|
||||
### File Assertions
|
||||
|
||||
Method | Description
|
||||
----------------------------------- | --------------------------------------------------
|
||||
`fileExists($value, $message = '')` | Check that a value is an existing path
|
||||
`file($value, $message = '')` | Check that a value is an existing file
|
||||
`directory($value, $message = '')` | Check that a value is an existing directory
|
||||
`readable($value, $message = '')` | Check that a value is a readable path
|
||||
`writable($value, $message = '')` | Check that a value is a writable path
|
||||
|
||||
### Object Assertions
|
||||
|
||||
Method | Description
|
||||
----------------------------------------------------- | --------------------------------------------------
|
||||
`classExists($value, $message = '')` | Check that a value is an existing class name
|
||||
`subclassOf($value, $class, $message = '')` | Check that a class is a subclass of another
|
||||
`interfaceExists($value, $message = '')` | Check that a value is an existing interface name
|
||||
`implementsInterface($value, $class, $message = '')` | Check that a class implements an interface
|
||||
`propertyExists($value, $property, $message = '')` | Check that a property exists in a class/object
|
||||
`propertyNotExists($value, $property, $message = '')` | Check that a property does not exist in a class/object
|
||||
`methodExists($value, $method, $message = '')` | Check that a method exists in a class/object
|
||||
`methodNotExists($value, $method, $message = '')` | Check that a method does not exist in a class/object
|
||||
|
||||
### Array Assertions
|
||||
|
||||
Method | Description
|
||||
-------------------------------------------------- | ------------------------------------------------------------------
|
||||
`keyExists($array, $key, $message = '')` | Check that a key exists in an array
|
||||
`keyNotExists($array, $key, $message = '')` | Check that a key does not exist in an array
|
||||
`validArrayKey($key, $message = '')` | Check that a value is a valid array key (int or string)
|
||||
`count($array, $number, $message = '')` | Check that an array contains a specific number of elements
|
||||
`minCount($array, $min, $message = '')` | Check that an array contains at least a certain number of elements
|
||||
`maxCount($array, $max, $message = '')` | Check that an array contains at most a certain number of elements
|
||||
`countBetween($array, $min, $max, $message = '')` | Check that an array has a count in the given range
|
||||
`isList($array, $message = '')` | Check that an array is a non-associative list
|
||||
`isNonEmptyList($array, $message = '')` | Check that an array is a non-associative list, and not empty
|
||||
`isMap($array, $message = '')` | Check that an array is associative and has strings as keys
|
||||
`isNonEmptyMap($array, $message = '')` | Check that an array is associative and has strings as keys, and is not empty
|
||||
|
||||
### Function Assertions
|
||||
|
||||
Method | Description
|
||||
------------------------------------------- | -----------------------------------------------------------------------------------------------------
|
||||
`throws($closure, $class, $message = '')` | Check that a function throws a certain exception. Subclasses of the exception class will be accepted.
|
||||
|
||||
### Collection Assertions
|
||||
|
||||
All of the above assertions can be prefixed with `all*()` to test the contents
|
||||
of an array or a `\Traversable`:
|
||||
|
||||
```php
|
||||
Assert::allIsInstanceOf($employees, 'Acme\Employee');
|
||||
```
|
||||
|
||||
### Nullable Assertions
|
||||
|
||||
All of the above assertions can be prefixed with `nullOr*()` to run the
|
||||
assertion only if it the value is not `null`:
|
||||
|
||||
```php
|
||||
Assert::nullOrString($middleName, 'The middle name must be a string or null. Got: %s');
|
||||
```
|
||||
|
||||
### Extending Assert
|
||||
|
||||
The `Assert` class comes with a few methods, which can be overridden to change the class behaviour. You can also extend it to
|
||||
add your own assertions.
|
||||
|
||||
#### Overriding methods
|
||||
|
||||
Overriding the following methods in your assertion class allows you to change the behaviour of the assertions:
|
||||
|
||||
* `public static function __callStatic($name, $arguments)`
|
||||
* This method is used to 'create' the `nullOr` and `all` versions of the assertions.
|
||||
* `protected static function valueToString($value)`
|
||||
* This method is used for error messages, to convert the value to a string value for displaying. You could use this for representing a value object with a `__toString` method for example.
|
||||
* `protected static function typeToString($value)`
|
||||
* This method is used for error messages, to convert the a value to a string representing its type.
|
||||
* `protected static function strlen($value)`
|
||||
* This method is used to calculate string length for relevant methods, using the `mb_strlen` if available and useful.
|
||||
* `protected static function reportInvalidArgument($message)`
|
||||
* This method is called when an assertion fails, with the specified error message. Here you can throw your own exception, or log something.
|
||||
|
||||
## Static analysis support
|
||||
|
||||
Where applicable, assertion functions are annotated to support Psalm's
|
||||
[Assertion syntax](https://psalm.dev/docs/annotating_code/assertion_syntax/).
|
||||
A dedicated [PHPStan Plugin](https://github.com/phpstan/phpstan-webmozart-assert) is
|
||||
required for proper type support.
|
||||
|
||||
Authors
|
||||
-------
|
||||
|
||||
* [Bernhard Schussek] a.k.a. [@webmozart]
|
||||
* [The Community Contributors]
|
||||
|
||||
Contribute
|
||||
----------
|
||||
|
||||
Contributions to the package are always welcome!
|
||||
|
||||
* Report any bugs or issues you find on the [issue tracker].
|
||||
* You can grab the source code at the package's [Git repository].
|
||||
|
||||
License
|
||||
-------
|
||||
|
||||
All contents of this package are licensed under the [MIT license].
|
||||
|
||||
[beberlei/assert]: https://github.com/beberlei/assert
|
||||
[assert package]: https://github.com/beberlei/assert
|
||||
[Composer]: https://getcomposer.org
|
||||
[Bernhard Schussek]: https://webmozarts.com
|
||||
[The Community Contributors]: https://github.com/webmozart/assert/graphs/contributors
|
||||
[issue tracker]: https://github.com/webmozart/assert/issues
|
||||
[Git repository]: https://github.com/webmozart/assert
|
||||
[@webmozart]: https://twitter.com/webmozart
|
||||
[MIT license]: LICENSE
|
||||
[`Assert`]: src/Assert.php
|
||||
43
old.vendor/webmozart/assert/composer.json
Normal file
43
old.vendor/webmozart/assert/composer.json
Normal file
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"name": "webmozart/assert",
|
||||
"description": "Assertions to validate method input/output with nice error messages.",
|
||||
"keywords": [
|
||||
"assert",
|
||||
"check",
|
||||
"validate"
|
||||
],
|
||||
"license": "MIT",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Bernhard Schussek",
|
||||
"email": "bschussek@gmail.com"
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
"php": "^7.2 || ^8.0",
|
||||
"symfony/polyfill-ctype": "^1.8"
|
||||
},
|
||||
"conflict": {
|
||||
"phpstan/phpstan": "<0.12.20",
|
||||
"vimeo/psalm": "<4.6.1 || 4.6.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^8.5.13"
|
||||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.10-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Webmozart\\Assert\\": "src/"
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
"Webmozart\\Assert\\Tests\\": "tests/",
|
||||
"Webmozart\\Assert\\Bin\\": "bin/src"
|
||||
}
|
||||
}
|
||||
}
|
||||
14
old.vendor/webmozart/assert/psalm.xml
Normal file
14
old.vendor/webmozart/assert/psalm.xml
Normal file
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0"?>
|
||||
<psalm
|
||||
totallyTyped="true"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns="https://getpsalm.org/schema/config"
|
||||
xsi:schemaLocation="https://getpsalm.org/schema/config ci/vendor/vimeo/psalm/config.xsd"
|
||||
phpVersion="7.3"
|
||||
>
|
||||
<projectFiles>
|
||||
<directory name="bin" />
|
||||
<directory name="tests/static-analysis" />
|
||||
</projectFiles>
|
||||
|
||||
</psalm>
|
||||
2066
old.vendor/webmozart/assert/src/Assert.php
Normal file
2066
old.vendor/webmozart/assert/src/Assert.php
Normal file
File diff suppressed because it is too large
Load Diff
16
old.vendor/webmozart/assert/src/InvalidArgumentException.php
Normal file
16
old.vendor/webmozart/assert/src/InvalidArgumentException.php
Normal file
@@ -0,0 +1,16 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the webmozart/assert package.
|
||||
*
|
||||
* (c) Bernhard Schussek <bschussek@gmail.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Webmozart\Assert;
|
||||
|
||||
class InvalidArgumentException extends \InvalidArgumentException
|
||||
{
|
||||
}
|
||||
2916
old.vendor/webmozart/assert/src/Mixin.php
Normal file
2916
old.vendor/webmozart/assert/src/Mixin.php
Normal file
File diff suppressed because it is too large
Load Diff
2
old.vendor/webmozart/path-util/.gitignore
vendored
Normal file
2
old.vendor/webmozart/path-util/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
/vendor/
|
||||
composer.lock
|
||||
8
old.vendor/webmozart/path-util/.styleci.yml
Normal file
8
old.vendor/webmozart/path-util/.styleci.yml
Normal file
@@ -0,0 +1,8 @@
|
||||
preset: symfony
|
||||
|
||||
enabled:
|
||||
- ordered_use
|
||||
- strict
|
||||
|
||||
disabled:
|
||||
- empty_return
|
||||
29
old.vendor/webmozart/path-util/.travis.yml
Normal file
29
old.vendor/webmozart/path-util/.travis.yml
Normal file
@@ -0,0 +1,29 @@
|
||||
language: php
|
||||
|
||||
sudo: false
|
||||
|
||||
cache:
|
||||
directories:
|
||||
- $HOME/.composer/cache/files
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- php: 5.3
|
||||
- php: 5.4
|
||||
- php: 5.5
|
||||
- php: 5.6
|
||||
- php: 5.6
|
||||
env: COMPOSER_FLAGS='--prefer-lowest --prefer-stable'
|
||||
- php: hhvm
|
||||
- php: nightly
|
||||
allow_failures:
|
||||
- php: hhvm
|
||||
- php: nightly
|
||||
fast_finish: true
|
||||
|
||||
install: composer update $COMPOSER_FLAGS -n
|
||||
|
||||
script: vendor/bin/phpunit --verbose --coverage-clover=coverage.clover
|
||||
|
||||
after_script:
|
||||
- sh -c 'if [ "$TRAVIS_PHP_VERSION" != "hhvm" ]; then wget https://scrutinizer-ci.com/ocular.phar && php ocular.phar code-coverage:upload --format=php-clover coverage.clover; fi;'
|
||||
68
old.vendor/webmozart/path-util/CHANGELOG.md
Normal file
68
old.vendor/webmozart/path-util/CHANGELOG.md
Normal file
@@ -0,0 +1,68 @@
|
||||
Changelog
|
||||
=========
|
||||
|
||||
* 2.3.0 (2015-12-17)
|
||||
|
||||
* added `Url::makeRelative()` for calculating relative paths between URLs
|
||||
* fixed `Path::makeRelative()` to trim leading dots when moving outside of
|
||||
the base path
|
||||
|
||||
* 2.2.3 (2015-10-05)
|
||||
|
||||
* fixed `Path::makeRelative()` to produce `..` when called with the parent
|
||||
directory of a path
|
||||
|
||||
* 2.2.2 (2015-08-24)
|
||||
|
||||
* `Path::makeAbsolute()` does not fail anymore if an absolute path is passed
|
||||
with a different root (partition) than the base path
|
||||
|
||||
* 2.2.1 (2015-08-24)
|
||||
|
||||
* fixed minimum versions in composer.json
|
||||
|
||||
* 2.2.0 (2015-08-14)
|
||||
|
||||
* added `Path::normalize()`
|
||||
|
||||
* 2.1.0 (2015-07-14)
|
||||
|
||||
* `Path::canonicalize()` now turns `~` into the user's home directory on
|
||||
Unix and Windows 8 or later.
|
||||
|
||||
* 2.0.0 (2015-05-21)
|
||||
|
||||
* added support for streams, e.g. "phar://C:/path/to/file"
|
||||
* added `Path::join()`
|
||||
* all `Path` methods now throw exceptions if parameters with invalid types are
|
||||
passed
|
||||
* added an internal buffer to `Path::canonicalize()` in order to increase the
|
||||
performance of the `Path` class
|
||||
|
||||
* 1.1.0 (2015-03-19)
|
||||
|
||||
* added `Path::getFilename()`
|
||||
* added `Path::getFilenameWithoutExtension()`
|
||||
* added `Path::getExtension()`
|
||||
* added `Path::hasExtension()`
|
||||
* added `Path::changeExtension()`
|
||||
* `Path::makeRelative()` now works when the absolute path and the base path
|
||||
have equal directory names beneath different base directories
|
||||
(e.g. "/webmozart/css/style.css" relative to "/puli/css")
|
||||
|
||||
* 1.0.2 (2015-01-12)
|
||||
|
||||
* `Path::makeAbsolute()` fails now if the base path is not absolute
|
||||
* `Path::makeRelative()` now works when a relative path is passed and the base
|
||||
path is empty
|
||||
|
||||
* 1.0.1 (2014-12-03)
|
||||
|
||||
* Added PHP 5.6 to Travis.
|
||||
* Fixed bug in `Path::makeRelative()` when first argument is shorter than second
|
||||
* Made HHVM compatibility mandatory in .travis.yml
|
||||
* Added PHP 5.3.3 to travis.yml
|
||||
|
||||
* 1.0.0 (2014-11-26)
|
||||
|
||||
* first release
|
||||
20
old.vendor/webmozart/path-util/LICENSE
Normal file
20
old.vendor/webmozart/path-util/LICENSE
Normal file
@@ -0,0 +1,20 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2014 Bernhard Schussek
|
||||
|
||||
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.
|
||||
143
old.vendor/webmozart/path-util/README.md
Normal file
143
old.vendor/webmozart/path-util/README.md
Normal file
@@ -0,0 +1,143 @@
|
||||
File Path Utility
|
||||
=================
|
||||
|
||||
[](https://travis-ci.org/webmozart/path-util)
|
||||
[](https://ci.appveyor.com/project/webmozart/path-util/branch/master)
|
||||
[](https://scrutinizer-ci.com/g/webmozart/path-util/?branch=2.3.0)
|
||||
[](https://packagist.org/packages/webmozart/path-util)
|
||||
[](https://packagist.org/packages/webmozart/path-util)
|
||||
[](https://www.versioneye.com/php/webmozart:path-util/2.3.0)
|
||||
|
||||
Latest release: [2.3.0](https://packagist.org/packages/webmozart/path-util#2.3.0)
|
||||
|
||||
PHP >= 5.3.3
|
||||
|
||||
This package provides robust, cross-platform utility functions for normalizing,
|
||||
comparing and modifying file paths and URLs.
|
||||
|
||||
Installation
|
||||
------------
|
||||
|
||||
The utility can be installed with [Composer]:
|
||||
|
||||
```
|
||||
$ composer require webmozart/path-util
|
||||
```
|
||||
|
||||
Usage
|
||||
-----
|
||||
|
||||
Use the `Path` class to handle file paths:
|
||||
|
||||
```php
|
||||
use Webmozart\PathUtil\Path;
|
||||
|
||||
echo Path::canonicalize('/var/www/vhost/webmozart/../config.ini');
|
||||
// => /var/www/vhost/config.ini
|
||||
|
||||
echo Path::canonicalize('C:\Programs\Webmozart\..\config.ini');
|
||||
// => C:/Programs/config.ini
|
||||
|
||||
echo Path::canonicalize('~/config.ini');
|
||||
// => /home/webmozart/config.ini
|
||||
|
||||
echo Path::makeAbsolute('config/config.yml', '/var/www/project');
|
||||
// => /var/www/project/config/config.yml
|
||||
|
||||
echo Path::makeRelative('/var/www/project/config/config.yml', '/var/www/project/uploads');
|
||||
// => ../config/config.yml
|
||||
|
||||
$paths = array(
|
||||
'/var/www/vhosts/project/httpdocs/config/config.yml',
|
||||
'/var/www/vhosts/project/httpdocs/images/banana.gif',
|
||||
'/var/www/vhosts/project/httpdocs/uploads/../images/nicer-banana.gif',
|
||||
);
|
||||
|
||||
Path::getLongestCommonBasePath($paths);
|
||||
// => /var/www/vhosts/project/httpdocs
|
||||
|
||||
Path::getFilename('/views/index.html.twig');
|
||||
// => index.html.twig
|
||||
|
||||
Path::getFilenameWithoutExtension('/views/index.html.twig');
|
||||
// => index.html
|
||||
|
||||
Path::getFilenameWithoutExtension('/views/index.html.twig', 'html.twig');
|
||||
Path::getFilenameWithoutExtension('/views/index.html.twig', '.html.twig');
|
||||
// => index
|
||||
|
||||
Path::getExtension('/views/index.html.twig');
|
||||
// => twig
|
||||
|
||||
Path::hasExtension('/views/index.html.twig');
|
||||
// => true
|
||||
|
||||
Path::hasExtension('/views/index.html.twig', 'twig');
|
||||
// => true
|
||||
|
||||
Path::hasExtension('/images/profile.jpg', array('jpg', 'png', 'gif'));
|
||||
// => true
|
||||
|
||||
Path::changeExtension('/images/profile.jpeg', 'jpg');
|
||||
// => /images/profile.jpg
|
||||
|
||||
Path::join('phar://C:/Documents', 'projects/my-project.phar', 'composer.json');
|
||||
// => phar://C:/Documents/projects/my-project.phar/composer.json
|
||||
|
||||
Path::getHomeDirectory();
|
||||
// => /home/webmozart
|
||||
```
|
||||
|
||||
Use the `Url` class to handle URLs:
|
||||
|
||||
```php
|
||||
use Webmozart\PathUtil\Url;
|
||||
|
||||
echo Url::makeRelative('http://example.com/css/style.css', 'http://example.com/puli');
|
||||
// => ../css/style.css
|
||||
|
||||
echo Url::makeRelative('http://cdn.example.com/css/style.css', 'http://example.com/puli');
|
||||
// => http://cdn.example.com/css/style.css
|
||||
```
|
||||
|
||||
Learn more in the [Documentation] and the [API Docs].
|
||||
|
||||
Authors
|
||||
-------
|
||||
|
||||
* [Bernhard Schussek] a.k.a. [@webmozart]
|
||||
* [The Community Contributors]
|
||||
|
||||
Documentation
|
||||
-------------
|
||||
|
||||
Read the [Documentation] if you want to learn more about the contained functions.
|
||||
|
||||
Contribute
|
||||
----------
|
||||
|
||||
Contributions are always welcome!
|
||||
|
||||
* Report any bugs or issues you find on the [issue tracker].
|
||||
* You can grab the source code at the [Git repository].
|
||||
|
||||
Support
|
||||
-------
|
||||
|
||||
If you are having problems, send a mail to bschussek@gmail.com or shout out to
|
||||
[@webmozart] on Twitter.
|
||||
|
||||
License
|
||||
-------
|
||||
|
||||
All contents of this package are licensed under the [MIT license].
|
||||
|
||||
[Bernhard Schussek]: http://webmozarts.com
|
||||
[The Community Contributors]: https://github.com/webmozart/path-util/graphs/contributors
|
||||
[Composer]: https://getcomposer.org
|
||||
[Documentation]: docs/usage.md
|
||||
[API Docs]: https://webmozart.github.io/path-util/api/latest/class-Webmozart.PathUtil.Path.html
|
||||
[issue tracker]: https://github.com/webmozart/path-util/issues
|
||||
[Git repository]: https://github.com/webmozart/path-util
|
||||
[@webmozart]: https://twitter.com/webmozart
|
||||
[MIT license]: LICENSE
|
||||
34
old.vendor/webmozart/path-util/appveyor.yml
Normal file
34
old.vendor/webmozart/path-util/appveyor.yml
Normal file
@@ -0,0 +1,34 @@
|
||||
build: false
|
||||
shallow_clone: true
|
||||
platform: x86
|
||||
clone_folder: c:\projects\webmozart\path-util
|
||||
|
||||
cache:
|
||||
- '%LOCALAPPDATA%\Composer\files'
|
||||
|
||||
init:
|
||||
- SET PATH=C:\Program Files\OpenSSL;c:\tools\php;%PATH%
|
||||
|
||||
environment:
|
||||
matrix:
|
||||
- COMPOSER_FLAGS: ""
|
||||
- COMPOSER_FLAGS: --prefer-lowest --prefer-stable
|
||||
|
||||
install:
|
||||
- cinst -y OpenSSL.Light
|
||||
- cinst -y php
|
||||
- cd c:\tools\php
|
||||
- copy php.ini-production php.ini /Y
|
||||
- echo date.timezone="UTC" >> php.ini
|
||||
- echo extension_dir=ext >> php.ini
|
||||
- echo extension=php_openssl.dll >> php.ini
|
||||
- echo extension=php_mbstring.dll >> php.ini
|
||||
- echo extension=php_fileinfo.dll >> php.ini
|
||||
- echo memory_limit=1G >> php.ini
|
||||
- cd c:\projects\webmozart\path-util
|
||||
- php -r "readfile('http://getcomposer.org/installer');" | php
|
||||
- php composer.phar update %COMPOSER_FLAGS% --no-interaction --no-progress
|
||||
|
||||
test_script:
|
||||
- cd c:\projects\webmozart\path-util
|
||||
- vendor\bin\phpunit.bat --verbose
|
||||
34
old.vendor/webmozart/path-util/composer.json
Normal file
34
old.vendor/webmozart/path-util/composer.json
Normal file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"name": "webmozart/path-util",
|
||||
"description": "A robust cross-platform utility for normalizing, comparing and modifying file paths.",
|
||||
"license": "MIT",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Bernhard Schussek",
|
||||
"email": "bschussek@gmail.com"
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
"php": ">=5.3.3",
|
||||
"webmozart/assert": "~1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^4.6",
|
||||
"sebastian/version": "^1.0.1"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Webmozart\\PathUtil\\": "src/"
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
"Webmozart\\PathUtil\\Tests\\": "tests/"
|
||||
}
|
||||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.3-dev"
|
||||
}
|
||||
}
|
||||
}
|
||||
203
old.vendor/webmozart/path-util/docs/usage.md
Normal file
203
old.vendor/webmozart/path-util/docs/usage.md
Normal file
@@ -0,0 +1,203 @@
|
||||
Painfree Handling of File Paths
|
||||
===============================
|
||||
|
||||
Dealing with file paths usually involves some difficulties:
|
||||
|
||||
* **System Heterogeneity**: File paths look different on different platforms.
|
||||
UNIX file paths start with a slash ("/"), while Windows file paths start with
|
||||
a system drive ("C:"). UNIX uses forward slashes, while Windows uses
|
||||
backslashes by default ("\").
|
||||
|
||||
* **Absolute/Relative Paths**: Web applications frequently need to deal with
|
||||
absolute and relative paths. Converting one to the other properly is tricky
|
||||
and repetitive.
|
||||
|
||||
This package provides few, but robust utility methods to simplify your life
|
||||
when dealing with file paths.
|
||||
|
||||
Canonicalization
|
||||
----------------
|
||||
|
||||
*Canonicalization* is the transformation of a path into a normalized (the
|
||||
"canonical") format. You can canonicalize a path with `Path::canonicalize()`:
|
||||
|
||||
```php
|
||||
echo Path::canonicalize('/var/www/vhost/webmozart/../config.ini');
|
||||
// => /var/www/vhost/config.ini
|
||||
```
|
||||
|
||||
The following modifications happen during canonicalization:
|
||||
|
||||
* "." segments are removed;
|
||||
* ".." segments are resolved;
|
||||
* backslashes ("\") are converted into forward slashes ("/");
|
||||
* root paths ("/" and "C:/") always terminate with a slash;
|
||||
* non-root paths never terminate with a slash;
|
||||
* schemes (such as "phar://") are kept;
|
||||
* replace "~" with the user's home directory.
|
||||
|
||||
You can pass absolute paths and relative paths to `canonicalize()`. When a
|
||||
relative path is passed, ".." segments at the beginning of the path are kept:
|
||||
|
||||
```php
|
||||
echo Path::canonicalize('../uploads/../config/config.yml');
|
||||
// => ../config/config.yml
|
||||
```
|
||||
|
||||
Malformed paths are returned unchanged:
|
||||
|
||||
```php
|
||||
echo Path::canonicalize('C:Programs/PHP/php.ini');
|
||||
// => C:Programs/PHP/php.ini
|
||||
```
|
||||
|
||||
Converting Absolute/Relative Paths
|
||||
----------------------------------
|
||||
|
||||
Absolute/relative paths can be converted with the methods `Path::makeAbsolute()`
|
||||
and `Path::makeRelative()`.
|
||||
|
||||
`makeAbsolute()` expects a relative path and a base path to base that relative
|
||||
path upon:
|
||||
|
||||
```php
|
||||
echo Path::makeAbsolute('config/config.yml', '/var/www/project');
|
||||
// => /var/www/project/config/config.yml
|
||||
```
|
||||
|
||||
If an absolute path is passed in the first argument, the absolute path is
|
||||
returned unchanged:
|
||||
|
||||
```php
|
||||
echo Path::makeAbsolute('/usr/share/lib/config.ini', '/var/www/project');
|
||||
// => /usr/share/lib/config.ini
|
||||
```
|
||||
|
||||
The method resolves ".." segments, if there are any:
|
||||
|
||||
```php
|
||||
echo Path::makeAbsolute('../config/config.yml', '/var/www/project/uploads');
|
||||
// => /var/www/project/config/config.yml
|
||||
```
|
||||
|
||||
This method is very useful if you want to be able to accept relative paths (for
|
||||
example, relative to the root directory of your project) and absolute paths at
|
||||
the same time.
|
||||
|
||||
`makeRelative()` is the inverse operation to `makeAbsolute()`:
|
||||
|
||||
```php
|
||||
echo Path::makeRelative('/var/www/project/config/config.yml', '/var/www/project');
|
||||
// => config/config.yml
|
||||
```
|
||||
|
||||
If the path is not within the base path, the method will prepend ".." segments
|
||||
as necessary:
|
||||
|
||||
```php
|
||||
echo Path::makeRelative('/var/www/project/config/config.yml', '/var/www/project/uploads');
|
||||
// => ../config/config.yml
|
||||
```
|
||||
|
||||
Use `isAbsolute()` and `isRelative()` to check whether a path is absolute or
|
||||
relative:
|
||||
|
||||
```php
|
||||
Path::isAbsolute('C:\Programs\PHP\php.ini')
|
||||
// => true
|
||||
```
|
||||
|
||||
All four methods internally canonicalize the passed path.
|
||||
|
||||
Finding Longest Common Base Paths
|
||||
---------------------------------
|
||||
|
||||
When you store absolute file paths on the file system, this leads to a lot of
|
||||
duplicated information:
|
||||
|
||||
```php
|
||||
return array(
|
||||
'/var/www/vhosts/project/httpdocs/config/config.yml',
|
||||
'/var/www/vhosts/project/httpdocs/config/routing.yml',
|
||||
'/var/www/vhosts/project/httpdocs/config/services.yml',
|
||||
'/var/www/vhosts/project/httpdocs/images/banana.gif',
|
||||
'/var/www/vhosts/project/httpdocs/uploads/images/nicer-banana.gif',
|
||||
);
|
||||
```
|
||||
|
||||
Especially when storing many paths, the amount of duplicated information is
|
||||
noticeable. You can use `Path::getLongestCommonBasePath()` to check a list of
|
||||
paths for a common base path:
|
||||
|
||||
```php
|
||||
$paths = array(
|
||||
'/var/www/vhosts/project/httpdocs/config/config.yml',
|
||||
'/var/www/vhosts/project/httpdocs/config/routing.yml',
|
||||
'/var/www/vhosts/project/httpdocs/config/services.yml',
|
||||
'/var/www/vhosts/project/httpdocs/images/banana.gif',
|
||||
'/var/www/vhosts/project/httpdocs/uploads/images/nicer-banana.gif',
|
||||
);
|
||||
|
||||
Path::getLongestCommonBasePath($paths);
|
||||
// => /var/www/vhosts/project/httpdocs
|
||||
```
|
||||
|
||||
Use this path together with `Path::makeRelative()` to shorten the stored paths:
|
||||
|
||||
```php
|
||||
$bp = '/var/www/vhosts/project/httpdocs';
|
||||
|
||||
return array(
|
||||
$bp.'/config/config.yml',
|
||||
$bp.'/config/routing.yml',
|
||||
$bp.'/config/services.yml',
|
||||
$bp.'/images/banana.gif',
|
||||
$bp.'/uploads/images/nicer-banana.gif',
|
||||
);
|
||||
```
|
||||
|
||||
`getLongestCommonBasePath()` always returns canonical paths.
|
||||
|
||||
Use `Path::isBasePath()` to test whether a path is a base path of another path:
|
||||
|
||||
```php
|
||||
Path::isBasePath("/var/www", "/var/www/project");
|
||||
// => true
|
||||
|
||||
Path::isBasePath("/var/www", "/var/www/project/..");
|
||||
// => true
|
||||
|
||||
Path::isBasePath("/var/www", "/var/www/project/../..");
|
||||
// => false
|
||||
```
|
||||
|
||||
Finding Directories/Root Directories
|
||||
------------------------------------
|
||||
|
||||
PHP offers the function `dirname()` to obtain the directory path of a file path.
|
||||
This method has a few quirks:
|
||||
|
||||
* `dirname()` does not accept backslashes on UNIX
|
||||
* `dirname("C:/Programs")` returns "C:", not "C:/"
|
||||
* `dirname("C:/")` returns ".", not "C:/"
|
||||
* `dirname("C:")` returns ".", not "C:/"
|
||||
* `dirname("Programs")` returns ".", not ""
|
||||
* `dirname()` does not canonicalize the result
|
||||
|
||||
`Path::getDirectory()` fixes these shortcomings:
|
||||
|
||||
```php
|
||||
echo Path::getDirectory("C:\Programs");
|
||||
// => C:/
|
||||
```
|
||||
|
||||
Additionally, you can use `Path::getRoot()` to obtain the root of a path:
|
||||
|
||||
```php
|
||||
echo Path::getRoot("/etc/apache2/sites-available");
|
||||
// => /
|
||||
|
||||
echo Path::getRoot("C:\Programs\Apache\Config");
|
||||
// => C:/
|
||||
```
|
||||
|
||||
16
old.vendor/webmozart/path-util/phpunit.xml.dist
Normal file
16
old.vendor/webmozart/path-util/phpunit.xml.dist
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<phpunit bootstrap="vendor/autoload.php" colors="true">
|
||||
<testsuites>
|
||||
<testsuite name="Path-Util Test Suite">
|
||||
<directory suffix="Test.php">./tests/</directory>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
|
||||
<!-- Whitelist for code coverage -->
|
||||
<filter>
|
||||
<whitelist>
|
||||
<directory suffix=".php">./src/</directory>
|
||||
</whitelist>
|
||||
</filter>
|
||||
</phpunit>
|
||||
1008
old.vendor/webmozart/path-util/src/Path.php
Normal file
1008
old.vendor/webmozart/path-util/src/Path.php
Normal file
File diff suppressed because it is too large
Load Diff
111
old.vendor/webmozart/path-util/src/Url.php
Normal file
111
old.vendor/webmozart/path-util/src/Url.php
Normal file
@@ -0,0 +1,111 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the webmozart/path-util package.
|
||||
*
|
||||
* (c) Bernhard Schussek <bschussek@gmail.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Webmozart\PathUtil;
|
||||
|
||||
use InvalidArgumentException;
|
||||
use Webmozart\Assert\Assert;
|
||||
|
||||
/**
|
||||
* Contains utility methods for handling URL strings.
|
||||
*
|
||||
* The methods in this class are able to deal with URLs.
|
||||
*
|
||||
* @since 2.3
|
||||
*
|
||||
* @author Bernhard Schussek <bschussek@gmail.com>
|
||||
* @author Claudio Zizza <claudio@budgegeria.de>
|
||||
*/
|
||||
final class Url
|
||||
{
|
||||
/**
|
||||
* Turns a URL into a relative path.
|
||||
*
|
||||
* The result is a canonical path. This class is using functionality of Path class.
|
||||
*
|
||||
* @see Path
|
||||
*
|
||||
* @param string $url A URL to make relative.
|
||||
* @param string $baseUrl A base URL.
|
||||
*
|
||||
* @return string
|
||||
*
|
||||
* @throws InvalidArgumentException If the URL and base URL does
|
||||
* not match.
|
||||
*/
|
||||
public static function makeRelative($url, $baseUrl)
|
||||
{
|
||||
Assert::string($url, 'The URL must be a string. Got: %s');
|
||||
Assert::string($baseUrl, 'The base URL must be a string. Got: %s');
|
||||
Assert::contains($baseUrl, '://', '%s is not an absolute Url.');
|
||||
|
||||
list($baseHost, $basePath) = self::split($baseUrl);
|
||||
|
||||
if (false === strpos($url, '://')) {
|
||||
if (0 === strpos($url, '/')) {
|
||||
$host = $baseHost;
|
||||
} else {
|
||||
$host = '';
|
||||
}
|
||||
$path = $url;
|
||||
} else {
|
||||
list($host, $path) = self::split($url);
|
||||
}
|
||||
|
||||
if ('' !== $host && $host !== $baseHost) {
|
||||
throw new InvalidArgumentException(sprintf(
|
||||
'The URL "%s" cannot be made relative to "%s" since their host names are different.',
|
||||
$host,
|
||||
$baseHost
|
||||
));
|
||||
}
|
||||
|
||||
return Path::makeRelative($path, $basePath);
|
||||
}
|
||||
|
||||
/**
|
||||
* Splits a URL into its host and the path.
|
||||
*
|
||||
* ```php
|
||||
* list ($root, $path) = Path::split("http://example.com/webmozart")
|
||||
* // => array("http://example.com", "/webmozart")
|
||||
*
|
||||
* list ($root, $path) = Path::split("http://example.com")
|
||||
* // => array("http://example.com", "")
|
||||
* ```
|
||||
*
|
||||
* @param string $url The URL to split.
|
||||
*
|
||||
* @return string[] An array with the host and the path of the URL.
|
||||
*
|
||||
* @throws InvalidArgumentException If $url is not a URL.
|
||||
*/
|
||||
private static function split($url)
|
||||
{
|
||||
$pos = strpos($url, '://');
|
||||
$scheme = substr($url, 0, $pos + 3);
|
||||
$url = substr($url, $pos + 3);
|
||||
|
||||
if (false !== ($pos = strpos($url, '/'))) {
|
||||
$host = substr($url, 0, $pos);
|
||||
$url = substr($url, $pos);
|
||||
} else {
|
||||
// No path, only host
|
||||
$host = $url;
|
||||
$url = '/';
|
||||
}
|
||||
|
||||
// At this point, we have $scheme, $host and $path
|
||||
$root = $scheme.$host;
|
||||
|
||||
return array($root, $url);
|
||||
}
|
||||
}
|
||||
1340
old.vendor/webmozart/path-util/tests/PathTest.php
Normal file
1340
old.vendor/webmozart/path-util/tests/PathTest.php
Normal file
File diff suppressed because it is too large
Load Diff
179
old.vendor/webmozart/path-util/tests/UrlTest.php
Normal file
179
old.vendor/webmozart/path-util/tests/UrlTest.php
Normal file
@@ -0,0 +1,179 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the webmozart/path-util package.
|
||||
*
|
||||
* (c) Bernhard Schussek <bschussek@gmail.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Webmozart\PathUtil\Tests;
|
||||
|
||||
use Webmozart\PathUtil\Url;
|
||||
|
||||
/**
|
||||
* @since 2.3
|
||||
*
|
||||
* @author Bernhard Schussek <bschussek@gmail.com>
|
||||
* @author Claudio Zizza <claudio@budgegeria.de>
|
||||
*/
|
||||
class UrlTest extends \PHPUnit_Framework_TestCase
|
||||
{
|
||||
/**
|
||||
* @dataProvider provideMakeRelativeTests
|
||||
* @covers Webmozart\PathUtil\Url
|
||||
*/
|
||||
public function testMakeRelative($absolutePath, $basePath, $relativePath)
|
||||
{
|
||||
$host = 'http://example.com';
|
||||
|
||||
$relative = Url::makeRelative($host.$absolutePath, $host.$basePath);
|
||||
$this->assertSame($relativePath, $relative);
|
||||
$relative = Url::makeRelative($absolutePath, $host.$basePath);
|
||||
$this->assertSame($relativePath, $relative);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider provideMakeRelativeIsAlreadyRelativeTests
|
||||
* @covers Webmozart\PathUtil\Url
|
||||
*/
|
||||
public function testMakeRelativeIsAlreadyRelative($absolutePath, $basePath, $relativePath)
|
||||
{
|
||||
$host = 'http://example.com';
|
||||
|
||||
$relative = Url::makeRelative($absolutePath, $host.$basePath);
|
||||
$this->assertSame($relativePath, $relative);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider provideMakeRelativeTests
|
||||
* @covers Webmozart\PathUtil\Url
|
||||
*/
|
||||
public function testMakeRelativeWithFullUrl($absolutePath, $basePath, $relativePath)
|
||||
{
|
||||
$host = 'ftp://user:password@example.com:8080';
|
||||
|
||||
$relative = Url::makeRelative($host.$absolutePath, $host.$basePath);
|
||||
$this->assertSame($relativePath, $relative);
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException \InvalidArgumentException
|
||||
* @expectedExceptionMessage The URL must be a string. Got: array
|
||||
* @covers Webmozart\PathUtil\Url
|
||||
*/
|
||||
public function testMakeRelativeFailsIfInvalidUrl()
|
||||
{
|
||||
Url::makeRelative(array(), 'http://example.com/webmozart/puli');
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException \InvalidArgumentException
|
||||
* @expectedExceptionMessage The base URL must be a string. Got: array
|
||||
* @covers Webmozart\PathUtil\Url
|
||||
*/
|
||||
public function testMakeRelativeFailsIfInvalidBaseUrl()
|
||||
{
|
||||
Url::makeRelative('http://example.com/webmozart/puli/css/style.css', array());
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException \InvalidArgumentException
|
||||
* @expectedExceptionMessage "webmozart/puli" is not an absolute Url.
|
||||
* @covers Webmozart\PathUtil\Url
|
||||
*/
|
||||
public function testMakeRelativeFailsIfBaseUrlNoUrl()
|
||||
{
|
||||
Url::makeRelative('http://example.com/webmozart/puli/css/style.css', 'webmozart/puli');
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException \InvalidArgumentException
|
||||
* @expectedExceptionMessage "" is not an absolute Url.
|
||||
* @covers Webmozart\PathUtil\Url
|
||||
*/
|
||||
public function testMakeRelativeFailsIfBaseUrlEmpty()
|
||||
{
|
||||
Url::makeRelative('http://example.com/webmozart/puli/css/style.css', '');
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException \InvalidArgumentException
|
||||
* @expectedExceptionMessage The base URL must be a string. Got: NULL
|
||||
* @covers Webmozart\PathUtil\Url
|
||||
*/
|
||||
public function testMakeRelativeFailsIfBaseUrlNull()
|
||||
{
|
||||
Url::makeRelative('http://example.com/webmozart/puli/css/style.css', null);
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException \InvalidArgumentException
|
||||
* @expectedExceptionMessage The URL "http://example.com" cannot be made relative to "http://example2.com" since
|
||||
* their host names are different.
|
||||
* @covers Webmozart\PathUtil\Url
|
||||
*/
|
||||
public function testMakeRelativeFailsIfDifferentDomains()
|
||||
{
|
||||
Url::makeRelative('http://example.com/webmozart/puli/css/style.css', 'http://example2.com/webmozart/puli');
|
||||
}
|
||||
|
||||
public function provideMakeRelativeTests()
|
||||
{
|
||||
return array(
|
||||
|
||||
array('/webmozart/puli/css/style.css', '/webmozart/puli', 'css/style.css'),
|
||||
array('/webmozart/puli/css/style.css?key=value&key2=value', '/webmozart/puli', 'css/style.css?key=value&key2=value'),
|
||||
array('/webmozart/puli/css/style.css?key[]=value&key[]=value', '/webmozart/puli', 'css/style.css?key[]=value&key[]=value'),
|
||||
array('/webmozart/css/style.css', '/webmozart/puli', '../css/style.css'),
|
||||
array('/css/style.css', '/webmozart/puli', '../../css/style.css'),
|
||||
array('/', '/', ''),
|
||||
|
||||
// relative to root
|
||||
array('/css/style.css', '/', 'css/style.css'),
|
||||
|
||||
// same sub directories in different base directories
|
||||
array('/puli/css/style.css', '/webmozart/css', '../../puli/css/style.css'),
|
||||
|
||||
array('/webmozart/puli/./css/style.css', '/webmozart/puli', 'css/style.css'),
|
||||
array('/webmozart/puli/../css/style.css', '/webmozart/puli', '../css/style.css'),
|
||||
array('/webmozart/puli/.././css/style.css', '/webmozart/puli', '../css/style.css'),
|
||||
array('/webmozart/puli/./../css/style.css', '/webmozart/puli', '../css/style.css'),
|
||||
array('/webmozart/puli/../../css/style.css', '/webmozart/puli', '../../css/style.css'),
|
||||
array('/webmozart/puli/css/style.css', '/webmozart/./puli', 'css/style.css'),
|
||||
array('/webmozart/puli/css/style.css', '/webmozart/../puli', '../webmozart/puli/css/style.css'),
|
||||
array('/webmozart/puli/css/style.css', '/webmozart/./../puli', '../webmozart/puli/css/style.css'),
|
||||
array('/webmozart/puli/css/style.css', '/webmozart/.././puli', '../webmozart/puli/css/style.css'),
|
||||
array('/webmozart/puli/css/style.css', '/webmozart/../../puli', '../webmozart/puli/css/style.css'),
|
||||
|
||||
// first argument shorter than second
|
||||
array('/css', '/webmozart/puli', '../../css'),
|
||||
|
||||
// second argument shorter than first
|
||||
array('/webmozart/puli', '/css', '../webmozart/puli'),
|
||||
|
||||
array('', '', ''),
|
||||
);
|
||||
}
|
||||
|
||||
public function provideMakeRelativeIsAlreadyRelativeTests()
|
||||
{
|
||||
return array(
|
||||
array('css/style.css', '/webmozart/puli', 'css/style.css'),
|
||||
array('css/style.css', '', 'css/style.css'),
|
||||
array('css/../style.css', '', 'style.css'),
|
||||
array('css/./style.css', '', 'css/style.css'),
|
||||
array('../style.css', '/', 'style.css'),
|
||||
array('./style.css', '/', 'style.css'),
|
||||
array('../../style.css', '/', 'style.css'),
|
||||
array('../../style.css', '', 'style.css'),
|
||||
array('./style.css', '', 'style.css'),
|
||||
array('../style.css', '', 'style.css'),
|
||||
array('./../style.css', '', 'style.css'),
|
||||
array('css/./../style.css', '', 'style.css'),
|
||||
array('css//style.css', '', 'css/style.css'),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user