diff --git a/README.md b/README.md
index 0390224..e96bb0f 100644
--- a/README.md
+++ b/README.md
@@ -210,7 +210,21 @@ Rotate image. Set an angle in degrees and optional color of the uncovered zone a
```
$image->text(string $text, array $options = array(), array &$boundary = array())
```
-Draw text on image. Look for all possible options in the examples below.
+Draw text on image. Possible options:
+- **x**: X-Coordinate of text box starting point.
+- **y**: Y-Coordinate of text box starting point.
+- **width**: Width of text box. Calculated from image size for nulled values.
+- **height**: Height of text box. Calculated from image size for nulled values.
+- **fontsize**: Maximum font size. Will be scaled down if the text doesn't fit box.
+- **color**: Color of text. Can be rgb-array or '#ffffff' format.
+- **lineheight**: Line height of text.
+- **opacity**: Text opacity from 0 to 100.
+- **horizontal**: Horizontal alignment. Can be left/right/center/justify.
+- **vertical**: Vertical alginment. Can be top/center/bottom/justify.
+- **fontpath**: Path to .ttf font file.
+- **debug**: Draws text box rectangle if true.
+
+Use boundary to get actual dimensions of the drawn text box. See detailed examples below.
## Examples
@@ -238,11 +252,11 @@ $image->text(
array(
'x' => 100,
'y' => 100,
- 'width' => 1000, // Use image width if null or unset
- 'height' => 400, // Use image height if null or unset
- 'horizontal' => 'center', // Can be left/right/center
- 'vertical' => 'center', // Can be top/center/bottom
- 'fontpath' => 'fonts/opensans.ttf', // Can only be .ttf
+ 'width' => 1000,
+ 'height' => 400,
+ 'horizontal' => 'center',
+ 'vertical' => 'center',
+ 'fontpath' => 'fonts/opensans.ttf',
'fontsize' => 24,
'lineheight' => 1.75,
'color' => '#ffffff',
@@ -256,6 +270,35 @@ $image->show('jpg', 70);
#### Result
+### Draw and justify multiline text
+```php
+$image = new PosterEditor\PosterEditor();
+$image->make('images/bridge.jpg')->fit(900, 600);
+$image->blackout(70);
+
+$image->text(
+ 'Lorem ipsum dolor d d 4 g sit amet, consectetur adipiscing et, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex eas commodo consequat sdfsdfl', // phpcs:ignore
+ array(
+ 'x' => 100,
+ 'y' => 100,
+ 'width' => 600,
+ 'height' => 400,
+ 'horizontal' => 'justify',
+ 'vertical' => 'justify',
+ 'fontpath' => 'fonts/opensans.ttf',
+ 'fontsize' => 20,
+ 'lineheight' => 1.5,
+ 'color' => '#ffffff',
+ 'opacity' => 1,
+ 'debug' => true,
+ )
+);
+
+$image->show('png');
+```
+#### Result
+
+
### Use boundaries to draw one title right after another
```php
$image = new PosterEditor\PosterEditor();
diff --git a/composer.json b/composer.json
index f80d6e9..70b1a5b 100644
--- a/composer.json
+++ b/composer.json
@@ -1,6 +1,6 @@
{
"name": "antonlukin/poster-editor",
- "version": "5.7",
+ "version": "5.8",
"description": "Wrapper for PHP's GD Library for easy image manipulation",
"keywords": ["php", "image", "text", "gd"],
"homepage": "https://github.com/antonlukin/poster-editor",
@@ -26,5 +26,10 @@
"files": [
"src/PosterEditor.php"
]
+ },
+ "config": {
+ "allow-plugins": {
+ "dealerdirect/phpcodesniffer-composer-installer": true
+ }
}
}
diff --git a/composer.lock b/composer.lock
index c7b3fb8..ee893b5 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,3390 +4,32 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "df32342a7461f17df20169c7fbdeea53",
- "packages": [
- {
- "name": "cilex/cilex",
- "version": "1.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/Cilex/Cilex.git",
- "reference": "7acd965a609a56d0345e8b6071c261fbdb926cb5"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Cilex/Cilex/zipball/7acd965a609a56d0345e8b6071c261fbdb926cb5",
- "reference": "7acd965a609a56d0345e8b6071c261fbdb926cb5",
- "shasum": ""
- },
- "require": {
- "cilex/console-service-provider": "1.*",
- "php": ">=5.3.3",
- "pimple/pimple": "~1.0",
- "symfony/finder": "~2.1",
- "symfony/process": "~2.1"
- },
- "require-dev": {
- "phpunit/phpunit": "3.7.*",
- "symfony/validator": "~2.1"
- },
- "suggest": {
- "monolog/monolog": ">=1.0.0",
- "symfony/validator": ">=1.0.0",
- "symfony/yaml": ">=1.0.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "Cilex": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Mike van Riel",
- "email": "mike.vanriel@naenius.com"
- }
- ],
- "description": "The PHP micro-framework for Command line tools based on the Symfony2 Components",
- "homepage": "http://cilex.github.com",
- "keywords": [
- "cli",
- "microframework"
- ],
- "support": {
- "issues": "https://github.com/Cilex/Cilex/issues",
- "source": "https://github.com/Cilex/Cilex/tree/master"
- },
- "time": "2014-03-29T14:03:13+00:00"
- },
- {
- "name": "cilex/console-service-provider",
- "version": "1.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/Cilex/console-service-provider.git",
- "reference": "25ee3d1875243d38e1a3448ff94bdf944f70d24e"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Cilex/console-service-provider/zipball/25ee3d1875243d38e1a3448ff94bdf944f70d24e",
- "reference": "25ee3d1875243d38e1a3448ff94bdf944f70d24e",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.3",
- "pimple/pimple": "1.*@dev",
- "symfony/console": "~2.1"
- },
- "require-dev": {
- "cilex/cilex": "1.*@dev",
- "silex/silex": "1.*@dev"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "Cilex\\Provider\\Console": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Beau Simensen",
- "email": "beau@dflydev.com",
- "homepage": "http://beausimensen.com"
- },
- {
- "name": "Mike van Riel",
- "email": "mike.vanriel@naenius.com"
- }
- ],
- "description": "Console Service Provider",
- "keywords": [
- "cilex",
- "console",
- "pimple",
- "service-provider",
- "silex"
- ],
- "support": {
- "issues": "https://github.com/Cilex/console-service-provider/issues",
- "source": "https://github.com/Cilex/console-service-provider/tree/master"
- },
- "time": "2012-12-19T10:50:58+00:00"
- },
- {
- "name": "composer/ca-bundle",
- "version": "1.2.10",
- "source": {
- "type": "git",
- "url": "https://github.com/composer/ca-bundle.git",
- "reference": "9fdb22c2e97a614657716178093cd1da90a64aa8"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/composer/ca-bundle/zipball/9fdb22c2e97a614657716178093cd1da90a64aa8",
- "reference": "9fdb22c2e97a614657716178093cd1da90a64aa8",
- "shasum": ""
- },
- "require": {
- "ext-openssl": "*",
- "ext-pcre": "*",
- "php": "^5.3.2 || ^7.0 || ^8.0"
- },
- "require-dev": {
- "phpstan/phpstan": "^0.12.55",
- "psr/log": "^1.0",
- "symfony/phpunit-bridge": "^4.2 || ^5",
- "symfony/process": "^2.5 || ^3.0 || ^4.0 || ^5.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Composer\\CaBundle\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Jordi Boggiano",
- "email": "j.boggiano@seld.be",
- "homepage": "http://seld.be"
- }
- ],
- "description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.",
- "keywords": [
- "cabundle",
- "cacert",
- "certificate",
- "ssl",
- "tls"
- ],
- "support": {
- "irc": "irc://irc.freenode.org/composer",
- "issues": "https://github.com/composer/ca-bundle/issues",
- "source": "https://github.com/composer/ca-bundle/tree/1.2.10"
- },
- "funding": [
- {
- "url": "https://packagist.com",
- "type": "custom"
- },
- {
- "url": "https://github.com/composer",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/composer/composer",
- "type": "tidelift"
- }
- ],
- "time": "2021-06-07T13:58:28+00:00"
- },
- {
- "name": "container-interop/container-interop",
- "version": "1.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/container-interop/container-interop.git",
- "reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/container-interop/container-interop/zipball/79cbf1341c22ec75643d841642dd5d6acd83bdb8",
- "reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8",
- "shasum": ""
- },
- "require": {
- "psr/container": "^1.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Interop\\Container\\": "src/Interop/Container/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "Promoting the interoperability of container objects (DIC, SL, etc.)",
- "homepage": "https://github.com/container-interop/container-interop",
- "support": {
- "issues": "https://github.com/container-interop/container-interop/issues",
- "source": "https://github.com/container-interop/container-interop/tree/master"
- },
- "abandoned": "psr/container",
- "time": "2017-02-14T19:40:03+00:00"
- },
- {
- "name": "cvuorinen/phpdoc-markdown-public",
- "version": "0.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/cvuorinen/phpdoc-markdown-public.git",
- "reference": "c6751725aa8a26514992080f25d024c06beab71a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/cvuorinen/phpdoc-markdown-public/zipball/c6751725aa8a26514992080f25d024c06beab71a",
- "reference": "c6751725aa8a26514992080f25d024c06beab71a",
- "shasum": ""
- },
- "require": {
- "phpdocumentor/phpdocumentor": "~2.8"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Cvuorinen\\PhpdocMarkdownPublic\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Carl Vuorinen",
- "email": "carl.vuorinen@gmail.com"
- }
- ],
- "description": "phpDocumentor template that generates Markdown documentation of the public API",
- "homepage": "https://github.com/cvuorinen/phpdoc-markdown-public",
- "keywords": [
- "documentation",
- "markdown",
- "phpDocumentor",
- "phpdoc"
- ],
- "support": {
- "issues": "https://github.com/cvuorinen/phpdoc-markdown-public/issues",
- "source": "https://github.com/cvuorinen/phpdoc-markdown-public/tree/master"
- },
- "time": "2018-01-03T08:46:38+00:00"
- },
- {
- "name": "doctrine/annotations",
- "version": "1.13.1",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/annotations.git",
- "reference": "e6e7b7d5b45a2f2abc5460cc6396480b2b1d321f"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/annotations/zipball/e6e7b7d5b45a2f2abc5460cc6396480b2b1d321f",
- "reference": "e6e7b7d5b45a2f2abc5460cc6396480b2b1d321f",
- "shasum": ""
- },
- "require": {
- "doctrine/lexer": "1.*",
- "ext-tokenizer": "*",
- "php": "^7.1 || ^8.0",
- "psr/cache": "^1 || ^2 || ^3"
- },
- "require-dev": {
- "doctrine/cache": "^1.11 || ^2.0",
- "doctrine/coding-standard": "^6.0 || ^8.1",
- "phpstan/phpstan": "^0.12.20",
- "phpunit/phpunit": "^7.5 || ^8.0 || ^9.1.5",
- "symfony/cache": "^4.4 || ^5.2"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
- {
- "name": "Roman Borschel",
- "email": "roman@code-factory.org"
- },
- {
- "name": "Benjamin Eberlei",
- "email": "kontakt@beberlei.de"
- },
- {
- "name": "Jonathan Wage",
- "email": "jonwage@gmail.com"
- },
- {
- "name": "Johannes Schmitt",
- "email": "schmittjoh@gmail.com"
- }
- ],
- "description": "Docblock Annotations Parser",
- "homepage": "https://www.doctrine-project.org/projects/annotations.html",
- "keywords": [
- "annotations",
- "docblock",
- "parser"
- ],
- "support": {
- "issues": "https://github.com/doctrine/annotations/issues",
- "source": "https://github.com/doctrine/annotations/tree/1.13.1"
- },
- "time": "2021-05-16T18:07:53+00:00"
- },
- {
- "name": "doctrine/instantiator",
- "version": "1.4.0",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/instantiator.git",
- "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b",
- "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b",
- "shasum": ""
- },
- "require": {
- "php": "^7.1 || ^8.0"
- },
- "require-dev": {
- "doctrine/coding-standard": "^8.0",
- "ext-pdo": "*",
- "ext-phar": "*",
- "phpbench/phpbench": "^0.13 || 1.0.0-alpha2",
- "phpstan/phpstan": "^0.12",
- "phpstan/phpstan-phpunit": "^0.12",
- "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Marco Pivetta",
- "email": "ocramius@gmail.com",
- "homepage": "https://ocramius.github.io/"
- }
- ],
- "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
- "homepage": "https://www.doctrine-project.org/projects/instantiator.html",
- "keywords": [
- "constructor",
- "instantiate"
- ],
- "support": {
- "issues": "https://github.com/doctrine/instantiator/issues",
- "source": "https://github.com/doctrine/instantiator/tree/1.4.0"
- },
- "funding": [
- {
- "url": "https://www.doctrine-project.org/sponsorship.html",
- "type": "custom"
- },
- {
- "url": "https://www.patreon.com/phpdoctrine",
- "type": "patreon"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator",
- "type": "tidelift"
- }
- ],
- "time": "2020-11-10T18:47:58+00:00"
- },
- {
- "name": "doctrine/lexer",
- "version": "1.2.1",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/lexer.git",
- "reference": "e864bbf5904cb8f5bb334f99209b48018522f042"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/lexer/zipball/e864bbf5904cb8f5bb334f99209b48018522f042",
- "reference": "e864bbf5904cb8f5bb334f99209b48018522f042",
- "shasum": ""
- },
- "require": {
- "php": "^7.2 || ^8.0"
- },
- "require-dev": {
- "doctrine/coding-standard": "^6.0",
- "phpstan/phpstan": "^0.11.8",
- "phpunit/phpunit": "^8.2"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.2.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
- {
- "name": "Roman Borschel",
- "email": "roman@code-factory.org"
- },
- {
- "name": "Johannes Schmitt",
- "email": "schmittjoh@gmail.com"
- }
- ],
- "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.",
- "homepage": "https://www.doctrine-project.org/projects/lexer.html",
- "keywords": [
- "annotations",
- "docblock",
- "lexer",
- "parser",
- "php"
- ],
- "support": {
- "issues": "https://github.com/doctrine/lexer/issues",
- "source": "https://github.com/doctrine/lexer/tree/1.2.1"
- },
- "funding": [
- {
- "url": "https://www.doctrine-project.org/sponsorship.html",
- "type": "custom"
- },
- {
- "url": "https://www.patreon.com/phpdoctrine",
- "type": "patreon"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer",
- "type": "tidelift"
- }
- ],
- "time": "2020-05-25T17:44:05+00:00"
- },
- {
- "name": "erusev/parsedown",
- "version": "1.7.4",
- "source": {
- "type": "git",
- "url": "https://github.com/erusev/parsedown.git",
- "reference": "cb17b6477dfff935958ba01325f2e8a2bfa6dab3"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/erusev/parsedown/zipball/cb17b6477dfff935958ba01325f2e8a2bfa6dab3",
- "reference": "cb17b6477dfff935958ba01325f2e8a2bfa6dab3",
- "shasum": ""
- },
- "require": {
- "ext-mbstring": "*",
- "php": ">=5.3.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^4.8.35"
- },
- "type": "library",
- "autoload": {
- "psr-0": {
- "Parsedown": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Emanuil Rusev",
- "email": "hello@erusev.com",
- "homepage": "http://erusev.com"
- }
- ],
- "description": "Parser for Markdown.",
- "homepage": "http://parsedown.org",
- "keywords": [
- "markdown",
- "parser"
- ],
- "support": {
- "issues": "https://github.com/erusev/parsedown/issues",
- "source": "https://github.com/erusev/parsedown/tree/1.7.x"
- },
- "time": "2019-12-30T22:54:17+00:00"
- },
- {
- "name": "jms/metadata",
- "version": "1.7.0",
- "source": {
- "type": "git",
- "url": "https://github.com/schmittjoh/metadata.git",
- "reference": "e5854ab1aa643623dc64adde718a8eec32b957a8"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/schmittjoh/metadata/zipball/e5854ab1aa643623dc64adde718a8eec32b957a8",
- "reference": "e5854ab1aa643623dc64adde718a8eec32b957a8",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.0"
- },
- "require-dev": {
- "doctrine/cache": "~1.0",
- "symfony/cache": "~3.1"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.5.x-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "Metadata\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Asmir Mustafic",
- "email": "goetas@gmail.com"
- },
- {
- "name": "Johannes M. Schmitt",
- "email": "schmittjoh@gmail.com"
- }
- ],
- "description": "Class/method/property metadata management in PHP",
- "keywords": [
- "annotations",
- "metadata",
- "xml",
- "yaml"
- ],
- "support": {
- "issues": "https://github.com/schmittjoh/metadata/issues",
- "source": "https://github.com/schmittjoh/metadata/tree/1.x"
- },
- "time": "2018-10-26T12:40:10+00:00"
- },
- {
- "name": "jms/parser-lib",
- "version": "1.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/schmittjoh/parser-lib.git",
- "reference": "c509473bc1b4866415627af0e1c6cc8ac97fa51d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/schmittjoh/parser-lib/zipball/c509473bc1b4866415627af0e1c6cc8ac97fa51d",
- "reference": "c509473bc1b4866415627af0e1c6cc8ac97fa51d",
- "shasum": ""
- },
- "require": {
- "phpoption/phpoption": ">=0.9,<2.0-dev"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "JMS\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "Apache2"
- ],
- "description": "A library for easily creating recursive-descent parsers.",
- "support": {
- "issues": "https://github.com/schmittjoh/parser-lib/issues",
- "source": "https://github.com/schmittjoh/parser-lib/tree/1.0.0"
- },
- "time": "2012-11-18T18:08:43+00:00"
- },
- {
- "name": "jms/serializer",
- "version": "1.7.1",
- "source": {
- "type": "git",
- "url": "https://github.com/schmittjoh/serializer.git",
- "reference": "4fad8bbbe76e05de3b79ffa3db027058ed3813ff"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/schmittjoh/serializer/zipball/4fad8bbbe76e05de3b79ffa3db027058ed3813ff",
- "reference": "4fad8bbbe76e05de3b79ffa3db027058ed3813ff",
- "shasum": ""
- },
- "require": {
- "doctrine/annotations": "^1.0",
- "doctrine/instantiator": "^1.0.3",
- "jms/metadata": "~1.1",
- "jms/parser-lib": "1.*",
- "php": ">=5.5.0",
- "phpcollection/phpcollection": "~0.1",
- "phpoption/phpoption": "^1.1"
- },
- "conflict": {
- "jms/serializer-bundle": "<1.2.1",
- "twig/twig": "<1.12"
- },
- "require-dev": {
- "doctrine/orm": "~2.1",
- "doctrine/phpcr-odm": "^1.3|^2.0",
- "ext-pdo_sqlite": "*",
- "jackalope/jackalope-doctrine-dbal": "^1.1.5",
- "phpunit/phpunit": "^4.8|^5.0",
- "propel/propel1": "~1.7",
- "symfony/expression-language": "^2.6|^3.0",
- "symfony/filesystem": "^2.1",
- "symfony/form": "~2.1|^3.0",
- "symfony/translation": "^2.1|^3.0",
- "symfony/validator": "^2.2|^3.0",
- "symfony/yaml": "^2.1|^3.0",
- "twig/twig": "~1.12|~2.0"
- },
- "suggest": {
- "doctrine/cache": "Required if you like to use cache functionality.",
- "doctrine/collections": "Required if you like to use doctrine collection types as ArrayCollection.",
- "symfony/yaml": "Required if you'd like to serialize data to YAML format."
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.8-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "JMS\\Serializer": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "Apache-2.0"
- ],
- "authors": [
- {
- "name": "Johannes M. Schmitt",
- "email": "schmittjoh@gmail.com"
- }
- ],
- "description": "Library for (de-)serializing data of any complexity; supports XML, JSON, and YAML.",
- "homepage": "http://jmsyst.com/libs/serializer",
- "keywords": [
- "deserialization",
- "jaxb",
- "json",
- "serialization",
- "xml"
- ],
- "support": {
- "issues": "https://github.com/schmittjoh/serializer/issues",
- "source": "https://github.com/schmittjoh/serializer/tree/master"
- },
- "time": "2017-05-15T08:35:42+00:00"
- },
- {
- "name": "monolog/monolog",
- "version": "1.26.1",
- "source": {
- "type": "git",
- "url": "https://github.com/Seldaek/monolog.git",
- "reference": "c6b00f05152ae2c9b04a448f99c7590beb6042f5"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Seldaek/monolog/zipball/c6b00f05152ae2c9b04a448f99c7590beb6042f5",
- "reference": "c6b00f05152ae2c9b04a448f99c7590beb6042f5",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.0",
- "psr/log": "~1.0"
- },
- "provide": {
- "psr/log-implementation": "1.0.0"
- },
- "require-dev": {
- "aws/aws-sdk-php": "^2.4.9 || ^3.0",
- "doctrine/couchdb": "~1.0@dev",
- "graylog2/gelf-php": "~1.0",
- "php-amqplib/php-amqplib": "~2.4",
- "php-console/php-console": "^3.1.3",
- "phpstan/phpstan": "^0.12.59",
- "phpunit/phpunit": "~4.5",
- "ruflin/elastica": ">=0.90 <3.0",
- "sentry/sentry": "^0.13",
- "swiftmailer/swiftmailer": "^5.3|^6.0"
- },
- "suggest": {
- "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
- "doctrine/couchdb": "Allow sending log messages to a CouchDB server",
- "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)",
- "ext-mongo": "Allow sending log messages to a MongoDB server",
- "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server",
- "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver",
- "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib",
- "php-console/php-console": "Allow sending log messages to Google Chrome",
- "rollbar/rollbar": "Allow sending log messages to Rollbar",
- "ruflin/elastica": "Allow sending log messages to an Elastic Search server",
- "sentry/sentry": "Allow sending log messages to a Sentry server"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Monolog\\": "src/Monolog"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Jordi Boggiano",
- "email": "j.boggiano@seld.be",
- "homepage": "http://seld.be"
- }
- ],
- "description": "Sends your logs to files, sockets, inboxes, databases and various web services",
- "homepage": "http://github.com/Seldaek/monolog",
- "keywords": [
- "log",
- "logging",
- "psr-3"
- ],
- "support": {
- "issues": "https://github.com/Seldaek/monolog/issues",
- "source": "https://github.com/Seldaek/monolog/tree/1.26.1"
- },
- "funding": [
- {
- "url": "https://github.com/Seldaek",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/monolog/monolog",
- "type": "tidelift"
- }
- ],
- "time": "2021-05-28T08:32:12+00:00"
- },
- {
- "name": "nikic/php-parser",
- "version": "v1.4.1",
- "source": {
- "type": "git",
- "url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "f78af2c9c86107aa1a34cd1dbb5bbe9eeb0d9f51"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/f78af2c9c86107aa1a34cd1dbb5bbe9eeb0d9f51",
- "reference": "f78af2c9c86107aa1a34cd1dbb5bbe9eeb0d9f51",
- "shasum": ""
- },
- "require": {
- "ext-tokenizer": "*",
- "php": ">=5.3"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.4-dev"
- }
- },
- "autoload": {
- "files": [
- "lib/bootstrap.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Nikita Popov"
- }
- ],
- "description": "A PHP parser written in PHP",
- "keywords": [
- "parser",
- "php"
- ],
- "support": {
- "issues": "https://github.com/nikic/PHP-Parser/issues",
- "source": "https://github.com/nikic/PHP-Parser/tree/1.x"
- },
- "time": "2015-09-19T14:15:08+00:00"
- },
- {
- "name": "padraic/humbug_get_contents",
- "version": "1.1.2",
- "source": {
- "type": "git",
- "url": "https://github.com/humbug/file_get_contents.git",
- "reference": "dcb086060c9dd6b2f51d8f7a895500307110b7a7"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/humbug/file_get_contents/zipball/dcb086060c9dd6b2f51d8f7a895500307110b7a7",
- "reference": "dcb086060c9dd6b2f51d8f7a895500307110b7a7",
- "shasum": ""
- },
- "require": {
- "composer/ca-bundle": "^1.0",
- "ext-openssl": "*",
- "php": "^5.3 || ^7.0 || ^7.1 || ^7.2"
- },
- "require-dev": {
- "bamarni/composer-bin-plugin": "^1.1",
- "mikey179/vfsstream": "^1.6",
- "phpunit/phpunit": "^4.8 || ^5.7 || ^6.5"
- },
- "type": "library",
- "extra": {
- "bamarni-bin": {
- "bin-links": false
- },
- "branch-alias": {
- "dev-master": "2.0-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Humbug\\": "src/"
- },
- "files": [
- "src/function.php",
- "src/functions.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Pádraic Brady",
- "email": "padraic.brady@gmail.com",
- "homepage": "http://blog.astrumfutura.com"
- },
- {
- "name": "Théo Fidry",
- "email": "theo.fidry@gmail.com"
- }
- ],
- "description": "Secure wrapper for accessing HTTPS resources with file_get_contents for PHP 5.3+",
- "homepage": "https://github.com/padraic/file_get_contents",
- "keywords": [
- "download",
- "file_get_contents",
- "http",
- "https",
- "ssl",
- "tls"
- ],
- "support": {
- "issues": "https://github.com/humbug/file_get_contents/issues",
- "source": "https://github.com/humbug/file_get_contents/tree/master"
- },
- "time": "2018-02-12T18:47:17+00:00"
- },
- {
- "name": "padraic/phar-updater",
- "version": "v1.0.6",
- "source": {
- "type": "git",
- "url": "https://github.com/humbug/phar-updater.git",
- "reference": "d01d3b8f26e541ac9b9eeba1e18d005d852f7ff1"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/humbug/phar-updater/zipball/d01d3b8f26e541ac9b9eeba1e18d005d852f7ff1",
- "reference": "d01d3b8f26e541ac9b9eeba1e18d005d852f7ff1",
- "shasum": ""
- },
- "require": {
- "padraic/humbug_get_contents": "^1.0",
- "php": ">=5.3.3"
- },
- "require-dev": {
- "phpunit/phpunit": "~4.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Humbug\\SelfUpdate\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Pádraic Brady",
- "email": "padraic.brady@gmail.com",
- "homepage": "http://blog.astrumfutura.com"
- }
- ],
- "description": "A thing to make PHAR self-updating easy and secure.",
- "keywords": [
- "humbug",
- "phar",
- "self-update",
- "update"
- ],
- "support": {
- "issues": "https://github.com/humbug/phar-updater/issues",
- "source": "https://github.com/humbug/phar-updater/tree/1.0"
- },
- "abandoned": true,
- "time": "2018-03-30T12:52:15+00:00"
- },
- {
- "name": "phpcollection/phpcollection",
- "version": "0.5.0",
- "source": {
- "type": "git",
- "url": "https://github.com/schmittjoh/php-collection.git",
- "reference": "f2bcff45c0da7c27991bbc1f90f47c4b7fb434a6"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/schmittjoh/php-collection/zipball/f2bcff45c0da7c27991bbc1f90f47c4b7fb434a6",
- "reference": "f2bcff45c0da7c27991bbc1f90f47c4b7fb434a6",
- "shasum": ""
- },
- "require": {
- "phpoption/phpoption": "1.*"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "0.4-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "PhpCollection": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "Apache2"
- ],
- "authors": [
- {
- "name": "Johannes M. Schmitt",
- "email": "schmittjoh@gmail.com"
- }
- ],
- "description": "General-Purpose Collection Library for PHP",
- "keywords": [
- "collection",
- "list",
- "map",
- "sequence",
- "set"
- ],
- "support": {
- "issues": "https://github.com/schmittjoh/php-collection/issues",
- "source": "https://github.com/schmittjoh/php-collection/tree/master"
- },
- "time": "2015-05-17T12:39:23+00:00"
- },
- {
- "name": "phpdocumentor/fileset",
- "version": "1.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/phpDocumentor/Fileset.git",
- "reference": "bfa78d8fa9763dfce6d0e5d3730c1d8ab25d34b0"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/Fileset/zipball/bfa78d8fa9763dfce6d0e5d3730c1d8ab25d34b0",
- "reference": "bfa78d8fa9763dfce6d0e5d3730c1d8ab25d34b0",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.3",
- "symfony/finder": "~2.1"
- },
- "require-dev": {
- "phpunit/phpunit": "~3.7"
- },
- "type": "library",
- "autoload": {
- "psr-0": {
- "phpDocumentor": [
- "src/",
- "tests/unit/"
- ]
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "Fileset component for collecting a set of files given directories and file paths",
- "homepage": "http://www.phpdoc.org",
- "keywords": [
- "files",
- "fileset",
- "phpdoc"
- ],
- "support": {
- "issues": "https://github.com/phpDocumentor/Fileset/issues",
- "source": "https://github.com/phpDocumentor/Fileset/tree/master"
- },
- "time": "2013-08-06T21:07:42+00:00"
- },
- {
- "name": "phpdocumentor/graphviz",
- "version": "1.0.4",
- "source": {
- "type": "git",
- "url": "https://github.com/phpDocumentor/GraphViz.git",
- "reference": "a906a90a9f230535f25ea31caf81b2323956283f"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/GraphViz/zipball/a906a90a9f230535f25ea31caf81b2323956283f",
- "reference": "a906a90a9f230535f25ea31caf81b2323956283f",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.3"
- },
- "require-dev": {
- "phpunit/phpunit": "~4.0"
- },
- "type": "library",
- "autoload": {
- "psr-0": {
- "phpDocumentor": [
- "src/",
- "tests/unit"
- ]
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Mike van Riel",
- "email": "mike.vanriel@naenius.com"
- }
- ],
- "support": {
- "issues": "https://github.com/phpDocumentor/GraphViz/issues",
- "source": "https://github.com/phpDocumentor/GraphViz/tree/master"
- },
- "time": "2016-02-02T13:00:08+00:00"
- },
- {
- "name": "phpdocumentor/phpdocumentor",
- "version": "v2.9.1",
- "source": {
- "type": "git",
- "url": "https://github.com/phpDocumentor/phpDocumentor.git",
- "reference": "2e4f981a55ebe6f5db592d7da892d13d5b3c7816"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/phpDocumentor/zipball/2e4f981a55ebe6f5db592d7da892d13d5b3c7816",
- "reference": "2e4f981a55ebe6f5db592d7da892d13d5b3c7816",
- "shasum": ""
- },
- "require": {
- "cilex/cilex": "~1.0",
- "erusev/parsedown": "~1.0",
- "jms/serializer": ">=0.12 < 1.8.0",
- "monolog/monolog": "~1.6",
- "padraic/phar-updater": "^1.0",
- "php": ">=5.3.3",
- "phpdocumentor/fileset": "~1.0",
- "phpdocumentor/graphviz": "~1.0",
- "phpdocumentor/reflection": "^3.0",
- "phpdocumentor/reflection-docblock": "~2.0",
- "symfony/config": "~2.3",
- "symfony/console": "~2.3",
- "symfony/event-dispatcher": "~2.1",
- "symfony/process": "~2.0",
- "symfony/stopwatch": "~2.3",
- "symfony/validator": "~2.2",
- "twig/twig": "~1.3",
- "webmozart/assert": "^1.2",
- "zendframework/zend-cache": "~2.1",
- "zendframework/zend-config": "~2.1",
- "zendframework/zend-filter": "~2.1",
- "zendframework/zend-i18n": "~2.1",
- "zendframework/zend-serializer": "~2.1",
- "zendframework/zend-servicemanager": "~2.1",
- "zendframework/zend-stdlib": "~2.1",
- "zetacomponents/document": ">=1.3.1"
- },
- "require-dev": {
- "behat/behat": "^3.0",
- "mikey179/vfsstream": "~1.2",
- "mockery/mockery": "^0.9@dev",
- "phpunit/phpunit": "^4.0",
- "squizlabs/php_codesniffer": "^1.4",
- "symfony/expression-language": "^2.4"
- },
- "suggest": {
- "ext-twig": "Enabling the twig extension improves the generation of twig based templates.",
- "ext-xslcache": "Enabling the XSLCache extension improves the generation of xml based templates."
- },
- "bin": [
- "bin/phpdoc.php",
- "bin/phpdoc"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-develop": "2.9-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "phpDocumentor": [
- "src/",
- "tests/unit/"
- ],
- "Cilex\\Provider": [
- "src/"
- ]
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "Documentation Generator for PHP",
- "homepage": "http://www.phpdoc.org",
- "keywords": [
- "api",
- "application",
- "dga",
- "documentation",
- "phpdoc"
- ],
- "support": {
- "issues": "https://github.com/phpDocumentor/phpDocumentor/issues",
- "source": "https://github.com/phpDocumentor/phpDocumentor/tree/v2.9.1"
- },
- "time": "2020-01-12T19:44:16+00:00"
- },
- {
- "name": "phpdocumentor/reflection",
- "version": "3.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/phpDocumentor/Reflection.git",
- "reference": "793bfd92d9a0fc96ae9608fb3e947c3f59fb3a0d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/Reflection/zipball/793bfd92d9a0fc96ae9608fb3e947c3f59fb3a0d",
- "reference": "793bfd92d9a0fc96ae9608fb3e947c3f59fb3a0d",
- "shasum": ""
- },
- "require": {
- "nikic/php-parser": "^1.0",
- "php": ">=5.3.3",
- "phpdocumentor/reflection-docblock": "~2.0",
- "psr/log": "~1.0"
- },
- "require-dev": {
- "behat/behat": "~2.4",
- "mockery/mockery": "~0.8",
- "phpunit/phpunit": "~4.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "phpDocumentor": [
- "src/",
- "tests/unit/",
- "tests/mocks/"
- ]
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "Reflection library to do Static Analysis for PHP Projects",
- "homepage": "http://www.phpdoc.org",
- "keywords": [
- "phpDocumentor",
- "phpdoc",
- "reflection",
- "static analysis"
- ],
- "support": {
- "issues": "https://github.com/phpDocumentor/Reflection/issues",
- "source": "https://github.com/phpDocumentor/Reflection/tree/master"
- },
- "time": "2016-05-21T08:42:32+00:00"
- },
- {
- "name": "phpdocumentor/reflection-docblock",
- "version": "2.0.5",
- "source": {
- "type": "git",
- "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
- "reference": "e6a969a640b00d8daa3c66518b0405fb41ae0c4b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/e6a969a640b00d8daa3c66518b0405fb41ae0c4b",
- "reference": "e6a969a640b00d8daa3c66518b0405fb41ae0c4b",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.3"
- },
- "require-dev": {
- "phpunit/phpunit": "~4.0"
- },
- "suggest": {
- "dflydev/markdown": "~1.0",
- "erusev/parsedown": "~1.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.0.x-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "phpDocumentor": [
- "src/"
- ]
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Mike van Riel",
- "email": "mike.vanriel@naenius.com"
- }
- ],
- "support": {
- "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
- "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/release/2.x"
- },
- "time": "2016-01-25T08:17:30+00:00"
- },
- {
- "name": "phpoption/phpoption",
- "version": "1.7.5",
- "source": {
- "type": "git",
- "url": "https://github.com/schmittjoh/php-option.git",
- "reference": "994ecccd8f3283ecf5ac33254543eb0ac946d525"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/994ecccd8f3283ecf5ac33254543eb0ac946d525",
- "reference": "994ecccd8f3283ecf5ac33254543eb0ac946d525",
- "shasum": ""
- },
- "require": {
- "php": "^5.5.9 || ^7.0 || ^8.0"
- },
- "require-dev": {
- "bamarni/composer-bin-plugin": "^1.4.1",
- "phpunit/phpunit": "^4.8.35 || ^5.7.27 || ^6.5.6 || ^7.0 || ^8.0 || ^9.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.7-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "PhpOption\\": "src/PhpOption/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "Apache-2.0"
- ],
- "authors": [
- {
- "name": "Johannes M. Schmitt",
- "email": "schmittjoh@gmail.com"
- },
- {
- "name": "Graham Campbell",
- "email": "graham@alt-three.com"
- }
- ],
- "description": "Option Type for PHP",
- "keywords": [
- "language",
- "option",
- "php",
- "type"
- ],
- "support": {
- "issues": "https://github.com/schmittjoh/php-option/issues",
- "source": "https://github.com/schmittjoh/php-option/tree/1.7.5"
- },
- "funding": [
- {
- "url": "https://github.com/GrahamCampbell",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/phpoption/phpoption",
- "type": "tidelift"
- }
- ],
- "time": "2020-07-20T17:29:33+00:00"
- },
- {
- "name": "pimple/pimple",
- "version": "v1.1.1",
- "source": {
- "type": "git",
- "url": "https://github.com/silexphp/Pimple.git",
- "reference": "2019c145fe393923f3441b23f29bbdfaa5c58c4d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/silexphp/Pimple/zipball/2019c145fe393923f3441b23f29bbdfaa5c58c4d",
- "reference": "2019c145fe393923f3441b23f29bbdfaa5c58c4d",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.1.x-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "Pimple": "lib/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- }
- ],
- "description": "Pimple is a simple Dependency Injection Container for PHP 5.3",
- "homepage": "http://pimple.sensiolabs.org",
- "keywords": [
- "container",
- "dependency injection"
- ],
- "support": {
- "issues": "https://github.com/silexphp/Pimple/issues",
- "source": "https://github.com/silexphp/Pimple/tree/v1.1.1"
- },
- "time": "2013-11-22T08:30:29+00:00"
- },
- {
- "name": "psr/cache",
- "version": "1.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/cache.git",
- "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8",
- "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Psr\\Cache\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
- }
- ],
- "description": "Common interface for caching libraries",
- "keywords": [
- "cache",
- "psr",
- "psr-6"
- ],
- "support": {
- "source": "https://github.com/php-fig/cache/tree/master"
- },
- "time": "2016-08-06T20:24:11+00:00"
- },
- {
- "name": "psr/container",
- "version": "1.1.1",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/container.git",
- "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf",
- "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Psr\\Container\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "https://www.php-fig.org/"
- }
- ],
- "description": "Common Container Interface (PHP FIG PSR-11)",
- "homepage": "https://github.com/php-fig/container",
- "keywords": [
- "PSR-11",
- "container",
- "container-interface",
- "container-interop",
- "psr"
- ],
- "support": {
- "issues": "https://github.com/php-fig/container/issues",
- "source": "https://github.com/php-fig/container/tree/1.1.1"
- },
- "time": "2021-03-05T17:36:06+00:00"
- },
- {
- "name": "psr/log",
- "version": "1.1.4",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/log.git",
- "reference": "d49695b909c3b7628b6289db5479a1c204601f11"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11",
- "reference": "d49695b909c3b7628b6289db5479a1c204601f11",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.1.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Psr\\Log\\": "Psr/Log/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "https://www.php-fig.org/"
- }
- ],
- "description": "Common interface for logging libraries",
- "homepage": "https://github.com/php-fig/log",
- "keywords": [
- "log",
- "psr",
- "psr-3"
- ],
- "support": {
- "source": "https://github.com/php-fig/log/tree/1.1.4"
- },
- "time": "2021-05-03T11:20:27+00:00"
- },
- {
- "name": "psr/simple-cache",
- "version": "1.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/simple-cache.git",
- "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
- "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Psr\\SimpleCache\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
- }
- ],
- "description": "Common interfaces for simple caching",
- "keywords": [
- "cache",
- "caching",
- "psr",
- "psr-16",
- "simple-cache"
- ],
- "support": {
- "source": "https://github.com/php-fig/simple-cache/tree/master"
- },
- "time": "2017-10-23T01:57:42+00:00"
- },
- {
- "name": "symfony/config",
- "version": "v2.8.52",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/config.git",
- "reference": "7dd5f5040dc04c118d057fb5886563963eb70011"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/config/zipball/7dd5f5040dc04c118d057fb5886563963eb70011",
- "reference": "7dd5f5040dc04c118d057fb5886563963eb70011",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.9",
- "symfony/filesystem": "~2.3|~3.0.0",
- "symfony/polyfill-ctype": "~1.8"
- },
- "require-dev": {
- "symfony/yaml": "~2.7|~3.0.0"
- },
- "suggest": {
- "symfony/yaml": "To use the yaml reference dumper"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.8-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Config\\": ""
- },
- "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 Config Component",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/config/tree/v2.8.50"
- },
- "time": "2018-11-26T09:38:12+00:00"
- },
- {
- "name": "symfony/console",
- "version": "v2.8.52",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/console.git",
- "reference": "cbcf4b5e233af15cd2bbd50dee1ccc9b7927dc12"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/cbcf4b5e233af15cd2bbd50dee1ccc9b7927dc12",
- "reference": "cbcf4b5e233af15cd2bbd50dee1ccc9b7927dc12",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.9",
- "symfony/debug": "^2.7.2|~3.0.0",
- "symfony/polyfill-mbstring": "~1.0"
- },
- "require-dev": {
- "psr/log": "~1.0",
- "symfony/event-dispatcher": "~2.1|~3.0.0",
- "symfony/process": "~2.1|~3.0.0"
- },
- "suggest": {
- "psr/log-implementation": "For using the console logger",
- "symfony/event-dispatcher": "",
- "symfony/process": ""
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.8-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Console\\": ""
- },
- "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 Console Component",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/console/tree/v2.8.52"
- },
- "time": "2018-11-20T15:55:20+00:00"
- },
- {
- "name": "symfony/debug",
- "version": "v3.0.9",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/debug.git",
- "reference": "697c527acd9ea1b2d3efac34d9806bf255278b0a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/debug/zipball/697c527acd9ea1b2d3efac34d9806bf255278b0a",
- "reference": "697c527acd9ea1b2d3efac34d9806bf255278b0a",
- "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/class-loader": "~2.8|~3.0",
- "symfony/http-kernel": "~2.8|~3.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.0-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",
- "support": {
- "source": "https://github.com/symfony/debug/tree/3.0"
- },
- "time": "2016-07-30T07:22:48+00:00"
- },
- {
- "name": "symfony/event-dispatcher",
- "version": "v2.8.52",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "a77e974a5fecb4398833b0709210e3d5e334ffb0"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/a77e974a5fecb4398833b0709210e3d5e334ffb0",
- "reference": "a77e974a5fecb4398833b0709210e3d5e334ffb0",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.9"
- },
- "require-dev": {
- "psr/log": "~1.0",
- "symfony/config": "^2.0.5|~3.0.0",
- "symfony/dependency-injection": "~2.6|~3.0.0",
- "symfony/expression-language": "~2.6|~3.0.0",
- "symfony/stopwatch": "~2.3|~3.0.0"
- },
- "suggest": {
- "symfony/dependency-injection": "",
- "symfony/http-kernel": ""
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.8-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\EventDispatcher\\": ""
- },
- "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 EventDispatcher Component",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/event-dispatcher/tree/v2.8.50"
- },
- "time": "2018-11-21T14:20:20+00:00"
- },
- {
- "name": "symfony/filesystem",
- "version": "v3.0.9",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/filesystem.git",
- "reference": "b2da5009d9bacbd91d83486aa1f44c793a8c380d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/filesystem/zipball/b2da5009d9bacbd91d83486aa1f44c793a8c380d",
- "reference": "b2da5009d9bacbd91d83486aa1f44c793a8c380d",
- "shasum": ""
- },
- "require": {
- "php": ">=5.5.9"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.0-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Filesystem\\": ""
- },
- "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 Filesystem Component",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/filesystem/tree/3.0"
- },
- "time": "2016-07-20T05:43:46+00:00"
- },
- {
- "name": "symfony/finder",
- "version": "v2.8.52",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/finder.git",
- "reference": "1444eac52273e345d9b95129bf914639305a9ba4"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/1444eac52273e345d9b95129bf914639305a9ba4",
- "reference": "1444eac52273e345d9b95129bf914639305a9ba4",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.9"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.8-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",
- "support": {
- "source": "https://github.com/symfony/finder/tree/v2.8.50"
- },
- "time": "2018-11-11T11:18:13+00:00"
- },
- {
- "name": "symfony/polyfill-ctype",
- "version": "v1.23.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-ctype.git",
- "reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/46cd95797e9df938fdd2b03693b5fca5e64b01ce",
- "reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "suggest": {
- "ext-ctype": "For best performance"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.23-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Polyfill\\Ctype\\": ""
- },
- "files": [
- "bootstrap.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Gert de Pagter",
- "email": "BackEndTea@gmail.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill for ctype functions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "ctype",
- "polyfill",
- "portable"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-ctype/tree/v1.23.0"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2021-02-19T12:13:01+00:00"
- },
- {
- "name": "symfony/polyfill-mbstring",
- "version": "v1.23.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "2df51500adbaebdc4c38dea4c89a2e131c45c8a1"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/2df51500adbaebdc4c38dea4c89a2e131c45c8a1",
- "reference": "2df51500adbaebdc4c38dea4c89a2e131c45c8a1",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "suggest": {
- "ext-mbstring": "For best performance"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.23-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Polyfill\\Mbstring\\": ""
- },
- "files": [
- "bootstrap.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill for the Mbstring extension",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "mbstring",
- "polyfill",
- "portable",
- "shim"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.23.0"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2021-05-27T09:27:20+00:00"
- },
- {
- "name": "symfony/process",
- "version": "v2.8.52",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/process.git",
- "reference": "c3591a09c78639822b0b290d44edb69bf9f05dc8"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/c3591a09c78639822b0b290d44edb69bf9f05dc8",
- "reference": "c3591a09c78639822b0b290d44edb69bf9f05dc8",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.9"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.8-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Process\\": ""
- },
- "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 Process Component",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/process/tree/v2.8.50"
- },
- "time": "2018-11-11T11:18:13+00:00"
- },
- {
- "name": "symfony/stopwatch",
- "version": "v2.8.52",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/stopwatch.git",
- "reference": "752586c80af8a85aeb74d1ae8202411c68836663"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/stopwatch/zipball/752586c80af8a85aeb74d1ae8202411c68836663",
- "reference": "752586c80af8a85aeb74d1ae8202411c68836663",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.9"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.8-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Stopwatch\\": ""
- },
- "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 Stopwatch Component",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/stopwatch/tree/v2.8.52"
- },
- "time": "2018-11-11T11:18:13+00:00"
- },
- {
- "name": "symfony/translation",
- "version": "v3.0.9",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/translation.git",
- "reference": "eee6c664853fd0576f21ae25725cfffeafe83f26"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/translation/zipball/eee6c664853fd0576f21ae25725cfffeafe83f26",
- "reference": "eee6c664853fd0576f21ae25725cfffeafe83f26",
- "shasum": ""
- },
- "require": {
- "php": ">=5.5.9",
- "symfony/polyfill-mbstring": "~1.0"
- },
- "conflict": {
- "symfony/config": "<2.8"
- },
- "require-dev": {
- "psr/log": "~1.0",
- "symfony/config": "~2.8|~3.0",
- "symfony/intl": "~2.8|~3.0",
- "symfony/yaml": "~2.8|~3.0"
- },
- "suggest": {
- "psr/log": "To use logging capability in translator",
- "symfony/config": "",
- "symfony/yaml": ""
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.0-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Translation\\": ""
- },
- "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 Translation Component",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/translation/tree/3.0"
- },
- "time": "2016-07-30T07:22:48+00:00"
- },
- {
- "name": "symfony/validator",
- "version": "v2.8.52",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/validator.git",
- "reference": "d5d2090bba3139d8ddb79959fbf516e87238fe3a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/validator/zipball/d5d2090bba3139d8ddb79959fbf516e87238fe3a",
- "reference": "d5d2090bba3139d8ddb79959fbf516e87238fe3a",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.9",
- "symfony/polyfill-ctype": "~1.8",
- "symfony/polyfill-mbstring": "~1.0",
- "symfony/translation": "~2.4|~3.0.0"
- },
- "require-dev": {
- "doctrine/annotations": "~1.0",
- "doctrine/cache": "~1.0",
- "egulias/email-validator": "^1.2.1",
- "symfony/config": "~2.2|~3.0.0",
- "symfony/expression-language": "~2.4|~3.0.0",
- "symfony/http-foundation": "~2.3|~3.0.0",
- "symfony/intl": "~2.7.25|^2.8.18|~3.2.5",
- "symfony/property-access": "~2.3|~3.0.0",
- "symfony/yaml": "^2.0.5|~3.0.0"
- },
- "suggest": {
- "doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.",
- "doctrine/cache": "For using the default cached annotation reader and metadata cache.",
- "egulias/email-validator": "Strict (RFC compliant) email validation",
- "symfony/config": "",
- "symfony/expression-language": "For using the 2.4 Expression validator",
- "symfony/http-foundation": "",
- "symfony/intl": "",
- "symfony/property-access": "For using the 2.4 Validator API",
- "symfony/yaml": ""
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.8-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Validator\\": ""
- },
- "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 Validator Component",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/validator/tree/v2.8.50"
- },
- "time": "2018-11-14T14:06:48+00:00"
- },
- {
- "name": "twig/twig",
- "version": "v1.44.4",
- "source": {
- "type": "git",
- "url": "https://github.com/twigphp/Twig.git",
- "reference": "4d400421528e9fa40caaffcf7824c172526dd99d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/twigphp/Twig/zipball/4d400421528e9fa40caaffcf7824c172526dd99d",
- "reference": "4d400421528e9fa40caaffcf7824c172526dd99d",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "symfony/polyfill-ctype": "^1.8"
- },
- "require-dev": {
- "psr/container": "^1.0",
- "symfony/phpunit-bridge": "^4.4.9|^5.0.9"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.44-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "Twig_": "lib/"
- },
- "psr-4": {
- "Twig\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com",
- "homepage": "http://fabien.potencier.org",
- "role": "Lead Developer"
- },
- {
- "name": "Twig Team",
- "role": "Contributors"
- },
- {
- "name": "Armin Ronacher",
- "email": "armin.ronacher@active-4.com",
- "role": "Project Founder"
- }
- ],
- "description": "Twig, the flexible, fast, and secure template language for PHP",
- "homepage": "https://twig.symfony.com",
- "keywords": [
- "templating"
- ],
- "support": {
- "issues": "https://github.com/twigphp/Twig/issues",
- "source": "https://github.com/twigphp/Twig/tree/v1.44.4"
- },
- "funding": [
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/twig/twig",
- "type": "tidelift"
- }
- ],
- "time": "2021-05-16T12:11:20+00:00"
- },
- {
- "name": "webmozart/assert",
- "version": "1.10.0",
- "source": {
- "type": "git",
- "url": "https://github.com/webmozarts/assert.git",
- "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/webmozarts/assert/zipball/6964c76c7804814a842473e0c8fd15bab0f18e25",
- "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25",
- "shasum": ""
- },
- "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"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.10-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Webmozart\\Assert\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Bernhard Schussek",
- "email": "bschussek@gmail.com"
- }
- ],
- "description": "Assertions to validate method input/output with nice error messages.",
- "keywords": [
- "assert",
- "check",
- "validate"
- ],
- "support": {
- "issues": "https://github.com/webmozarts/assert/issues",
- "source": "https://github.com/webmozarts/assert/tree/1.10.0"
- },
- "time": "2021-03-09T10:59:23+00:00"
- },
- {
- "name": "zendframework/zend-cache",
- "version": "2.8.3",
- "source": {
- "type": "git",
- "url": "https://github.com/zendframework/zend-cache.git",
- "reference": "edde41f1ee5c28e01701a032f434d03751b65df4"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/zendframework/zend-cache/zipball/edde41f1ee5c28e01701a032f434d03751b65df4",
- "reference": "edde41f1ee5c28e01701a032f434d03751b65df4",
- "shasum": ""
- },
- "require": {
- "php": "^5.6 || ^7.0",
- "psr/cache": "^1.0",
- "psr/simple-cache": "^1.0",
- "zendframework/zend-eventmanager": "^2.6.3 || ^3.2",
- "zendframework/zend-servicemanager": "^2.7.8 || ^3.3",
- "zendframework/zend-stdlib": "^2.7.7 || ^3.1"
- },
- "provide": {
- "psr/cache-implementation": "1.0",
- "psr/simple-cache-implementation": "1.0"
- },
- "require-dev": {
- "cache/integration-tests": "^0.16",
- "phpbench/phpbench": "^0.13",
- "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2",
- "zendframework/zend-coding-standard": "~1.0.0",
- "zendframework/zend-serializer": "^2.6",
- "zendframework/zend-session": "^2.7.4"
- },
- "suggest": {
- "ext-apc": "APC or compatible extension, to use the APC storage adapter",
- "ext-apcu": "APCU >= 5.1.0, to use the APCu storage adapter",
- "ext-dba": "DBA, to use the DBA storage adapter",
- "ext-memcache": "Memcache >= 2.0.0 to use the Memcache storage adapter",
- "ext-memcached": "Memcached >= 1.0.0 to use the Memcached storage adapter",
- "ext-mongo": "Mongo, to use MongoDb storage adapter",
- "ext-mongodb": "MongoDB, to use the ExtMongoDb storage adapter",
- "ext-redis": "Redis, to use Redis storage adapter",
- "ext-wincache": "WinCache, to use the WinCache storage adapter",
- "ext-xcache": "XCache, to use the XCache storage adapter",
- "mongodb/mongodb": "Required for use with the ext-mongodb adapter",
- "mongofill/mongofill": "Alternative to ext-mongo - a pure PHP implementation designed as a drop in replacement",
- "zendframework/zend-serializer": "Zend\\Serializer component",
- "zendframework/zend-session": "Zend\\Session component"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.8.x-dev",
- "dev-develop": "2.9.x-dev"
- },
- "zf": {
- "component": "Zend\\Cache",
- "config-provider": "Zend\\Cache\\ConfigProvider"
- }
- },
- "autoload": {
- "files": [
- "autoload/patternPluginManagerPolyfill.php"
- ],
- "psr-4": {
- "Zend\\Cache\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "description": "Caching implementation with a variety of storage options, as well as codified caching strategies for callbacks, classes, and output",
- "keywords": [
- "ZendFramework",
- "cache",
- "psr-16",
- "psr-6",
- "zf"
- ],
- "support": {
- "chat": "https://zendframework-slack.herokuapp.com",
- "docs": "https://docs.zendframework.com/zend-cache/",
- "forum": "https://discourse.zendframework.com/c/questions/components",
- "issues": "https://github.com/zendframework/zend-cache/issues",
- "rss": "https://github.com/zendframework/zend-cache/releases.atom",
- "source": "https://github.com/zendframework/zend-cache"
- },
- "abandoned": "laminas/laminas-cache",
- "time": "2019-08-28T21:34:32+00:00"
- },
- {
- "name": "zendframework/zend-config",
- "version": "2.6.0",
- "source": {
- "type": "git",
- "url": "https://github.com/zendframework/zend-config.git",
- "reference": "2920e877a9f6dca9fa8f6bd3b1ffc2e19bb1e30d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/zendframework/zend-config/zipball/2920e877a9f6dca9fa8f6bd3b1ffc2e19bb1e30d",
- "reference": "2920e877a9f6dca9fa8f6bd3b1ffc2e19bb1e30d",
- "shasum": ""
- },
- "require": {
- "php": "^5.5 || ^7.0",
- "zendframework/zend-stdlib": "^2.7 || ^3.0"
- },
- "require-dev": {
- "fabpot/php-cs-fixer": "1.7.*",
- "phpunit/phpunit": "~4.0",
- "zendframework/zend-filter": "^2.6",
- "zendframework/zend-i18n": "^2.5",
- "zendframework/zend-json": "^2.6.1",
- "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3"
- },
- "suggest": {
- "zendframework/zend-filter": "Zend\\Filter component",
- "zendframework/zend-i18n": "Zend\\I18n component",
- "zendframework/zend-json": "Zend\\Json to use the Json reader or writer classes",
- "zendframework/zend-servicemanager": "Zend\\ServiceManager for use with the Config Factory to retrieve reader and writer instances"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.6-dev",
- "dev-develop": "2.7-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Zend\\Config\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "description": "provides a nested object property based user interface for accessing this configuration data within application code",
- "homepage": "https://github.com/zendframework/zend-config",
- "keywords": [
- "config",
- "zf2"
- ],
- "support": {
- "issues": "https://github.com/zendframework/zend-config/issues",
- "source": "https://github.com/zendframework/zend-config/tree/release-2.6.0"
- },
- "abandoned": "laminas/laminas-config",
- "time": "2016-02-04T23:01:10+00:00"
- },
- {
- "name": "zendframework/zend-eventmanager",
- "version": "3.2.1",
- "source": {
- "type": "git",
- "url": "https://github.com/zendframework/zend-eventmanager.git",
- "reference": "a5e2583a211f73604691586b8406ff7296a946dd"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/zendframework/zend-eventmanager/zipball/a5e2583a211f73604691586b8406ff7296a946dd",
- "reference": "a5e2583a211f73604691586b8406ff7296a946dd",
- "shasum": ""
- },
- "require": {
- "php": "^5.6 || ^7.0"
- },
- "require-dev": {
- "athletic/athletic": "^0.1",
- "container-interop/container-interop": "^1.1.0",
- "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2",
- "zendframework/zend-coding-standard": "~1.0.0",
- "zendframework/zend-stdlib": "^2.7.3 || ^3.0"
- },
- "suggest": {
- "container-interop/container-interop": "^1.1.0, to use the lazy listeners feature",
- "zendframework/zend-stdlib": "^2.7.3 || ^3.0, to use the FilterChain feature"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.2-dev",
- "dev-develop": "3.3-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Zend\\EventManager\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "description": "Trigger and listen to events within a PHP application",
- "homepage": "https://github.com/zendframework/zend-eventmanager",
- "keywords": [
- "event",
- "eventmanager",
- "events",
- "zf2"
- ],
- "support": {
- "issues": "https://github.com/zendframework/zend-eventmanager/issues",
- "source": "https://github.com/zendframework/zend-eventmanager/tree/master"
- },
- "abandoned": "laminas/laminas-eventmanager",
- "time": "2018-04-25T15:33:34+00:00"
- },
- {
- "name": "zendframework/zend-filter",
- "version": "2.9.2",
- "source": {
- "type": "git",
- "url": "https://github.com/zendframework/zend-filter.git",
- "reference": "d78f2cdde1c31975e18b2a0753381ed7b61118ef"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/zendframework/zend-filter/zipball/d78f2cdde1c31975e18b2a0753381ed7b61118ef",
- "reference": "d78f2cdde1c31975e18b2a0753381ed7b61118ef",
- "shasum": ""
- },
- "require": {
- "php": "^5.6 || ^7.0",
- "zendframework/zend-stdlib": "^2.7.7 || ^3.1"
- },
- "conflict": {
- "zendframework/zend-validator": "<2.10.1"
- },
- "require-dev": {
- "pear/archive_tar": "^1.4.3",
- "phpunit/phpunit": "^5.7.23 || ^6.4.3",
- "psr/http-factory": "^1.0",
- "zendframework/zend-coding-standard": "~1.0.0",
- "zendframework/zend-crypt": "^3.2.1",
- "zendframework/zend-servicemanager": "^2.7.8 || ^3.3",
- "zendframework/zend-uri": "^2.6"
- },
- "suggest": {
- "psr/http-factory-implementation": "psr/http-factory-implementation, for creating file upload instances when consuming PSR-7 in file upload filters",
- "zendframework/zend-crypt": "Zend\\Crypt component, for encryption filters",
- "zendframework/zend-i18n": "Zend\\I18n component for filters depending on i18n functionality",
- "zendframework/zend-servicemanager": "Zend\\ServiceManager component, for using the filter chain functionality",
- "zendframework/zend-uri": "Zend\\Uri component, for the UriNormalize filter"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.9.x-dev",
- "dev-develop": "2.10.x-dev"
- },
- "zf": {
- "component": "Zend\\Filter",
- "config-provider": "Zend\\Filter\\ConfigProvider"
- }
- },
- "autoload": {
- "psr-4": {
- "Zend\\Filter\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "description": "Programmatically filter and normalize data and files",
- "keywords": [
- "ZendFramework",
- "filter",
- "zf"
- ],
- "support": {
- "chat": "https://zendframework-slack.herokuapp.com",
- "docs": "https://docs.zendframework.com/zend-filter/",
- "forum": "https://discourse.zendframework.com/c/questions/components",
- "issues": "https://github.com/zendframework/zend-filter/issues",
- "rss": "https://github.com/zendframework/zend-filter/releases.atom",
- "source": "https://github.com/zendframework/zend-filter"
- },
- "abandoned": "laminas/laminas-filter",
- "time": "2019-08-19T07:08:04+00:00"
- },
- {
- "name": "zendframework/zend-hydrator",
- "version": "1.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/zendframework/zend-hydrator.git",
- "reference": "22652e1661a5a10b3f564cf7824a2206cf5a4a65"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/zendframework/zend-hydrator/zipball/22652e1661a5a10b3f564cf7824a2206cf5a4a65",
- "reference": "22652e1661a5a10b3f564cf7824a2206cf5a4a65",
- "shasum": ""
- },
- "require": {
- "php": "^5.5 || ^7.0",
- "zendframework/zend-stdlib": "^2.7 || ^3.0"
- },
- "require-dev": {
- "phpunit/phpunit": "~4.0",
- "squizlabs/php_codesniffer": "^2.0@dev",
- "zendframework/zend-eventmanager": "^2.6.2 || ^3.0",
- "zendframework/zend-filter": "^2.6",
- "zendframework/zend-inputfilter": "^2.6",
- "zendframework/zend-serializer": "^2.6.1",
- "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3"
- },
- "suggest": {
- "zendframework/zend-eventmanager": "^2.6.2 || ^3.0, to support aggregate hydrator usage",
- "zendframework/zend-filter": "^2.6, to support naming strategy hydrator usage",
- "zendframework/zend-serializer": "^2.6.1, to use the SerializableStrategy",
- "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3, to support hydrator plugin manager usage"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-release-1.0": "1.0-dev",
- "dev-release-1.1": "1.1-dev",
- "dev-master": "2.0-dev",
- "dev-develop": "2.1-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Zend\\Hydrator\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "homepage": "https://github.com/zendframework/zend-hydrator",
- "keywords": [
- "hydrator",
- "zf2"
- ],
- "support": {
- "issues": "https://github.com/zendframework/zend-hydrator/issues",
- "source": "https://github.com/zendframework/zend-hydrator/tree/release-1.1"
- },
- "abandoned": "laminas/laminas-hydrator",
- "time": "2016-02-18T22:38:26+00:00"
- },
- {
- "name": "zendframework/zend-i18n",
- "version": "2.9.2",
- "source": {
- "type": "git",
- "url": "https://github.com/zendframework/zend-i18n.git",
- "reference": "e17a54b3aee333ab156958f570cde630acee8b07"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/zendframework/zend-i18n/zipball/e17a54b3aee333ab156958f570cde630acee8b07",
- "reference": "e17a54b3aee333ab156958f570cde630acee8b07",
- "shasum": ""
- },
- "require": {
- "php": "^5.6 || ^7.0",
- "zendframework/zend-stdlib": "^2.7 || ^3.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.5.16",
- "zendframework/zend-cache": "^2.6.1",
- "zendframework/zend-coding-standard": "~1.0.0",
- "zendframework/zend-config": "^2.6",
- "zendframework/zend-eventmanager": "^2.6.2 || ^3.0",
- "zendframework/zend-filter": "^2.6.1",
- "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3",
- "zendframework/zend-validator": "^2.6",
- "zendframework/zend-view": "^2.6.3"
- },
- "suggest": {
- "ext-intl": "Required for most features of Zend\\I18n; included in default builds of PHP",
- "zendframework/zend-cache": "Zend\\Cache component",
- "zendframework/zend-config": "Zend\\Config component",
- "zendframework/zend-eventmanager": "You should install this package to use the events in the translator",
- "zendframework/zend-filter": "You should install this package to use the provided filters",
- "zendframework/zend-i18n-resources": "Translation resources",
- "zendframework/zend-servicemanager": "Zend\\ServiceManager component",
- "zendframework/zend-validator": "You should install this package to use the provided validators",
- "zendframework/zend-view": "You should install this package to use the provided view helpers"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.9.x-dev",
- "dev-develop": "2.10.x-dev"
- },
- "zf": {
- "component": "Zend\\I18n",
- "config-provider": "Zend\\I18n\\ConfigProvider"
- }
- },
- "autoload": {
- "psr-4": {
- "Zend\\I18n\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "description": "Provide translations for your application, and filter and validate internationalized values",
- "keywords": [
- "ZendFramework",
- "i18n",
- "zf"
- ],
- "support": {
- "chat": "https://zendframework-slack.herokuapp.com",
- "docs": "https://docs.zendframework.com/zend-i18n/",
- "forum": "https://discourse.zendframework.com/c/questions/components",
- "issues": "https://github.com/zendframework/zend-i18n/issues",
- "rss": "https://github.com/zendframework/zend-i18n/releases.atom",
- "source": "https://github.com/zendframework/zend-i18n"
- },
- "abandoned": "laminas/laminas-i18n",
- "time": "2019-09-30T12:04:37+00:00"
- },
- {
- "name": "zendframework/zend-json",
- "version": "3.1.2",
- "source": {
- "type": "git",
- "url": "https://github.com/zendframework/zend-json.git",
- "reference": "e9ddb1192d93fe7fff846ac895249c39db75132b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/zendframework/zend-json/zipball/e9ddb1192d93fe7fff846ac895249c39db75132b",
- "reference": "e9ddb1192d93fe7fff846ac895249c39db75132b",
- "shasum": ""
- },
- "require": {
- "php": "^5.6 || ^7.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^5.7.23 || ^6.4.3",
- "zendframework/zend-coding-standard": "~1.0.0",
- "zendframework/zend-stdlib": "^2.7.7 || ^3.1"
- },
- "suggest": {
- "zendframework/zend-json-server": "For implementing JSON-RPC servers",
- "zendframework/zend-xml2json": "For converting XML documents to JSON"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.1.x-dev",
- "dev-develop": "3.2.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Zend\\Json\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "description": "provides convenience methods for serializing native PHP to JSON and decoding JSON to native PHP",
- "keywords": [
- "ZendFramework",
- "json",
- "zf"
- ],
- "support": {
- "chat": "https://zendframework-slack.herokuapp.com",
- "docs": "https://docs.zendframework.com/zend-json/",
- "forum": "https://discourse.zendframework.com/c/questions/components",
- "issues": "https://github.com/zendframework/zend-json/issues",
- "rss": "https://github.com/zendframework/zend-json/releases.atom",
- "source": "https://github.com/zendframework/zend-json"
- },
- "abandoned": "laminas/laminas-json",
- "time": "2019-10-09T13:56:13+00:00"
- },
- {
- "name": "zendframework/zend-serializer",
- "version": "2.9.1",
- "source": {
- "type": "git",
- "url": "https://github.com/zendframework/zend-serializer.git",
- "reference": "6fb7ae016cfdf0cfcdfa2b989e6a65f351170e21"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/zendframework/zend-serializer/zipball/6fb7ae016cfdf0cfcdfa2b989e6a65f351170e21",
- "reference": "6fb7ae016cfdf0cfcdfa2b989e6a65f351170e21",
- "shasum": ""
- },
- "require": {
- "php": "^5.6 || ^7.0",
- "zendframework/zend-json": "^2.5 || ^3.0",
- "zendframework/zend-stdlib": "^2.7 || ^3.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.5.16",
- "zendframework/zend-coding-standard": "~1.0.0",
- "zendframework/zend-math": "^2.6 || ^3.0",
- "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3"
- },
- "suggest": {
- "zendframework/zend-math": "(^2.6 || ^3.0) To support Python Pickle serialization",
- "zendframework/zend-servicemanager": "(^2.7.5 || ^3.0.3) To support plugin manager support"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.9.x-dev",
- "dev-develop": "2.10.x-dev"
- },
- "zf": {
- "component": "Zend\\Serializer",
- "config-provider": "Zend\\Serializer\\ConfigProvider"
- }
- },
- "autoload": {
- "psr-4": {
- "Zend\\Serializer\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "description": "Serialize and deserialize PHP structures to a variety of representations",
- "keywords": [
- "ZendFramework",
- "serializer",
- "zf"
- ],
- "support": {
- "chat": "https://zendframework-slack.herokuapp.com",
- "docs": "https://docs.zendframework.com/zend-serializer/",
- "forum": "https://discourse.zendframework.com/c/questions/components",
- "issues": "https://github.com/zendframework/zend-serializer/issues",
- "rss": "https://github.com/zendframework/zend-serializer/releases.atom",
- "source": "https://github.com/zendframework/zend-serializer"
- },
- "abandoned": "laminas/laminas-serializer",
- "time": "2019-10-19T08:06:30+00:00"
- },
- {
- "name": "zendframework/zend-servicemanager",
- "version": "2.7.11",
- "source": {
- "type": "git",
- "url": "https://github.com/zendframework/zend-servicemanager.git",
- "reference": "99ec9ed5d0f15aed9876433c74c2709eb933d4c7"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/zendframework/zend-servicemanager/zipball/99ec9ed5d0f15aed9876433c74c2709eb933d4c7",
- "reference": "99ec9ed5d0f15aed9876433c74c2709eb933d4c7",
- "shasum": ""
- },
- "require": {
- "container-interop/container-interop": "~1.0",
- "php": "^5.5 || ^7.0"
- },
- "require-dev": {
- "athletic/athletic": "dev-master",
- "fabpot/php-cs-fixer": "1.7.*",
- "phpunit/phpunit": "~4.0",
- "zendframework/zend-di": "~2.5",
- "zendframework/zend-mvc": "~2.5"
- },
- "suggest": {
- "ocramius/proxy-manager": "ProxyManager 0.5.* to handle lazy initialization of services",
- "zendframework/zend-di": "Zend\\Di component"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.7-dev",
- "dev-develop": "3.0-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Zend\\ServiceManager\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "homepage": "https://github.com/zendframework/zend-servicemanager",
- "keywords": [
- "servicemanager",
- "zf2"
- ],
- "support": {
- "issues": "https://github.com/zendframework/zend-servicemanager/issues",
- "source": "https://github.com/zendframework/zend-servicemanager/tree/release-2.7.11"
- },
- "abandoned": "laminas/laminas-servicemanager",
- "time": "2018-06-22T14:49:54+00:00"
- },
- {
- "name": "zendframework/zend-stdlib",
- "version": "2.7.7",
- "source": {
- "type": "git",
- "url": "https://github.com/zendframework/zend-stdlib.git",
- "reference": "0e44eb46788f65e09e077eb7f44d2659143bcc1f"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/zendframework/zend-stdlib/zipball/0e44eb46788f65e09e077eb7f44d2659143bcc1f",
- "reference": "0e44eb46788f65e09e077eb7f44d2659143bcc1f",
- "shasum": ""
- },
- "require": {
- "php": "^5.5 || ^7.0",
- "zendframework/zend-hydrator": "~1.1"
- },
- "require-dev": {
- "athletic/athletic": "~0.1",
- "fabpot/php-cs-fixer": "1.7.*",
- "phpunit/phpunit": "~4.0",
- "zendframework/zend-config": "~2.5",
- "zendframework/zend-eventmanager": "~2.5",
- "zendframework/zend-filter": "~2.5",
- "zendframework/zend-inputfilter": "~2.5",
- "zendframework/zend-serializer": "~2.5",
- "zendframework/zend-servicemanager": "~2.5"
- },
- "suggest": {
- "zendframework/zend-eventmanager": "To support aggregate hydrator usage",
- "zendframework/zend-filter": "To support naming strategy hydrator usage",
- "zendframework/zend-serializer": "Zend\\Serializer component",
- "zendframework/zend-servicemanager": "To support hydrator plugin manager usage"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-release-2.7": "2.7-dev",
- "dev-master": "3.0-dev",
- "dev-develop": "3.1-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Zend\\Stdlib\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "homepage": "https://github.com/zendframework/zend-stdlib",
- "keywords": [
- "stdlib",
- "zf2"
- ],
- "support": {
- "issues": "https://github.com/zendframework/zend-stdlib/issues",
- "source": "https://github.com/zendframework/zend-stdlib/tree/release-2.7"
- },
- "abandoned": "laminas/laminas-stdlib",
- "time": "2016-04-12T21:17:31+00:00"
- },
- {
- "name": "zetacomponents/base",
- "version": "1.9.1",
- "source": {
- "type": "git",
- "url": "https://github.com/zetacomponents/Base.git",
- "reference": "489e20235989ddc97fdd793af31ac803972454f1"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/zetacomponents/Base/zipball/489e20235989ddc97fdd793af31ac803972454f1",
- "reference": "489e20235989ddc97fdd793af31ac803972454f1",
- "shasum": ""
- },
- "require-dev": {
- "phpunit/phpunit": "~5.7",
- "zetacomponents/unit-test": "*"
- },
- "type": "library",
- "autoload": {
- "classmap": [
- "src"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "Apache-2.0"
- ],
- "authors": [
- {
- "name": "Sergey Alexeev"
- },
- {
- "name": "Sebastian Bergmann"
- },
- {
- "name": "Jan Borsodi"
- },
- {
- "name": "Raymond Bosman"
- },
- {
- "name": "Frederik Holljen"
- },
- {
- "name": "Kore Nordmann"
- },
- {
- "name": "Derick Rethans"
- },
- {
- "name": "Vadym Savchuk"
- },
- {
- "name": "Tobias Schlitt"
- },
- {
- "name": "Alexandru Stanoi"
- }
- ],
- "description": "The Base package provides the basic infrastructure that all packages rely on. Therefore every component relies on this package.",
- "homepage": "https://github.com/zetacomponents",
- "support": {
- "issues": "https://github.com/zetacomponents/Base/issues",
- "source": "https://github.com/zetacomponents/Base/tree/1.9.1"
- },
- "time": "2017-11-28T11:30:00+00:00"
- },
- {
- "name": "zetacomponents/document",
- "version": "1.3.1",
- "source": {
- "type": "git",
- "url": "https://github.com/zetacomponents/Document.git",
- "reference": "688abfde573cf3fe0730f82538fbd7aa9fc95bc8"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/zetacomponents/Document/zipball/688abfde573cf3fe0730f82538fbd7aa9fc95bc8",
- "reference": "688abfde573cf3fe0730f82538fbd7aa9fc95bc8",
- "shasum": ""
- },
- "require": {
- "zetacomponents/base": "*"
- },
- "require-dev": {
- "zetacomponents/unit-test": "dev-master"
- },
- "type": "library",
- "autoload": {
- "classmap": [
- "src"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "Apache-2.0"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann"
- },
- {
- "name": "Kore Nordmann"
- },
- {
- "name": "Derick Rethans"
- },
- {
- "name": "Tobias Schlitt"
- },
- {
- "name": "Alexandru Stanoi"
- }
- ],
- "description": "The Document components provides a general conversion framework for different semantic document markup languages like XHTML, Docbook, RST and similar.",
- "homepage": "https://github.com/zetacomponents",
- "support": {
- "issues": "https://github.com/zetacomponents/Document/issues",
- "source": "https://github.com/zetacomponents/Document/tree/1.3.1"
- },
- "time": "2013-12-19T11:40:00+00:00"
- }
- ],
+ "content-hash": "ba7ddd4f72a192d3d66f5bb5d7dc1c58",
+ "packages": [],
"packages-dev": [
{
"name": "dealerdirect/phpcodesniffer-composer-installer",
- "version": "v0.7.1",
+ "version": "v0.7.2",
"source": {
"type": "git",
"url": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer.git",
- "reference": "fe390591e0241955f22eb9ba327d137e501c771c"
+ "reference": "1c968e542d8843d7cd71de3c5c9c3ff3ad71a1db"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Dealerdirect/phpcodesniffer-composer-installer/zipball/fe390591e0241955f22eb9ba327d137e501c771c",
- "reference": "fe390591e0241955f22eb9ba327d137e501c771c",
+ "url": "https://api.github.com/repos/Dealerdirect/phpcodesniffer-composer-installer/zipball/1c968e542d8843d7cd71de3c5c9c3ff3ad71a1db",
+ "reference": "1c968e542d8843d7cd71de3c5c9c3ff3ad71a1db",
"shasum": ""
},
"require": {
"composer-plugin-api": "^1.0 || ^2.0",
"php": ">=5.3",
- "squizlabs/php_codesniffer": "^2.0 || ^3.0 || ^4.0"
+ "squizlabs/php_codesniffer": "^2.0 || ^3.1.0 || ^4.0"
},
"require-dev": {
"composer/composer": "*",
- "phpcompatibility/php-compatibility": "^9.0",
- "sensiolabs/security-checker": "^4.1.0"
+ "php-parallel-lint/php-parallel-lint": "^1.3.1",
+ "phpcompatibility/php-compatibility": "^9.0"
},
"type": "composer-plugin",
"extra": {
@@ -3408,6 +50,10 @@
"email": "franck.nijhof@dealerdirect.com",
"homepage": "http://www.frenck.nl",
"role": "Developer / IT Manager"
+ },
+ {
+ "name": "Contributors",
+ "homepage": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer/graphs/contributors"
}
],
"description": "PHP_CodeSniffer Standards Composer Installer Plugin",
@@ -3419,6 +65,7 @@
"codesniffer",
"composer",
"installer",
+ "phpcbf",
"phpcs",
"plugin",
"qa",
@@ -3433,7 +80,7 @@
"issues": "https://github.com/dealerdirect/phpcodesniffer-composer-installer/issues",
"source": "https://github.com/dealerdirect/phpcodesniffer-composer-installer"
},
- "time": "2020-12-07T18:04:37+00:00"
+ "time": "2022-02-04T12:51:07+00:00"
},
{
"name": "phpcompatibility/php-compatibility",
@@ -3499,16 +146,16 @@
},
{
"name": "squizlabs/php_codesniffer",
- "version": "3.6.0",
+ "version": "3.7.1",
"source": {
"type": "git",
"url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
- "reference": "ffced0d2c8fa8e6cdc4d695a743271fab6c38625"
+ "reference": "1359e176e9307e906dc3d890bcc9603ff6d90619"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/ffced0d2c8fa8e6cdc4d695a743271fab6c38625",
- "reference": "ffced0d2c8fa8e6cdc4d695a743271fab6c38625",
+ "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/1359e176e9307e906dc3d890bcc9603ff6d90619",
+ "reference": "1359e176e9307e906dc3d890bcc9603ff6d90619",
"shasum": ""
},
"require": {
@@ -3551,7 +198,7 @@
"source": "https://github.com/squizlabs/PHP_CodeSniffer",
"wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki"
},
- "time": "2021-04-09T00:54:41+00:00"
+ "time": "2022-06-18T07:21:10+00:00"
}
],
"aliases": [],
@@ -3563,5 +210,5 @@
"php": ">=7.1.0"
},
"platform-dev": [],
- "plugin-api-version": "2.0.0"
+ "plugin-api-version": "2.3.0"
}
diff --git a/docker-compose.yml b/docker-compose.yml
index 76a1059..ed276de 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -4,7 +4,7 @@ services:
nginx:
image: nginx:latest
ports:
- - "8000:8000"
+ - "8080:8080"
volumes:
- "./docker/nginx.conf:/etc/nginx/conf.d/default.conf"
- "./:/var/www/html"
diff --git a/docker/nginx.conf b/docker/nginx.conf
index 101975e..109d1e7 100644
--- a/docker/nginx.conf
+++ b/docker/nginx.conf
@@ -1,5 +1,5 @@
server {
- listen 8000 default_server;
+ listen 8080 default_server;
root /var/www/html/example;
autoindex on;
diff --git a/example/center.php b/example/center.php
index ecdf15a..4e5a723 100644
--- a/example/center.php
+++ b/example/center.php
@@ -24,8 +24,8 @@
'y' => 100,
'width' => 1000, // Calculate width for nulled values
'height' => 400, // Calculate height for nulled values
- 'horizontal' => 'center', // Can be left/right/center
- 'vertical' => 'center', // Can be top/center/bottom
+ 'horizontal' => 'center', // Can be left/right/center/justify
+ 'vertical' => 'center', // Can be top/center/bottom/justify
'fontpath' => 'fonts/opensans.ttf',
'fontsize' => 24,
'lineheight' => 1.75,
diff --git a/example/justify.php b/example/justify.php
new file mode 100644
index 0000000..d9dc266
--- /dev/null
+++ b/example/justify.php
@@ -0,0 +1,43 @@
+
+ * @license MIT License (http://www.opensource.org/licenses/mit-license.php)
+ * @link https://github.com/antonlukin/poster-editor
+ */
+
+require_once __DIR__ . '/../vendor/autoload.php';
+
+try {
+ $image = new PosterEditor\PosterEditor();
+ $image->make('images/bridge.jpg')->fit(900, 600);
+ $image->blackout(70);
+
+ $image->text(
+ 'Lorem ipsum dolor d d 4 g sit amet, consectetur adipiscing et, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex eas commodo consequat sdfsdfl', // phpcs:ignore
+ array(
+ 'x' => 100,
+ 'y' => 100,
+ 'width' => 600, // Calculate width for nulled values
+ 'height' => 400, // Calculate height for nulled values
+ 'horizontal' => 'justify', // Can be left/right/center/justify
+ 'vertical' => 'justify', // Can be top/center/bottom/justify
+ 'fontpath' => 'fonts/opensans.ttf',
+ 'fontsize' => 20,
+ 'lineheight' => 1.5,
+ 'color' => '#ffffff',
+ 'opacity' => 1,
+ 'debug' => true,
+ )
+ );
+
+ $image->show('png');
+
+} catch(Exception $e) {
+ echo $e->getMessage();
+ exit;
+}
diff --git a/example/scaling.php b/example/scaling.php
index 4d1f25c..cac1722 100644
--- a/example/scaling.php
+++ b/example/scaling.php
@@ -33,7 +33,7 @@
'horizontal' => 'left',
'vertical' => 'top',
'fontpath' => 'fonts/merriweather.ttf',
- 'fontsize' => 120,
+ 'fontsize' => 100,
'lineheight' => 1.75,
'color' => '#ffffff',
'debug' => true,
diff --git a/src/PosterEditor.php b/src/PosterEditor.php
index ea4f158..56031b7 100644
--- a/src/PosterEditor.php
+++ b/src/PosterEditor.php
@@ -23,7 +23,7 @@
* @package PosterEditor
* @author Anton Lukin
* @license MIT License (http://www.opensource.org/licenses/mit-license.php)
- * @version Release: 5.7
+ * @version Release: 5.8
* @link https://github.com/antonlukin/poster-editor
*/
class PosterEditor
@@ -38,21 +38,21 @@ class PosterEditor
/**
* Canvas width
*
- * @var integer
+ * @var int
*/
protected $width;
/**
* Canvas height
*
- * @var integer
+ * @var int
*/
protected $height;
/**
* Image type
*
- * @var integer
+ * @var int
*/
protected $type;
@@ -164,9 +164,9 @@ public function insert($data, $options = array())
/**
* Intialise the canvas by width and height.
*
- * @param integer $width Canvas width.
- * @param integer $height Canvas height.
- * @param string $options Optional. Background color options. Default: black.
+ * @param int $width Canvas width.
+ * @param int $height Canvas height.
+ * @param string $options Optional. Background color options. Default: black.
*
* @return $this
*/
@@ -208,7 +208,7 @@ public function canvas($width, $height, $options = array())
* Sends HTTP response with current image in given format and quality.
* @param string $format Optional. File image extension. By default used type from make or insert function.
- * @param integer $quality Optional. Define optionally the quality of the image. From 0 to 100. Default: 90.
+ * @param int $quality Optional. Define optionally the quality of the image. From 0 to 100. Default: 90.
*
* @return void
*/
@@ -245,8 +245,8 @@ public function show($format = null, $quality = 90)
* Save the image.
*
* @param string $path Path to the file where to write the image data.
- * @param integer $quality Optional. Define optionally the quality of the image. From 0 to 100. Default: 90.
- * @param string $format Optional. File image extension. By default use from path.
+ * @param int $quality Optional. Define optionally the quality of the image. From 0 to 100. Default: 90.
+ * @param string $format Optional. File image extension. By default use from path.
*
* @return $this
*/
@@ -317,8 +317,8 @@ public function height()
/**
* Resizes current image based on given width and height.
*
- * @param integer $width Target image width.
- * @param integer $height Target image height.
+ * @param int $width Target image width.
+ * @param int $height Target image height.
*
* @return $this
*/
@@ -332,8 +332,8 @@ public function resize($width, $height)
/**
* Upsize image on the largest side.
*
- * @param integer $width Optional. Target image width. By default calculated by ratio.
- * @param integer $height Optional. Target image height. By default calculated by ratio.
+ * @param int $width Optional. Target image width. By default calculated by ratio.
+ * @param int $height Optional. Target image height. By default calculated by ratio.
*
* @return $this
*/
@@ -357,8 +357,8 @@ public function upsize($width = null, $height = null)
/**
* Downside image on the lowest side.
*
- * @param integer $width Optional. Target image width. By default calculated by ratio.
- * @param integer $height Optional. Target image height. By default calculated by ratio.
+ * @param int $width Optional. Target image width. By default calculated by ratio.
+ * @param int $height Optional. Target image height. By default calculated by ratio.
*
* @return $this
*/
@@ -385,8 +385,8 @@ public function downsize($width = null, $height = null)
* Cut out a rectangular part of the current image with given width and height.
* Define optional x,y coordinates to move the top-left corner of the cutout to a certain position.
*
- * @param integer $width Width of the rectangular cutout.
- * @param integer $height Height of the rectangular cutout.
+ * @param int $width Width of the rectangular cutout.
+ * @param int $height Height of the rectangular cutout.
* @param array $options Optional. List of crop coords. By default crop from center.
*
* @return $this
@@ -415,8 +415,8 @@ public function crop($width, $height, $options = array())
* The method will find the best fitting aspect ratio on the current image automatically,
* cut it out and resize it to the given dimension.
*
- * @param integer $width Target image width.
- * @param integer $height Target image height.
+ * @param int $width Target image width.
+ * @param int $height Target image height.
* @param string $position Optional. Crop position.
*
* @return $this
@@ -479,10 +479,10 @@ public function fit($width, $height, $position = 'center')
/**
* Draw a line from x,y point 1 to x,y point 2 on current image.
*
- * @param integer $x1 X-Coordinate of the starting point.
- * @param integer $y1 Y-Coordinate of the starting point.
- * @param integer $x2 X-Coordinate of the end point.
- * @param integer $y2 Y-Coordinate of the end point.
+ * @param int $x1 X-Coordinate of the starting point.
+ * @param int $y1 Y-Coordinate of the starting point.
+ * @param int $x2 X-Coordinate of the end point.
+ * @param int $y2 Y-Coordinate of the end point.
* @param array $options Optional. List of line options.
*
* @return $this
@@ -513,10 +513,10 @@ public function line($x1, $y1, $x2, $y2, $options = array())
/**
* Draw a colored rectangle on current image.
*
- * @param integer $x X-Coordinate of the starting point.
- * @param integer $y Y-Coordinate of the starting point.
- * @param integer $width Width in pixels.
- * @param integer $height Height in pixels.
+ * @param int $x X-Coordinate of the starting point.
+ * @param int $y Y-Coordinate of the starting point.
+ * @param int $width Width in pixels.
+ * @param int $height Height in pixels.
* @param array $options Optional. List of line options.
*
* @return $this
@@ -551,10 +551,10 @@ public function rectangle($x, $y, $width, $height, $options = array())
/**
* Draw an ellipse.
*
- * @param integer $x X-Coordinate of the center point.
- * @param integer $y Y-Coordinate of the center point.
- * @param integer $width Width in pixels.
- * @param integer $height Height in pixels.
+ * @param int $x X-Coordinate of the center point.
+ * @param int $y Y-Coordinate of the center point.
+ * @param int $width Width in pixels.
+ * @param int $height Height in pixels.
* @param array $options Optional. List of line options.
*
* @return $this
@@ -585,7 +585,7 @@ public function ellipse($x, $y, $width, $height, $options = array())
* Change the brightness of the current image by the given level.
* Use values between -100 for min. brightness 0 for no change and +100 for max.
*
- * @param integer $level Optional. The level of brightness. Default: 0.
+ * @param int $level Optional. The level of brightness. Default: 0.
*
* @return $this
*/
@@ -602,7 +602,7 @@ public function brightness($level = 0)
* Change the contrast of the current image by the given level.
* Use values between -100 for min contrast 0 for no change and +100 for max.
*
- * @param integer $level Optional. The level of contrast. Default: 0.
+ * @param int $level Optional. The level of contrast. Default: 0.
*
* @return $this
*/
@@ -670,7 +670,7 @@ public function invert()
/**
* Draw black opactity rectangle on image.
*
- * @param integer $level Optional. Blackout level. Default: 0.
+ * @param int $level Optional. Blackout level from 0 to 100. Default: 0.
*
* @return $this
*/
@@ -779,8 +779,11 @@ public function text($text, $options = array(), &$boundary = array())
foreach ($lines as $index => $line) {
list($x, $y, $width, $height) = $this->getOffset($options, $lines, $index);
- // Draw text line.
- imagefttext($this->resource, $options['fontsize'], 0, $x, $y, $color, $options['fontpath'], $line);
+ // Check if last line
+ $last = ($index === count($lines) - 1);
+
+ // Draw single line
+ $this->drawLine($line, $options, $width, $x, $y, $color, $last);
$boundary = array(
'width' => max($width, $boundary['width']),
@@ -791,6 +794,46 @@ public function text($text, $options = array(), &$boundary = array())
return $this;
}
+ /**
+ * Draw single text line on image.
+ * For justify horizontal alignment split the string word by word and add calclated extraspace.
+ *
+ * @param string $line Single text line
+ * @param array $options List of text settings.
+ * @param int $width Actual strin length.
+ * @param int $x X-Coordinate of string starting point.
+ * @param int $y Y-Coordinate of string starting point.
+ * @param int $color Text color.
+ * @param bool $last Is this string is last in the text.
+ *
+ * @return $this
+ */
+ protected function drawLine($line, $options, $width, $x, $y, $color, $last) {
+ if ('justify' !== $options['horizontal']) {
+ return imagefttext($this->resource, $options['fontsize'], 0, $x, $y, $color, $options['fontpath'], $line);
+ }
+
+ $words = explode(' ', $line);
+
+ // Calc extraspace for justify alignment
+ $extraspace = $options['fontsize'] / 50;
+
+ if (false === $last) {
+ $extraspace = $extraspace + ($options['width'] - $width) / (count($words) - 1);
+ }
+
+ foreach ($words as $index => $word) {
+ if (count($words) > $index + 1) {
+ $word = $word . ' ';
+ }
+
+ $sizes = imagefttext($this->resource, $options['fontsize'], 0, $x, $y, $color, $options['fontpath'], $word);
+
+ // Update x-coord
+ $x = $x + abs($sizes[6] - $sizes[4]) + $extraspace;
+ }
+ }
+
/**
* Wrap text to box and update font-size if necessary.
*
@@ -886,7 +929,7 @@ protected function addBreaklines($text, $options, $output = '')
*
* @param array $options List of image options.
*
- * @return integer
+ * @return int
*/
protected function getColor($options)
{
@@ -910,11 +953,11 @@ function ($c) {
/**
* Get param using min max values.
*
- * @param integer $value Initial value.
- * @param integer $min Minimulm value.
- * @param integer $max Maximum value.
+ * @param int $value Initial value.
+ * @param int $min Minimulm value.
+ * @param int $max Maximum value.
*
- * @return integer
+ * @return int
*/
protected function getParam($value, $min, $max)
{
@@ -926,9 +969,9 @@ protected function getParam($value, $min, $max)
/**
* Get offset for text to draw.
*
- * @param integer $options List of image options.
- * @param array $lines List of text lines.
- * @param integer $index Current line index in the loop.
+ * @param int $options List of image options.
+ * @param array $lines List of text lines.
+ * @param int $index Current line index in the loop.
*
* @return array
*/
@@ -959,14 +1002,19 @@ protected function getOffset($options, $lines, $index)
break;
}
+ $bias = count($lines);
+
switch ($options['vertical']) {
case 'center':
- $y = $y + (($options['height'] - ($height * count($lines))) / 2);
+ $y = $y + (($options['height'] - ($height * $bias)) / 2);
break;
case 'bottom':
- $y = $y + ($options['height'] - ($height * count($lines)));
+ $y = $y + ($options['height'] - ($height * $bias));
break;
+
+ case 'justify':
+ $y = $y + ($options['height'] - $height * $bias) / ($bias - 1) * $index;
}
return array($x, $y, $width, $height);
@@ -1100,10 +1148,10 @@ protected function getSource($file, $type)
/**
* Find image center usin from and to values.
*
- * @param integer $from Source size.
- * @param integer $to Destination size.
+ * @param int $from Source size.
+ * @param int $to Destination size.
*
- * @return integer
+ * @return int
*/
protected function findCenter($from, $to)
{
@@ -1113,9 +1161,9 @@ protected function findCenter($from, $to)
/**
* Calculate new width and height values for resize.
*
- * @param integer $width Current image width.
- * @param integer $height Current image height.
- * @param float $ratio Width to height relation.
+ * @param int $width Current image width.
+ * @param int $height Current image height.
+ * @param float $ratio Width to height relation.
*
* @return array
*/