From e6c43b3c728a85cd4bce59ac100721504cda7a25 Mon Sep 17 00:00:00 2001 From: Ruud Boon Date: Thu, 12 Nov 2020 20:24:37 +0100 Subject: [PATCH 1/3] Regenerated stubs, optimized imports --- composer.lock | 2076 +++++++++++++++++ src/Phalcon/Annotations/Adapter/Memory.php | 2 + src/Phalcon/Annotations/Adapter/Stream.php | 4 + src/Phalcon/Annotations/Reader.php | 2 + src/Phalcon/Assets/Filters/None.php | 2 + src/Phalcon/Assets/Manager.php | 6 + src/Phalcon/Cache/Adapter/Libmemcached.php | 1 + src/Phalcon/Cache/Adapter/Memory.php | 1 + src/Phalcon/Cache/Adapter/Redis.php | 1 + src/Phalcon/Cache/Adapter/Stream.php | 1 + src/Phalcon/Collection.php | 4 +- .../Collection/CollectionInterface.php | 104 + src/Phalcon/Config.php | 12 +- src/Phalcon/Config/Adapter/Json.php | 1 + src/Phalcon/Config/Adapter/Yaml.php | 1 + src/Phalcon/Config/ConfigFactory.php | 9 +- src/Phalcon/Config/ConfigInterface.php | 44 + src/Phalcon/DataMapper/Pdo/Connection.php | 74 + .../Pdo/Connection/AbstractConnection.php | 465 ++++ .../Pdo/Connection/ConnectionInterface.php | 213 ++ .../DataMapper/Pdo/Connection/Decorated.php | 54 + .../Pdo/Connection/PdoInterface.php | 143 ++ .../DataMapper/Pdo/ConnectionLocator.php | 151 ++ .../Pdo/ConnectionLocatorInterface.php | 80 + .../Pdo/Exception/CannotDisconnect.php | 19 + .../Pdo/Exception/ConnectionNotFound.php | 18 + .../DataMapper/Pdo/Exception/Exception.php | 18 + .../DataMapper/Pdo/Profiler/MemoryLogger.php | 46 + .../DataMapper/Pdo/Profiler/Profiler.php | 149 ++ .../Pdo/Profiler/ProfilerInterface.php | 92 + .../DataMapper/Query/AbstractConditions.php | 207 ++ .../DataMapper/Query/AbstractQuery.php | 169 ++ src/Phalcon/DataMapper/Query/Bind.php | 106 + src/Phalcon/DataMapper/Query/Delete.php | 77 + src/Phalcon/DataMapper/Query/Insert.php | 123 + src/Phalcon/DataMapper/Query/QueryFactory.php | 92 + src/Phalcon/DataMapper/Query/Select.php | 295 +++ src/Phalcon/DataMapper/Query/Update.php | 121 + src/Phalcon/Db/Adapter/AbstractAdapter.php | 19 + src/Phalcon/Db/Adapter/AdapterInterface.php | 32 + src/Phalcon/Db/Adapter/Pdo/AbstractPdo.php | 12 + src/Phalcon/Db/Adapter/Pdo/Sqlite.php | 10 + src/Phalcon/Db/Column.php | 17 + src/Phalcon/Debug.php | 8 + src/Phalcon/Di.php | 4 +- src/Phalcon/Escaper.php | 84 +- src/Phalcon/Events/Manager.php | 21 +- src/Phalcon/Flash/Session.php | 1 + src/Phalcon/Forms/Element/Numeric.php | 2 + src/Phalcon/Forms/Element/Password.php | 2 + src/Phalcon/Forms/Element/Radio.php | 2 + src/Phalcon/Forms/Element/Select.php | 2 + src/Phalcon/Forms/Element/Submit.php | 2 + src/Phalcon/Forms/Element/Text.php | 2 + src/Phalcon/Forms/Element/TextArea.php | 2 + src/Phalcon/Helper/Arr.php | 15 +- src/Phalcon/Helper/Base64.php | 41 + src/Phalcon/Helper/Json.php | 2 + src/Phalcon/Helper/Str.php | 17 + src/Phalcon/Html/Helper/AbstractHelper.php | 103 +- src/Phalcon/Html/Helper/AbstractList.php | 64 + src/Phalcon/Html/Helper/AbstractSeries.php | 53 + src/Phalcon/Html/Helper/Anchor.php | 29 +- src/Phalcon/Html/Helper/AnchorRaw.php | 29 - .../Html/Helper/{ElementRaw.php => Base.php} | 15 +- src/Phalcon/Html/Helper/Body.php | 12 +- src/Phalcon/Html/Helper/Button.php | 17 +- src/Phalcon/Html/Helper/Close.php | 11 +- src/Phalcon/Html/Helper/Element.php | 19 +- src/Phalcon/Html/Helper/Form.php | 12 +- src/Phalcon/Html/Helper/Img.php | 8 +- .../Html/Helper/Input/AbstractInput.php | 64 + src/Phalcon/Html/Helper/Input/Checkbox.php | 78 + src/Phalcon/Html/Helper/Input/Color.php | 19 + src/Phalcon/Html/Helper/Input/Date.php | 19 + src/Phalcon/Html/Helper/Input/DateTime.php | 19 + .../Html/Helper/Input/DateTimeLocal.php | 19 + src/Phalcon/Html/Helper/Input/Email.php | 19 + src/Phalcon/Html/Helper/Input/File.php | 19 + src/Phalcon/Html/Helper/Input/Hidden.php | 19 + src/Phalcon/Html/Helper/Input/Image.php | 19 + src/Phalcon/Html/Helper/Input/Input.php | 28 + src/Phalcon/Html/Helper/Input/Month.php | 19 + src/Phalcon/Html/Helper/Input/Numeric.php | 19 + src/Phalcon/Html/Helper/Input/Password.php | 19 + src/Phalcon/Html/Helper/Input/Radio.php | 21 + src/Phalcon/Html/Helper/Input/Range.php | 19 + src/Phalcon/Html/Helper/Input/Search.php | 19 + src/Phalcon/Html/Helper/Input/Select.php | 124 + src/Phalcon/Html/Helper/Input/Submit.php | 19 + src/Phalcon/Html/Helper/Input/Tel.php | 19 + src/Phalcon/Html/Helper/Input/Text.php | 18 + src/Phalcon/Html/Helper/Input/Textarea.php | 34 + src/Phalcon/Html/Helper/Input/Time.php | 19 + src/Phalcon/Html/Helper/Input/Url.php | 19 + src/Phalcon/Html/Helper/Input/Week.php | 19 + src/Phalcon/Html/Helper/Label.php | 8 +- src/Phalcon/Html/Helper/Link.php | 36 + src/Phalcon/Html/Helper/Meta.php | 82 + src/Phalcon/Html/Helper/Ol.php | 38 + src/Phalcon/Html/Helper/Script.php | 36 + src/Phalcon/Html/Helper/Style.php | 51 + src/Phalcon/Html/Helper/Title.php | 114 + .../Html/Helper/{TextArea.php => Ul.php} | 10 +- src/Phalcon/Html/Link/Link.php | 5 +- src/Phalcon/Html/TagFactory.php | 1 + src/Phalcon/Http/Message/AbstractMessage.php | 17 +- src/Phalcon/Http/Message/Request.php | 2 + src/Phalcon/Http/Message/RequestFactory.php | 2 +- src/Phalcon/Http/Message/Response.php | 3 + src/Phalcon/Http/Message/ResponseFactory.php | 2 +- src/Phalcon/Http/Message/ServerRequest.php | 4 +- .../Http/Message/ServerRequestFactory.php | 52 +- src/Phalcon/Http/Message/Stream.php | 3 + src/Phalcon/Http/Message/StreamFactory.php | 1 + src/Phalcon/Http/Message/UploadedFile.php | 3 + .../Http/Message/UploadedFileFactory.php | 2 +- src/Phalcon/Http/Message/Uri.php | 6 +- src/Phalcon/Http/Request.php | 24 + src/Phalcon/Http/RequestInterface.php | 3 + src/Phalcon/Http/Response.php | 15 +- src/Phalcon/Http/Response/Headers.php | 2 +- .../Http/Response/HeadersInterface.php | 2 +- src/Phalcon/Http/ResponseInterface.php | 1 + src/Phalcon/Loader.php | 2 + src/Phalcon/Logger.php | 2 + src/Phalcon/Logger/Adapter/Noop.php | 2 + src/Phalcon/Logger/Adapter/Stream.php | 6 + src/Phalcon/Logger/Adapter/Syslog.php | 8 + src/Phalcon/Logger/Formatter/Json.php | 3 + src/Phalcon/Logger/Formatter/Line.php | 3 + src/Phalcon/Logger/LoggerFactory.php | 3 + src/Phalcon/Messages/Message.php | 2 + src/Phalcon/Messages/Messages.php | 5 + src/Phalcon/Mvc/Micro/LazyLoader.php | 5 + src/Phalcon/Mvc/Model.php | 173 +- src/Phalcon/Mvc/Model/CriteriaInterface.php | 4 +- src/Phalcon/Mvc/Model/Manager.php | 33 +- src/Phalcon/Mvc/Model/Query.php | 18 +- src/Phalcon/Mvc/ModelInterface.php | 4 +- src/Phalcon/Mvc/Router.php | 3 - src/Phalcon/Mvc/Router/Annotations.php | 36 + src/Phalcon/Mvc/View/Engine/Volt/Compiler.php | 2 + src/Phalcon/Paginator/Adapter/Model.php | 4 + src/Phalcon/Paginator/Adapter/NativeArray.php | 1 + .../Paginator/Adapter/QueryBuilder.php | 2 + src/Phalcon/Paginator/PaginatorFactory.php | 3 +- src/Phalcon/Paginator/Repository.php | 3 + src/Phalcon/Registry.php | 2 +- src/Phalcon/Security.php | 2 + src/Phalcon/Security/JWT/Builder.php | 304 +++ .../UnsupportedAlgorithmException.php | 25 + .../JWT/Exceptions/ValidatorException.php | 25 + .../Security/JWT/Signer/AbstractSigner.php | 31 + src/Phalcon/Security/JWT/Signer/Hmac.php | 76 + src/Phalcon/Security/JWT/Signer/None.php | 60 + .../Security/JWT/Signer/SignerInterface.php | 57 + .../Security/JWT/Token/AbstractItem.php | 31 + src/Phalcon/Security/JWT/Token/Enum.php | 52 + src/Phalcon/Security/JWT/Token/Item.php | 53 + src/Phalcon/Security/JWT/Token/Parser.php | 73 + src/Phalcon/Security/JWT/Token/Signature.php | 34 + src/Phalcon/Security/JWT/Token/Token.php | 84 + src/Phalcon/Security/JWT/Validator.php | 133 ++ src/Phalcon/Session/Adapter/Libmemcached.php | 3 + src/Phalcon/Session/Adapter/Noop.php | 2 + src/Phalcon/Session/Adapter/Redis.php | 3 + src/Phalcon/Session/Adapter/Stream.php | 3 + src/Phalcon/Session/Bag.php | 2 +- src/Phalcon/Session/Manager.php | 5 +- src/Phalcon/Session/ManagerInterface.php | 1 + src/Phalcon/Storage/Adapter/Libmemcached.php | 3 + src/Phalcon/Storage/Adapter/Memory.php | 7 +- src/Phalcon/Storage/Adapter/Redis.php | 3 + src/Phalcon/Storage/Adapter/Stream.php | 7 + src/Phalcon/Storage/Serializer/Json.php | 4 + src/Phalcon/Storage/Serializer/None.php | 2 + src/Phalcon/Storage/Serializer/Php.php | 3 + .../Serializer/SerializerInterface.php | 2 + src/Phalcon/Tag.php | 16 + src/Phalcon/Text.php | 2 + src/Phalcon/Translate/Adapter/NativeArray.php | 4 + src/Phalcon/Translate/TranslateFactory.php | 2 + src/Phalcon/Url.php | 3 + src/Phalcon/Validation.php | 6 + .../Validation/ValidationInterface.php | 2 + .../Validation/Validator/File/MimeType.php | 2 + .../Validator/File/Resolution/Max.php | 2 + .../Validator/File/Resolution/Min.php | 2 + .../Validation/Validator/File/Size/Max.php | 2 + .../Validation/Validator/File/Size/Min.php | 2 + .../Validation/Validator/Numericality.php | 2 + .../Validation/Validator/PresenceOf.php | 2 + src/Phalcon/Validation/Validator/Regex.php | 2 + .../Validation/Validator/StringLength.php | 5 + .../Validation/Validator/StringLength/Max.php | 3 + .../Validation/Validator/StringLength/Min.php | 3 + .../Validation/Validator/Uniqueness.php | 5 + src/Phalcon/Validation/Validator/Url.php | 2 + .../ValidatorCompositeInterface.php | 2 + src/Phalcon/Validation/ValidatorFactory.php | 1 + src/Phalcon/Validation/ValidatorInterface.php | 2 + src/Phalcon/Version.php | 30 + 203 files changed, 8221 insertions(+), 188 deletions(-) create mode 100644 composer.lock create mode 100644 src/Phalcon/Collection/CollectionInterface.php create mode 100644 src/Phalcon/Config/ConfigInterface.php create mode 100644 src/Phalcon/DataMapper/Pdo/Connection.php create mode 100644 src/Phalcon/DataMapper/Pdo/Connection/AbstractConnection.php create mode 100644 src/Phalcon/DataMapper/Pdo/Connection/ConnectionInterface.php create mode 100644 src/Phalcon/DataMapper/Pdo/Connection/Decorated.php create mode 100644 src/Phalcon/DataMapper/Pdo/Connection/PdoInterface.php create mode 100644 src/Phalcon/DataMapper/Pdo/ConnectionLocator.php create mode 100644 src/Phalcon/DataMapper/Pdo/ConnectionLocatorInterface.php create mode 100644 src/Phalcon/DataMapper/Pdo/Exception/CannotDisconnect.php create mode 100644 src/Phalcon/DataMapper/Pdo/Exception/ConnectionNotFound.php create mode 100644 src/Phalcon/DataMapper/Pdo/Exception/Exception.php create mode 100644 src/Phalcon/DataMapper/Pdo/Profiler/MemoryLogger.php create mode 100644 src/Phalcon/DataMapper/Pdo/Profiler/Profiler.php create mode 100644 src/Phalcon/DataMapper/Pdo/Profiler/ProfilerInterface.php create mode 100644 src/Phalcon/DataMapper/Query/AbstractConditions.php create mode 100644 src/Phalcon/DataMapper/Query/AbstractQuery.php create mode 100644 src/Phalcon/DataMapper/Query/Bind.php create mode 100644 src/Phalcon/DataMapper/Query/Delete.php create mode 100644 src/Phalcon/DataMapper/Query/Insert.php create mode 100644 src/Phalcon/DataMapper/Query/QueryFactory.php create mode 100644 src/Phalcon/DataMapper/Query/Select.php create mode 100644 src/Phalcon/DataMapper/Query/Update.php create mode 100644 src/Phalcon/Helper/Base64.php create mode 100644 src/Phalcon/Html/Helper/AbstractList.php create mode 100644 src/Phalcon/Html/Helper/AbstractSeries.php delete mode 100644 src/Phalcon/Html/Helper/AnchorRaw.php rename src/Phalcon/Html/Helper/{ElementRaw.php => Base.php} (50%) create mode 100644 src/Phalcon/Html/Helper/Input/AbstractInput.php create mode 100644 src/Phalcon/Html/Helper/Input/Checkbox.php create mode 100644 src/Phalcon/Html/Helper/Input/Color.php create mode 100644 src/Phalcon/Html/Helper/Input/Date.php create mode 100644 src/Phalcon/Html/Helper/Input/DateTime.php create mode 100644 src/Phalcon/Html/Helper/Input/DateTimeLocal.php create mode 100644 src/Phalcon/Html/Helper/Input/Email.php create mode 100644 src/Phalcon/Html/Helper/Input/File.php create mode 100644 src/Phalcon/Html/Helper/Input/Hidden.php create mode 100644 src/Phalcon/Html/Helper/Input/Image.php create mode 100644 src/Phalcon/Html/Helper/Input/Input.php create mode 100644 src/Phalcon/Html/Helper/Input/Month.php create mode 100644 src/Phalcon/Html/Helper/Input/Numeric.php create mode 100644 src/Phalcon/Html/Helper/Input/Password.php create mode 100644 src/Phalcon/Html/Helper/Input/Radio.php create mode 100644 src/Phalcon/Html/Helper/Input/Range.php create mode 100644 src/Phalcon/Html/Helper/Input/Search.php create mode 100644 src/Phalcon/Html/Helper/Input/Select.php create mode 100644 src/Phalcon/Html/Helper/Input/Submit.php create mode 100644 src/Phalcon/Html/Helper/Input/Tel.php create mode 100644 src/Phalcon/Html/Helper/Input/Text.php create mode 100644 src/Phalcon/Html/Helper/Input/Textarea.php create mode 100644 src/Phalcon/Html/Helper/Input/Time.php create mode 100644 src/Phalcon/Html/Helper/Input/Url.php create mode 100644 src/Phalcon/Html/Helper/Input/Week.php create mode 100644 src/Phalcon/Html/Helper/Link.php create mode 100644 src/Phalcon/Html/Helper/Meta.php create mode 100644 src/Phalcon/Html/Helper/Ol.php create mode 100644 src/Phalcon/Html/Helper/Script.php create mode 100644 src/Phalcon/Html/Helper/Style.php create mode 100644 src/Phalcon/Html/Helper/Title.php rename src/Phalcon/Html/Helper/{TextArea.php => Ul.php} (51%) create mode 100644 src/Phalcon/Security/JWT/Builder.php create mode 100644 src/Phalcon/Security/JWT/Exceptions/UnsupportedAlgorithmException.php create mode 100644 src/Phalcon/Security/JWT/Exceptions/ValidatorException.php create mode 100644 src/Phalcon/Security/JWT/Signer/AbstractSigner.php create mode 100644 src/Phalcon/Security/JWT/Signer/Hmac.php create mode 100644 src/Phalcon/Security/JWT/Signer/None.php create mode 100644 src/Phalcon/Security/JWT/Signer/SignerInterface.php create mode 100644 src/Phalcon/Security/JWT/Token/AbstractItem.php create mode 100644 src/Phalcon/Security/JWT/Token/Enum.php create mode 100644 src/Phalcon/Security/JWT/Token/Item.php create mode 100644 src/Phalcon/Security/JWT/Token/Parser.php create mode 100644 src/Phalcon/Security/JWT/Token/Signature.php create mode 100644 src/Phalcon/Security/JWT/Token/Token.php create mode 100644 src/Phalcon/Security/JWT/Validator.php diff --git a/composer.lock b/composer.lock new file mode 100644 index 00000000..6c61c5c9 --- /dev/null +++ b/composer.lock @@ -0,0 +1,2076 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "810d9bc61ae4fe5487f474ce57be9d2b", + "packages": [], + "packages-dev": [ + { + "name": "amphp/amp", + "version": "v2.5.1", + "source": { + "type": "git", + "url": "https://github.com/amphp/amp.git", + "reference": "ecdc3c476b3ccff02f8e5d5bcc04f7ccfd18751c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/amp/zipball/ecdc3c476b3ccff02f8e5d5bcc04f7ccfd18751c", + "reference": "ecdc3c476b3ccff02f8e5d5bcc04f7ccfd18751c", + "shasum": "" + }, + "require": { + "php": ">=7" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "dev-master", + "amphp/phpunit-util": "^1", + "ext-json": "*", + "jetbrains/phpstorm-stubs": "^2019.3", + "phpunit/phpunit": "^6.0.9 | ^7", + "psalm/phar": "^3.11@dev", + "react/promise": "^2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Amp\\": "lib" + }, + "files": [ + "lib/functions.php", + "lib/Internal/functions.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Daniel Lowrey", + "email": "rdlowrey@php.net" + }, + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Bob Weinand", + "email": "bobwei9@hotmail.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + } + ], + "description": "A non-blocking concurrency framework for PHP applications.", + "homepage": "http://amphp.org/amp", + "keywords": [ + "async", + "asynchronous", + "awaitable", + "concurrency", + "event", + "event-loop", + "future", + "non-blocking", + "promise" + ], + "support": { + "irc": "irc://irc.freenode.org/amphp", + "issues": "https://github.com/amphp/amp/issues", + "source": "https://github.com/amphp/amp/tree/v2.5.1" + }, + "funding": [ + { + "url": "https://github.com/amphp", + "type": "github" + } + ], + "time": "2020-11-03T16:23:45+00:00" + }, + { + "name": "amphp/byte-stream", + "version": "v1.8.0", + "source": { + "type": "git", + "url": "https://github.com/amphp/byte-stream.git", + "reference": "f0c20cf598a958ba2aa8c6e5a71c697d652c7088" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/amphp/byte-stream/zipball/f0c20cf598a958ba2aa8c6e5a71c697d652c7088", + "reference": "f0c20cf598a958ba2aa8c6e5a71c697d652c7088", + "shasum": "" + }, + "require": { + "amphp/amp": "^2", + "php": ">=7.1" + }, + "require-dev": { + "amphp/php-cs-fixer-config": "dev-master", + "amphp/phpunit-util": "^1.4", + "friendsofphp/php-cs-fixer": "^2.3", + "jetbrains/phpstorm-stubs": "^2019.3", + "phpunit/phpunit": "^6 || ^7 || ^8", + "psalm/phar": "^3.11.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Amp\\ByteStream\\": "lib" + }, + "files": [ + "lib/functions.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Aaron Piotrowski", + "email": "aaron@trowski.com" + }, + { + "name": "Niklas Keller", + "email": "me@kelunik.com" + } + ], + "description": "A stream abstraction to make working with non-blocking I/O simple.", + "homepage": "http://amphp.org/byte-stream", + "keywords": [ + "amp", + "amphp", + "async", + "io", + "non-blocking", + "stream" + ], + "support": { + "irc": "irc://irc.freenode.org/amphp", + "issues": "https://github.com/amphp/byte-stream/issues", + "source": "https://github.com/amphp/byte-stream/tree/master" + }, + "time": "2020-06-29T18:35:05+00:00" + }, + { + "name": "composer/package-versions-deprecated", + "version": "1.11.99.1", + "source": { + "type": "git", + "url": "https://github.com/composer/package-versions-deprecated.git", + "reference": "7413f0b55a051e89485c5cb9f765fe24bb02a7b6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/7413f0b55a051e89485c5cb9f765fe24bb02a7b6", + "reference": "7413f0b55a051e89485c5cb9f765fe24bb02a7b6", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.1.0 || ^2.0", + "php": "^7 || ^8" + }, + "replace": { + "ocramius/package-versions": "1.11.99" + }, + "require-dev": { + "composer/composer": "^1.9.3 || ^2.0@dev", + "ext-zip": "^1.13", + "phpunit/phpunit": "^6.5 || ^7" + }, + "type": "composer-plugin", + "extra": { + "class": "PackageVersions\\Installer", + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "PackageVersions\\": "src/PackageVersions" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be" + } + ], + "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", + "support": { + "issues": "https://github.com/composer/package-versions-deprecated/issues", + "source": "https://github.com/composer/package-versions-deprecated/tree/1.11.99.1" + }, + "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": "2020-11-11T10:22:58+00:00" + }, + { + "name": "composer/semver", + "version": "3.2.3", + "source": { + "type": "git", + "url": "https://github.com/composer/semver.git", + "reference": "bcf1cc72150023e1c3dca4a353296b4c83deea41" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/semver/zipball/bcf1cc72150023e1c3dca4a353296b4c83deea41", + "reference": "bcf1cc72150023e1c3dca4a353296b4c83deea41", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^0.12.19", + "symfony/phpunit-bridge": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Semver\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + }, + { + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" + } + ], + "description": "Semver library that offers utilities, version constraint parsing and validation.", + "keywords": [ + "semantic", + "semver", + "validation", + "versioning" + ], + "support": { + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/semver/issues", + "source": "https://github.com/composer/semver/tree/3.2.3" + }, + "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": "2020-11-12T11:25:27+00:00" + }, + { + "name": "composer/xdebug-handler", + "version": "1.4.4", + "source": { + "type": "git", + "url": "https://github.com/composer/xdebug-handler.git", + "reference": "6e076a124f7ee146f2487554a94b6a19a74887ba" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6e076a124f7ee146f2487554a94b6a19a74887ba", + "reference": "6e076a124f7ee146f2487554a94b6a19a74887ba", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0 || ^8.0", + "psr/log": "^1.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8" + }, + "type": "library", + "autoload": { + "psr-4": { + "Composer\\XdebugHandler\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "John Stevenson", + "email": "john-stevenson@blueyonder.co.uk" + } + ], + "description": "Restarts a process without Xdebug.", + "keywords": [ + "Xdebug", + "performance" + ], + "support": { + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/xdebug-handler/issues", + "source": "https://github.com/composer/xdebug-handler/tree/1.4.4" + }, + "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": "2020-10-24T12:39:10+00:00" + }, + { + "name": "dnoegel/php-xdg-base-dir", + "version": "v0.1.1", + "source": { + "type": "git", + "url": "https://github.com/dnoegel/php-xdg-base-dir.git", + "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", + "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "require-dev": { + "phpunit/phpunit": "~7.0|~6.0|~5.0|~4.8.35" + }, + "type": "library", + "autoload": { + "psr-4": { + "XdgBaseDir\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "implementation of xdg base directory specification for php", + "support": { + "issues": "https://github.com/dnoegel/php-xdg-base-dir/issues", + "source": "https://github.com/dnoegel/php-xdg-base-dir/tree/v0.1.1" + }, + "time": "2019-12-04T15:06:13+00:00" + }, + { + "name": "felixfbecker/advanced-json-rpc", + "version": "v3.1.1", + "source": { + "type": "git", + "url": "https://github.com/felixfbecker/php-advanced-json-rpc.git", + "reference": "0ed363f8de17d284d479ec813c9ad3f6834b5c40" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/felixfbecker/php-advanced-json-rpc/zipball/0ed363f8de17d284d479ec813c9ad3f6834b5c40", + "reference": "0ed363f8de17d284d479ec813c9ad3f6834b5c40", + "shasum": "" + }, + "require": { + "netresearch/jsonmapper": "^1.0 || ^2.0", + "php": ">=7.0", + "phpdocumentor/reflection-docblock": "^4.0.0 || ^5.0.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "AdvancedJsonRpc\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "ISC" + ], + "authors": [ + { + "name": "Felix Becker", + "email": "felix.b@outlook.com" + } + ], + "description": "A more advanced JSONRPC implementation", + "support": { + "issues": "https://github.com/felixfbecker/php-advanced-json-rpc/issues", + "source": "https://github.com/felixfbecker/php-advanced-json-rpc/tree/master" + }, + "time": "2020-03-11T15:21:41+00:00" + }, + { + "name": "felixfbecker/language-server-protocol", + "version": "v1.5.0", + "source": { + "type": "git", + "url": "https://github.com/felixfbecker/php-language-server-protocol.git", + "reference": "85e83cacd2ed573238678c6875f8f0d7ec699541" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/85e83cacd2ed573238678c6875f8f0d7ec699541", + "reference": "85e83cacd2ed573238678c6875f8f0d7ec699541", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "require-dev": { + "phpstan/phpstan": "*", + "squizlabs/php_codesniffer": "^3.1", + "vimeo/psalm": "^4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "LanguageServerProtocol\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "ISC" + ], + "authors": [ + { + "name": "Felix Becker", + "email": "felix.b@outlook.com" + } + ], + "description": "PHP classes for the Language Server Protocol", + "keywords": [ + "language", + "microsoft", + "php", + "server" + ], + "support": { + "issues": "https://github.com/felixfbecker/php-language-server-protocol/issues", + "source": "https://github.com/felixfbecker/php-language-server-protocol/tree/v1.5.0" + }, + "time": "2020-10-23T13:55:30+00:00" + }, + { + "name": "netresearch/jsonmapper", + "version": "v2.1.0", + "source": { + "type": "git", + "url": "https://github.com/cweiske/jsonmapper.git", + "reference": "e0f1e33a71587aca81be5cffbb9746510e1fe04e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/e0f1e33a71587aca81be5cffbb9746510e1fe04e", + "reference": "e0f1e33a71587aca81be5cffbb9746510e1fe04e", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-pcre": "*", + "ext-reflection": "*", + "ext-spl": "*", + "php": ">=5.6" + }, + "require-dev": { + "phpunit/phpunit": "~4.8.35 || ~5.7 || ~6.4 || ~7.0", + "squizlabs/php_codesniffer": "~3.5" + }, + "type": "library", + "autoload": { + "psr-0": { + "JsonMapper": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "OSL-3.0" + ], + "authors": [ + { + "name": "Christian Weiske", + "email": "cweiske@cweiske.de", + "homepage": "http://github.com/cweiske/jsonmapper/", + "role": "Developer" + } + ], + "description": "Map nested JSON structures onto PHP classes", + "support": { + "email": "cweiske@cweiske.de", + "issues": "https://github.com/cweiske/jsonmapper/issues", + "source": "https://github.com/cweiske/jsonmapper/tree/master" + }, + "time": "2020-04-16T18:48:43+00:00" + }, + { + "name": "nikic/php-parser", + "version": "v4.10.2", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "658f1be311a230e0907f5dfe0213742aff0596de" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/658f1be311a230e0907f5dfe0213742aff0596de", + "reference": "658f1be311a230e0907f5dfe0213742aff0596de", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=7.0" + }, + "require-dev": { + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.9-dev" + } + }, + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } + }, + "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/v4.10.2" + }, + "time": "2020-09-26T10:30:38+00:00" + }, + { + "name": "openlss/lib-array2xml", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/nullivex/lib-array2xml.git", + "reference": "a91f18a8dfc69ffabe5f9b068bc39bb202c81d90" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nullivex/lib-array2xml/zipball/a91f18a8dfc69ffabe5f9b068bc39bb202c81d90", + "reference": "a91f18a8dfc69ffabe5f9b068bc39bb202c81d90", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "type": "library", + "autoload": { + "psr-0": { + "LSS": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Bryan Tong", + "email": "bryan@nullivex.com", + "homepage": "https://www.nullivex.com" + }, + { + "name": "Tony Butler", + "email": "spudz76@gmail.com", + "homepage": "https://www.nullivex.com" + } + ], + "description": "Array2XML conversion library credit to lalit.org", + "homepage": "https://www.nullivex.com", + "keywords": [ + "array", + "array conversion", + "xml", + "xml conversion" + ], + "support": { + "issues": "https://github.com/nullivex/lib-array2xml/issues", + "source": "https://github.com/nullivex/lib-array2xml/tree/master" + }, + "time": "2019-03-29T20:06:56+00:00" + }, + { + "name": "phpdocumentor/reflection-common", + "version": "2.2.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-2.x": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" + } + ], + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", + "keywords": [ + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" + ], + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", + "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" + }, + "time": "2020-06-27T09:03:43+00:00" + }, + { + "name": "phpdocumentor/reflection-docblock", + "version": "5.2.2", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/069a785b2141f5bcf49f3e353548dc1cce6df556", + "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556", + "shasum": "" + }, + "require": { + "ext-filter": "*", + "php": "^7.2 || ^8.0", + "phpdocumentor/reflection-common": "^2.2", + "phpdocumentor/type-resolver": "^1.3", + "webmozart/assert": "^1.9.1" + }, + "require-dev": { + "mockery/mockery": "~1.3.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + }, + { + "name": "Jaap van Otterdijk", + "email": "account@ijaap.nl" + } + ], + "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/master" + }, + "time": "2020-09-03T19:13:55+00:00" + }, + { + "name": "phpdocumentor/type-resolver", + "version": "1.4.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", + "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0", + "phpdocumentor/reflection-common": "^2.0" + }, + "require-dev": { + "ext-tokenizer": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-1.x": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", + "support": { + "issues": "https://github.com/phpDocumentor/TypeResolver/issues", + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.4.0" + }, + "time": "2020-09-17T18:55:26+00:00" + }, + { + "name": "psr/container", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://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/master" + }, + "time": "2017-02-14T16:28:37+00:00" + }, + { + "name": "psr/log", + "version": "1.1.3", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc", + "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc", + "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": "http://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.3" + }, + "time": "2020-03-23T09:12:05+00:00" + }, + { + "name": "sebastian/diff", + "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3", + "symfony/process": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:10:38+00:00" + }, + { + "name": "squizlabs/php_codesniffer", + "version": "3.5.8", + "source": { + "type": "git", + "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", + "reference": "9d583721a7157ee997f235f327de038e7ea6dac4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/9d583721a7157ee997f235f327de038e7ea6dac4", + "reference": "9d583721a7157ee997f235f327de038e7ea6dac4", + "shasum": "" + }, + "require": { + "ext-simplexml": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" + }, + "bin": [ + "bin/phpcs", + "bin/phpcbf" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Greg Sherwood", + "role": "lead" + } + ], + "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", + "keywords": [ + "phpcs", + "standards" + ], + "support": { + "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues", + "source": "https://github.com/squizlabs/PHP_CodeSniffer", + "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" + }, + "time": "2020-10-23T02:01:07+00:00" + }, + { + "name": "symfony/console", + "version": "v5.1.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "e0b2c29c0fa6a69089209bbe8fcff4df2a313d0e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/e0b2c29c0fa6a69089209bbe8fcff4df2a313d0e", + "reference": "e0b2c29c0fa6a69089209bbe8fcff4df2a313d0e", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php73": "^1.8", + "symfony/polyfill-php80": "^1.15", + "symfony/service-contracts": "^1.1|^2", + "symfony/string": "^5.1" + }, + "conflict": { + "symfony/dependency-injection": "<4.4", + "symfony/dotenv": "<5.1", + "symfony/event-dispatcher": "<4.4", + "symfony/lock": "<4.4", + "symfony/process": "<4.4" + }, + "provide": { + "psr/log-implementation": "1.0" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "^4.4|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/event-dispatcher": "^4.4|^5.0", + "symfony/lock": "^4.4|^5.0", + "symfony/process": "^4.4|^5.0", + "symfony/var-dumper": "^4.4|^5.0" + }, + "suggest": { + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" + }, + "type": "library", + "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/v5.1.8" + }, + "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": "2020-10-24T12:01:57+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.20.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "f4ba089a5b6366e453971d3aad5fe8e897b37f41" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/f4ba089a5b6366e453971d3aad5fe8e897b37f41", + "reference": "f4ba089a5b6366e453971d3aad5fe8e897b37f41", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.20-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.20.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": "2020-10-23T14:02:19+00:00" + }, + { + "name": "symfony/polyfill-intl-grapheme", + "version": "v1.20.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "c7cf3f858ec7d70b89559d6e6eb1f7c2517d479c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/c7cf3f858ec7d70b89559d6e6eb1f7c2517d479c", + "reference": "c7cf3f858ec7d70b89559d6e6eb1f7c2517d479c", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.20-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + }, + "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 intl's grapheme_* functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "grapheme", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.20.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": "2020-10-23T14:02:19+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.20.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "727d1096295d807c309fb01a851577302394c897" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/727d1096295d807c309fb01a851577302394c897", + "reference": "727d1096295d807c309fb01a851577302394c897", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.20-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] + }, + "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 intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.20.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": "2020-10-23T14:02:19+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.20.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "39d483bdf39be819deabf04ec872eb0b2410b531" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/39d483bdf39be819deabf04ec872eb0b2410b531", + "reference": "39d483bdf39be819deabf04ec872eb0b2410b531", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.20-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.20.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": "2020-10-23T14:02:19+00:00" + }, + { + "name": "symfony/polyfill-php73", + "version": "v1.20.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "8ff431c517be11c78c48a39a66d37431e26a6bed" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/8ff431c517be11c78c48a39a66d37431e26a6bed", + "reference": "8ff431c517be11c78c48a39a66d37431e26a6bed", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.20-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] + }, + "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 backporting some PHP 7.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php73/tree/v1.20.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": "2020-10-23T14:02:19+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.20.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "e70aa8b064c5b72d3df2abd5ab1e90464ad009de" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/e70aa8b064c5b72d3df2abd5ab1e90464ad009de", + "reference": "e70aa8b064c5b72d3df2abd5ab1e90464ad009de", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.20-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.20.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": "2020-10-23T14:02:19+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v2.2.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d15da7ba4957ffb8f1747218be9e1a121fd298a1", + "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/container": "^1.0" + }, + "suggest": { + "symfony/service-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.2-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + } + }, + "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": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/master" + }, + "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": "2020-09-07T11:33:47+00:00" + }, + { + "name": "symfony/string", + "version": "v5.1.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/string.git", + "reference": "a97573e960303db71be0dd8fda9be3bca5e0feea" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/string/zipball/a97573e960303db71be0dd8fda9be3bca5e0feea", + "reference": "a97573e960303db71be0dd8fda9be3bca5e0feea", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-intl-grapheme": "~1.0", + "symfony/polyfill-intl-normalizer": "~1.0", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "~1.15" + }, + "require-dev": { + "symfony/error-handler": "^4.4|^5.0", + "symfony/http-client": "^4.4|^5.0", + "symfony/translation-contracts": "^1.1|^2", + "symfony/var-exporter": "^4.4|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\String\\": "" + }, + "files": [ + "Resources/functions.php" + ], + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "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 String component", + "homepage": "https://symfony.com", + "keywords": [ + "grapheme", + "i18n", + "string", + "unicode", + "utf-8", + "utf8" + ], + "support": { + "source": "https://github.com/symfony/string/tree/v5.1.8" + }, + "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": "2020-10-24T12:01:57+00:00" + }, + { + "name": "vimeo/psalm", + "version": "3.18.2", + "source": { + "type": "git", + "url": "https://github.com/vimeo/psalm.git", + "reference": "19aa905f7c3c7350569999a93c40ae91ae4e1626" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/19aa905f7c3c7350569999a93c40ae91ae4e1626", + "reference": "19aa905f7c3c7350569999a93c40ae91ae4e1626", + "shasum": "" + }, + "require": { + "amphp/amp": "^2.1", + "amphp/byte-stream": "^1.5", + "composer/package-versions-deprecated": "^1.8.0", + "composer/semver": "^1.4 || ^2.0 || ^3.0", + "composer/xdebug-handler": "^1.1", + "dnoegel/php-xdg-base-dir": "^0.1.1", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-simplexml": "*", + "ext-tokenizer": "*", + "felixfbecker/advanced-json-rpc": "^3.0.3", + "felixfbecker/language-server-protocol": "^1.4", + "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0", + "nikic/php-parser": "4.3.* || 4.4.* || 4.5.* || 4.6.* || ^4.8", + "openlss/lib-array2xml": "^1.0", + "php": "^7.1.3|^8", + "sebastian/diff": "^3.0 || ^4.0", + "symfony/console": "^3.4.17 || ^4.1.6 || ^5.0", + "webmozart/glob": "^4.1", + "webmozart/path-util": "^2.3" + }, + "provide": { + "psalm/psalm": "self.version" + }, + "require-dev": { + "amphp/amp": "^2.4.2", + "bamarni/composer-bin-plugin": "^1.2", + "brianium/paratest": "^4.0.0", + "ext-curl": "*", + "phpdocumentor/reflection-docblock": "^4.3.4 || ^5", + "phpmyadmin/sql-parser": "5.1.0", + "phpspec/prophecy": ">=1.9.0", + "phpunit/phpunit": "^7.5.16 || ^8.5 || ^9.0", + "psalm/plugin-phpunit": "^0.11", + "slevomat/coding-standard": "^5.0", + "squizlabs/php_codesniffer": "^3.5", + "symfony/process": "^4.3", + "weirdan/prophecy-shim": "^1.0 || ^2.0" + }, + "suggest": { + "ext-igbinary": "^2.0.5" + }, + "bin": [ + "psalm", + "psalm-language-server", + "psalm-plugin", + "psalm-refactor", + "psalter" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev", + "dev-2.x": "2.x-dev", + "dev-1.x": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psalm\\": "src/Psalm/" + }, + "files": [ + "src/functions.php", + "src/spl_object_id.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Matthew Brown" + } + ], + "description": "A static analysis tool for finding errors in PHP applications", + "keywords": [ + "code", + "inspection", + "php" + ], + "support": { + "issues": "https://github.com/vimeo/psalm/issues", + "source": "https://github.com/vimeo/psalm/tree/3.18.2" + }, + "time": "2020-10-20T13:48:22+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.9.1", + "source": { + "type": "git", + "url": "https://github.com/webmozart/assert.git", + "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozart/assert/zipball/bafc69caeb4d49c39fd0779086c03a3738cbb389", + "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0 || ^8.0", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "phpstan/phpstan": "<0.12.20", + "vimeo/psalm": "<3.9.1" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.36 || ^7.5.13" + }, + "type": "library", + "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/webmozart/assert/issues", + "source": "https://github.com/webmozart/assert/tree/master" + }, + "time": "2020-07-08T17:02:28+00:00" + }, + { + "name": "webmozart/glob", + "version": "4.1.0", + "source": { + "type": "git", + "url": "https://github.com/webmozart/glob.git", + "reference": "3cbf63d4973cf9d780b93d2da8eec7e4a9e63bbe" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozart/glob/zipball/3cbf63d4973cf9d780b93d2da8eec7e4a9e63bbe", + "reference": "3cbf63d4973cf9d780b93d2da8eec7e4a9e63bbe", + "shasum": "" + }, + "require": { + "php": "^5.3.3|^7.0", + "webmozart/path-util": "^2.2" + }, + "require-dev": { + "phpunit/phpunit": "^4.6", + "sebastian/version": "^1.0.1", + "symfony/filesystem": "^2.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.1-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\Glob\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "A PHP implementation of Ant's glob.", + "support": { + "issues": "https://github.com/webmozart/glob/issues", + "source": "https://github.com/webmozart/glob/tree/master" + }, + "time": "2015-12-29T11:14:33+00:00" + }, + { + "name": "webmozart/path-util", + "version": "2.3.0", + "source": { + "type": "git", + "url": "https://github.com/webmozart/path-util.git", + "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozart/path-util/zipball/d939f7edc24c9a1bb9c0dee5cb05d8e859490725", + "reference": "d939f7edc24c9a1bb9c0dee5cb05d8e859490725", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "webmozart/assert": "~1.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.6", + "sebastian/version": "^1.0.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.3-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\PathUtil\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "A robust cross-platform utility for normalizing, comparing and modifying file paths.", + "support": { + "issues": "https://github.com/webmozart/path-util/issues", + "source": "https://github.com/webmozart/path-util/tree/2.3.0" + }, + "time": "2015-12-17T08:42:14+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "php": ">=7.2.0" + }, + "platform-dev": [], + "plugin-api-version": "2.0.0" +} diff --git a/src/Phalcon/Annotations/Adapter/Memory.php b/src/Phalcon/Annotations/Adapter/Memory.php index dbbb475a..99130421 100644 --- a/src/Phalcon/Annotations/Adapter/Memory.php +++ b/src/Phalcon/Annotations/Adapter/Memory.php @@ -9,6 +9,8 @@ */ namespace Phalcon\Annotations\Adapter; +use Phalcon\Annotations\Reflection; + /** * Stores the parsed annotations in memory. This adapter is the suitable * development/testing diff --git a/src/Phalcon/Annotations/Adapter/Stream.php b/src/Phalcon/Annotations/Adapter/Stream.php index 758856fe..e2140f32 100644 --- a/src/Phalcon/Annotations/Adapter/Stream.php +++ b/src/Phalcon/Annotations/Adapter/Stream.php @@ -9,6 +9,10 @@ */ namespace Phalcon\Annotations\Adapter; +use Phalcon\Annotations\Reflection; +use Phalcon\Annotations\Exception; +use RuntimeException; + /** * Stores the parsed annotations in files. This adapter is suitable for production * diff --git a/src/Phalcon/Annotations/Reader.php b/src/Phalcon/Annotations/Reader.php index ddccab04..21eeb9d4 100644 --- a/src/Phalcon/Annotations/Reader.php +++ b/src/Phalcon/Annotations/Reader.php @@ -9,6 +9,8 @@ */ namespace Phalcon\Annotations; +use ReflectionClass; + /** * Parses docblocks returning an array with the found annotations */ diff --git a/src/Phalcon/Assets/Filters/None.php b/src/Phalcon/Assets/Filters/None.php index a5e19df9..ba7c59c9 100644 --- a/src/Phalcon/Assets/Filters/None.php +++ b/src/Phalcon/Assets/Filters/None.php @@ -9,6 +9,8 @@ */ namespace Phalcon\Assets\Filters; +use Phalcon\Assets\FilterInterface; + /** * Returns the content without make any modification to the original source */ diff --git a/src/Phalcon/Assets/Manager.php b/src/Phalcon/Assets/Manager.php index d372afa9..8507aaab 100644 --- a/src/Phalcon/Assets/Manager.php +++ b/src/Phalcon/Assets/Manager.php @@ -9,6 +9,12 @@ */ namespace Phalcon\Assets; +use Phalcon\Tag; +use Phalcon\Assets\Asset\Js as AssetJs; +use Phalcon\Assets\Asset\Css as AssetCss; +use Phalcon\Assets\Inline\Css as InlineCss; +use Phalcon\Assets\Inline\Js as InlineJs; +use Phalcon\Di\DiInterface; use Phalcon\Di\AbstractInjectionAware; /** diff --git a/src/Phalcon/Cache/Adapter/Libmemcached.php b/src/Phalcon/Cache/Adapter/Libmemcached.php index 43526134..a00deb4a 100644 --- a/src/Phalcon/Cache/Adapter/Libmemcached.php +++ b/src/Phalcon/Cache/Adapter/Libmemcached.php @@ -10,6 +10,7 @@ namespace Phalcon\Cache\Adapter; use Phalcon\Cache\Adapter\AdapterInterface as CacheAdapterInterface; +use Phalcon\Storage\Adapter\Libmemcached as StorageLibmemcached; /** * Libmemcached adapter diff --git a/src/Phalcon/Cache/Adapter/Memory.php b/src/Phalcon/Cache/Adapter/Memory.php index 4cbe2d5e..41619081 100644 --- a/src/Phalcon/Cache/Adapter/Memory.php +++ b/src/Phalcon/Cache/Adapter/Memory.php @@ -10,6 +10,7 @@ namespace Phalcon\Cache\Adapter; use Phalcon\Cache\Adapter\AdapterInterface as CacheAdapterInterface; +use Phalcon\Storage\Adapter\Memory as StorageMemory; /** * Memory adapter diff --git a/src/Phalcon/Cache/Adapter/Redis.php b/src/Phalcon/Cache/Adapter/Redis.php index c3c8ce7a..f9551cec 100644 --- a/src/Phalcon/Cache/Adapter/Redis.php +++ b/src/Phalcon/Cache/Adapter/Redis.php @@ -10,6 +10,7 @@ namespace Phalcon\Cache\Adapter; use Phalcon\Cache\Adapter\AdapterInterface as CacheAdapterInterface; +use Phalcon\Storage\Adapter\Redis as StorageRedis; /** * Redis adapter diff --git a/src/Phalcon/Cache/Adapter/Stream.php b/src/Phalcon/Cache/Adapter/Stream.php index 7002ae87..376e7a73 100644 --- a/src/Phalcon/Cache/Adapter/Stream.php +++ b/src/Phalcon/Cache/Adapter/Stream.php @@ -10,6 +10,7 @@ namespace Phalcon\Cache\Adapter; use Phalcon\Cache\Adapter\AdapterInterface as CacheAdapterInterface; +use Phalcon\Storage\Adapter\Stream as StorageStream; /** * Stream adapter diff --git a/src/Phalcon/Collection.php b/src/Phalcon/Collection.php index 0c8dd5af..43d92fb6 100644 --- a/src/Phalcon/Collection.php +++ b/src/Phalcon/Collection.php @@ -23,7 +23,7 @@ * Such implementations are for instance accessing globals `$_GET`, `$_POST` * etc. */ -class Collection implements \ArrayAccess, \Countable, \IteratorAggregate, \JsonSerializable, \Serializable +class Collection implements \ArrayAccess, \Phalcon\Collection\CollectionInterface, \Countable, \IteratorAggregate, \JsonSerializable, \Serializable { /** * @var array @@ -148,7 +148,7 @@ public function getValues(): array } /** - * Get the element from the collection + * Determines whether an element is present in the collection. * * @param string $element * @return bool diff --git a/src/Phalcon/Collection/CollectionInterface.php b/src/Phalcon/Collection/CollectionInterface.php new file mode 100644 index 00000000..73c7554f --- /dev/null +++ b/src/Phalcon/Collection/CollectionInterface.php @@ -0,0 +1,104 @@ + + * + * For the full copyright and license information, please view the LICENSE.txt + * file that was distributed with this source code. + */ +namespace Phalcon\Collection; + +/** + * Phalcon\Collection\CollectionInterface + * + * Interface for Phalcon\Collection class + */ +interface CollectionInterface +{ + + /** + * @param string $element + * @return mixed + */ + public function __get(string $element); + + /** + * @param string $element + * @return bool + */ + public function __isset(string $element): bool; + + /** + * @param string $element + * @param mixed $value + * @return void + */ + public function __set(string $element, $value); + + /** + * @param string $element + * @return void + */ + public function __unset(string $element); + + /** + * @return void + */ + public function clear(); + + /** + * @param string $element + * @param mixed $defaultValue + * @param string $cast + * @return mixed + */ + public function get(string $element, $defaultValue = null, string $cast = null); + + /** + * @param bool $insensitive + * @return array + */ + public function getKeys(bool $insensitive = true): array; + + /** + * @return array + */ + public function getValues(): array; + + /** + * @param string $element + * @return bool + */ + public function has(string $element): bool; + + /** + * @param array $data + * @return void + */ + public function init(array $data = array()); + + /** + * @param string $element + * @return void + */ + public function remove(string $element); + + /** + * @param string $element + * @param mixed $value + * @return void + */ + public function set(string $element, $value); + + /** + * @return array + */ + public function toArray(): array; + + /** + * @param int $options + * @return string + */ + public function toJson(int $options = 79): string; +} diff --git a/src/Phalcon/Config.php b/src/Phalcon/Config.php index a439b09b..e5ba14d7 100644 --- a/src/Phalcon/Config.php +++ b/src/Phalcon/Config.php @@ -9,6 +9,8 @@ */ namespace Phalcon; +use Phalcon\Config\ConfigInterface; + /** * `Phalcon\Config` is designed to simplify the access to, and the use of, * configuration data within applications. It provides a nested object property @@ -34,7 +36,7 @@ * ); * ``` */ -class Config extends Collection +class Config extends Collection implements \Phalcon\Config\ConfigInterface { const DEFAULT_PATH_DELIMITER = '.'; @@ -70,9 +72,9 @@ public function getPathDelimiter(): string * ``` * * @param mixed $toMerge - * @return Config + * @return ConfigInterface */ - public function merge($toMerge): Config + public function merge($toMerge): ConfigInterface { } @@ -96,9 +98,9 @@ public function path(string $path, $defaultValue = null, $delimiter = null) * Sets the default path delimiter * * @param string $delimiter - * @return Config + * @return ConfigInterface */ - public function setPathDelimiter(string $delimiter = null): Config + public function setPathDelimiter(string $delimiter = null): ConfigInterface { } diff --git a/src/Phalcon/Config/Adapter/Json.php b/src/Phalcon/Config/Adapter/Json.php index 4c4b1e3f..f3595078 100644 --- a/src/Phalcon/Config/Adapter/Json.php +++ b/src/Phalcon/Config/Adapter/Json.php @@ -10,6 +10,7 @@ namespace Phalcon\Config\Adapter; use Phalcon\Config; +use Phalcon\Helper\Json as JsonHelper; /** * Reads JSON files and converts them to Phalcon\Config objects. diff --git a/src/Phalcon/Config/Adapter/Yaml.php b/src/Phalcon/Config/Adapter/Yaml.php index b4713fba..07961a2c 100644 --- a/src/Phalcon/Config/Adapter/Yaml.php +++ b/src/Phalcon/Config/Adapter/Yaml.php @@ -10,6 +10,7 @@ namespace Phalcon\Config\Adapter; use Phalcon\Config; +use Phalcon\Config\Exception; /** * Reads YAML files and converts them to Phalcon\Config objects. diff --git a/src/Phalcon/Config/ConfigFactory.php b/src/Phalcon/Config/ConfigFactory.php index 4b1df61e..b8f6d661 100644 --- a/src/Phalcon/Config/ConfigFactory.php +++ b/src/Phalcon/Config/ConfigFactory.php @@ -9,7 +9,6 @@ */ namespace Phalcon\Config; -use Phalcon\Config; use Phalcon\Factory\AbstractFactory; /** @@ -48,9 +47,9 @@ public function __construct(array $services = array()) * 'mode' => null, * 'callbacks' => null * ] - * @return Config + * @return ConfigInterface */ - public function load($config): Config + public function load($config): ConfigInterface { } @@ -60,9 +59,9 @@ public function load($config): Config * @param string $name * @param string $fileName * @param mixed $params - * @return Config + * @return ConfigInterface */ - public function newInstance(string $name, string $fileName, $params = null): Config + public function newInstance(string $name, string $fileName, $params = null): ConfigInterface { } diff --git a/src/Phalcon/Config/ConfigInterface.php b/src/Phalcon/Config/ConfigInterface.php new file mode 100644 index 00000000..82ea4de1 --- /dev/null +++ b/src/Phalcon/Config/ConfigInterface.php @@ -0,0 +1,44 @@ + + * + * For the full copyright and license information, please view the LICENSE.txt + * file that was distributed with this source code. + */ +namespace Phalcon\Config; + +/** + * Phalcon\Config\ConfigInterface + * + * Interface for Phalcon\Config class + */ +interface ConfigInterface extends \Phalcon\Collection\CollectionInterface +{ + + /** + * @return string + */ + public function getPathDelimiter(): string; + + /** + * @param mixed $toMerge + * @return ConfigInterface + */ + public function merge($toMerge): ConfigInterface; + + /** + * @param string $path + * @param mixed $defaultValue + * @param mixed $delimiter + * @return mixed|null + */ + public function path(string $path, $defaultValue = null, $delimiter = null); + + /** + * @param string $delimiter + * @return ConfigInterface + */ + public function setPathDelimiter(string $delimiter = null): ConfigInterface; +} diff --git a/src/Phalcon/DataMapper/Pdo/Connection.php b/src/Phalcon/DataMapper/Pdo/Connection.php new file mode 100644 index 00000000..d03e7147 --- /dev/null +++ b/src/Phalcon/DataMapper/Pdo/Connection.php @@ -0,0 +1,74 @@ + + * + * For the full copyright and license information, please view the LICENSE.txt + * file that was distributed with this source code. + */ +namespace Phalcon\DataMapper\Pdo; + +use Phalcon\DataMapper\Pdo\Connection\AbstractConnection; +use Phalcon\DataMapper\Pdo\Profiler\ProfilerInterface; + +/** + * Provides array quoting, profiling, a new `perform()` method, new `fetch()` + * methods + * + * @property array $arguments + * @property PDO $pdo + * @property ProfilerInterface $profiler + */ +class Connection extends AbstractConnection +{ + /** + * @var array + */ + protected $arguments = array(); + + + /** + * Constructor. + * + * This overrides the parent so that it can take connection attributes as a + * constructor parameter, and set them after connection. + * + * @param string $dsn + * @param string $username + * @param string $password + * @param array $options + * @param array $queries + * @param ProfilerInterface $profiler + */ + public function __construct(string $dsn, string $username = null, string $password = null, array $options = array(), array $queries = array(), \Phalcon\DataMapper\Pdo\Profiler\ProfilerInterface $profiler = null) + { + } + + /** + * The purpose of this method is to hide sensitive data from stack traces. + * + * @return array + */ + public function __debugInfo(): array + { + } + + /** + * Connects to the database. + * + * @return void + */ + public function connect() + { + } + + /** + * Disconnects from the database. + * + * @return void + */ + public function disconnect() + { + } +} diff --git a/src/Phalcon/DataMapper/Pdo/Connection/AbstractConnection.php b/src/Phalcon/DataMapper/Pdo/Connection/AbstractConnection.php new file mode 100644 index 00000000..332014ae --- /dev/null +++ b/src/Phalcon/DataMapper/Pdo/Connection/AbstractConnection.php @@ -0,0 +1,465 @@ + + * + * For the full copyright and license information, please view the LICENSE.txt + * file that was distributed with this source code. + */ +namespace Phalcon\DataMapper\Pdo\Connection; + +use BadMethodCallException; +use Phalcon\DataMapper\Pdo\Exception\CannotBindValue; +use Phalcon\DataMapper\Pdo\Profiler\ProfilerInterface; + +/** + * Provides array quoting, profiling, a new `perform()` method, new `fetch()` + * methods + * + * @property PDO $pdo + * @property ProfilerInterface $profiler + */ +abstract class AbstractConnection implements \Phalcon\DataMapper\Pdo\Connection\ConnectionInterface +{ + /** + * @var PDO + */ + protected $pdo; + + /** + * @var ProfilerInterface + */ + protected $profiler; + + + /** + * Proxies to PDO methods created for specific drivers; in particular, + * `sqlite` and `pgsql`. + * + * @param string $name + * @param array $arguments + * + * @return mixed + * @throws BadMethodCallException + */ + public function __call($name, array $arguments) + { + } + + /** + * Begins a transaction. If the profiler is enabled, the operation will + * be recorded. + * + * @return bool + */ + public function beginTransaction(): bool + { + } + + /** + * Commits the existing transaction. If the profiler is enabled, the + * operation will be recorded. + * + * @return bool + */ + public function commit(): bool + { + } + + /** + * Connects to the database. + * + * @return void + */ + abstract public function connect(); + + /** + * Disconnects from the database. + * + * @return void + */ + abstract public function disconnect(); + + /** + * Gets the most recent error code. + * + * @return string|null + */ + public function errorCode(): ?string + { + } + + /** + * Gets the most recent error info. + * + * @return array + */ + public function errorInfo(): array + { + } + + /** + * Executes an SQL statement and returns the number of affected rows. If + * the profiler is enabled, the operation will be recorded. + * + * @param string $statement + * + * @return int + */ + public function exec(string $statement): int + { + } + + /** + * Performs a statement and returns the number of affected rows. + * + * @param string $statement + * @param array $values + * + * @return int + */ + public function fetchAffected(string $statement, array $values = array()): int + { + } + + /** + * Fetches a sequential array of rows from the database; the rows are + * returned as associative arrays. + * + * @param string $statement + * @param array $values + * + * @return array + */ + public function fetchAll(string $statement, array $values = array()): array + { + } + + /** + * Fetches an associative array of rows from the database; the rows are + * returned as associative arrays, and the array of rows is keyed on the + * first column of each row. + * + * If multiple rows have the same first column value, the last row with + * that value will overwrite earlier rows. This method is more resource + * intensive and should be avoided if possible. + * + * @param string $statement + * @param array $values + * + * @return array + */ + public function fetchAssoc(string $statement, array $values = array()): array + { + } + + /** + * Fetches a column of rows as a sequential array (default first one). + * + * @param string $statement + * @param array $values + * @param int $column + * + * @return array + */ + public function fetchColumn(string $statement, array $values = array(), int $column = 0): array + { + } + + /** + * Fetches multiple from the database as an associative array. The first + * column will be the index key. The default flags are + * PDO::FETCH_ASSOC | PDO::FETCH_GROUP + * + * @param string $statement + * @param array $values + * @param int $flags + * + * @return array + */ + public function fetchGroup(string $statement, array $values = array(), int $flags = \PDO::FETCH_ASSOC): array + { + } + + /** + * Fetches one row from the database as an object where the column values + * are mapped to object properties. + * + * Since PDO injects property values before invoking the constructor, any + * initializations for defaults that you potentially have in your object's + * constructor, will override the values that have been injected by + * `fetchObject`. The default object returned is `\stdClass` + * + * @param string $statement + * @param array $values + * @param string $class + * @param array $arguments + * + * @return object + * @param string $className + */ + public function fetchObject(string $statement, array $values = array(), string $className = 'stdClass', array $arguments = array()) + { + } + + /** + * Fetches a sequential array of rows from the database; the rows are + * returned as objects where the column values are mapped to object + * properties. + * + * Since PDO injects property values before invoking the constructor, any + * initializations for defaults that you potentially have in your object's + * constructor, will override the values that have been injected by + * `fetchObject`. The default object returned is `\stdClass` + * + * @param string $statement + * @param array $values + * @param string $class + * @param array $arguments + * + * @return array + * @param string $className + */ + public function fetchObjects(string $statement, array $values = array(), string $className = 'stdClass', array $arguments = array()): array + { + } + + /** + * Fetches one row from the database as an associative array. + * + * @param string $statement + * @param array $values + * + * @return array + */ + public function fetchOne(string $statement, array $values = array()): array + { + } + + /** + * Fetches an associative array of rows as key-value pairs (first column is + * the key, second column is the value). + * + * @param string $statement + * @param array $values + * + * @return array + */ + public function fetchPairs(string $statement, array $values = array()): array + { + } + + /** + * Fetches the very first value (i.e., first column of the first row). + * + * @param string $statement + * @param array $values + * + * @return mixed + */ + public function fetchValue(string $statement, array $values = array()) + { + } + + /** + * Return the inner PDO (if any) + * + * @return PDO + */ + public function getAdapter(): \PDO + { + } + + /** + * Retrieve a database connection attribute + * + * @param int $attribute + * + * @return mixed + */ + public function getAttribute(int $attribute) + { + } + + /** + * Return an array of available PDO drivers (empty array if none available) + * + * @return array + */ + public static function getAvailableDrivers(): array + { + } + + /** + * Return the driver name + * + * @return string + */ + public function getDriverName(): string + { + } + + /** + * Returns the Profiler instance. + * + * @return ProfilerInterface + */ + public function getProfiler(): ProfilerInterface + { + } + + /** + * Gets the quote parameters based on the driver + * + * @param string $driver + * + * @return array + */ + public function getQuoteNames(string $driver = ''): array + { + } + + /** + * Is a transaction currently active? If the profiler is enabled, the + * operation will be recorded. If the profiler is enabled, the operation + * will be recorded. + * + * @return bool + */ + public function inTransaction(): bool + { + } + + /** + * Is the PDO connection active? + * + * @return bool + */ + public function isConnected(): bool + { + } + + /** + * Returns the last inserted autoincrement sequence value. If the profiler + * is enabled, the operation will be recorded. + * + * @param string $name + * + * @return string + */ + public function lastInsertId(string $name = null): string + { + } + + /** + * Performs a query with bound values and returns the resulting + * PDOStatement; array values will be passed through `quote()` and their + * respective placeholders will be replaced in the query string. If the + * profiler is enabled, the operation will be recorded. + * + * @param string $statement + * @param array $values + * + * @return PDOStatement + */ + public function perform(string $statement, array $values = array()): \PDOStatement + { + } + + /** + * Prepares an SQL statement for execution. + * + * @param string $statement + * @param array $options + * + * @return PDOStatement|false + */ + public function prepare(string $statement, array $options = array()) + { + } + + /** + * Queries the database and returns a PDOStatement. If the profiler is + * enabled, the operation will be recorded. + * + * @param string $statement + * @param mixed ...$fetch + * + * @return PDOStatement|false + */ + public function query(string $statement) + { + } + + /** + * Quotes a value for use in an SQL statement. This differs from + * `PDO::quote()` in that it will convert an array into a string of + * comma-separated quoted values. The default type is `PDO::PARAM_STR` + * + * @param mixed $value + * @param int $type + * + * @return string The quoted value. + */ + public function quote($value, int $type = \PDO::PARAM_STR): string + { + } + + /** + * Rolls back the current transaction, and restores autocommit mode. If the + * profiler is enabled, the operation will be recorded. + * + * @return bool + */ + public function rollBack(): bool + { + } + + /** + * Set a database connection attribute + * + * @param int $attribute + * @param mixed $value + * + * @return bool + */ + public function setAttribute(int $attribute, $value): bool + { + } + + /** + * Sets the Profiler instance. + * + * @param ProfilerInterface $profiler + */ + public function setProfiler(\Phalcon\DataMapper\Pdo\Profiler\ProfilerInterface $profiler) + { + } + + /** + * Bind a value using the proper PDO::PARAM_ type. + * + * @param PDOStatement $statement + * @param mixed $name + * @param mixed $arguments + * @return void + */ + protected function performBind(\PDOStatement $statement, $name, $arguments) + { + } + + /** + * Helper method to get data from PDO based on the method passed + * + * @param string $method + * @param array $arguments + * @param string $statement + * @param array $values + * + * @return array + */ + protected function fetchData(string $method, array $arguments, string $statement, array $values = array()): array + { + } +} diff --git a/src/Phalcon/DataMapper/Pdo/Connection/ConnectionInterface.php b/src/Phalcon/DataMapper/Pdo/Connection/ConnectionInterface.php new file mode 100644 index 00000000..4d9dc59d --- /dev/null +++ b/src/Phalcon/DataMapper/Pdo/Connection/ConnectionInterface.php @@ -0,0 +1,213 @@ + + * + * For the full copyright and license information, please view the LICENSE.txt + * file that was distributed with this source code. + */ +namespace Phalcon\DataMapper\Pdo\Connection; + +use Phalcon\DataMapper\Pdo\Exception\CannotBindValue; +use Phalcon\DataMapper\Pdo\Parser\ParserInterface; +use Phalcon\DataMapper\Pdo\Profiler\ProfilerInterface; + +/** + * Provides array quoting, profiling, a new `perform()` method, new `fetch()` + * methods + * + * @property array $args + * @property PDO $pdo + * @property ProfilerInterface $profiler + * @property array $quote + */ +interface ConnectionInterface extends \Phalcon\DataMapper\Pdo\Connection\PdoInterface +{ + + /** + * Connects to the database. + * + * @return void + */ + public function connect(); + + /** + * Disconnects from the database. + * + * @return void + */ + public function disconnect(); + + /** + * Performs a statement and returns the number of affected rows. + * + * @param string $statement + * @param array $values + * + * @return int + */ + public function fetchAffected(string $statement, array $values = array()): int; + + /** + * Fetches a sequential array of rows from the database; the rows are + * returned as associative arrays. + * + * @param string $statement + * @param array $values + * + * @return array + */ + public function fetchAll(string $statement, array $values = array()): array; + + /** + * Fetches an associative array of rows from the database; the rows are + * returned as associative arrays, and the array of rows is keyed on the + * first column of each row. + * + * If multiple rows have the same first column value, the last row with + * that value will overwrite earlier rows. This method is more resource + * intensive and should be avoided if possible. + * + * @param string $statement + * @param array $values + * + * @return array + */ + public function fetchAssoc(string $statement, array $values = array()): array; + + /** + * Fetches a column of rows as a sequential array (default first one). + * + * @param string $statement + * @param array $values + * @param int $column + * + * @return array + */ + public function fetchColumn(string $statement, array $values = array(), int $column = 0): array; + + /** + * Fetches multiple from the database as an associative array. The first + * column will be the index key. The default flags are + * PDO::FETCH_ASSOC | PDO::FETCH_GROUP + * + * @param string $statement + * @param array $values + * @param int $flags + * + * @return array + */ + public function fetchGroup(string $statement, array $values = array(), int $flags = \PDO::FETCH_ASSOC): array; + + /** + * Fetches one row from the database as an object where the column values + * are mapped to object properties. + * + * Since PDO injects property values before invoking the constructor, any + * initializations for defaults that you potentially have in your object's + * constructor, will override the values that have been injected by + * `fetchObject`. The default object returned is `\stdClass` + * + * @param string $statement + * @param array $values + * @param string $class + * @param array $arguments + * + * @return object + * @param string $className + */ + public function fetchObject(string $statement, array $values = array(), string $className = 'stdClass', array $arguments = array()); + + /** + * Fetches a sequential array of rows from the database; the rows are + * returned as objects where the column values are mapped to object + * properties. + * + * Since PDO injects property values before invoking the constructor, any + * initializations for defaults that you potentially have in your object's + * constructor, will override the values that have been injected by + * `fetchObject`. The default object returned is `\stdClass` + * + * @param string $statement + * @param array $values + * @param string $class + * @param array $arguments + * + * @return array + * @param string $className + */ + public function fetchObjects(string $statement, array $values = array(), string $className = 'stdClass', array $arguments = array()): array; + + /** + * Fetches one row from the database as an associative array. + * + * @param string $statement + * @param array $values + * + * @return array + */ + public function fetchOne(string $statement, array $values = array()): array; + + /** + * Fetches an associative array of rows as key-value pairs (first column is + * the key, second column is the value). + * + * @param string $statement + * @param array $values + * + * @return array + */ + public function fetchPairs(string $statement, array $values = array()): array; + + /** + * Fetches the very first value (i.e., first column of the first row). + * + * @param string $statement + * @param array $values + * + * @return mixed + */ + public function fetchValue(string $statement, array $values = array()); + + /** + * Return the inner PDO (if any) + * + * @return PDO + */ + public function getAdapter(): \PDO; + + /** + * Returns the Profiler instance. + * + * @return ProfilerInterface + */ + public function getProfiler(): ProfilerInterface; + + /** + * Is the PDO connection active? + * + * @return bool + */ + public function isConnected(): bool; + + /** + * Performs a query with bound values and returns the resulting + * PDOStatement; array values will be passed through `quote()` and their + * respective placeholders will be replaced in the query string. If the + * profiler is enabled, the operation will be recorded. + * + * @param string $statement + * @param array $values + * + * @return PDOStatement + */ + public function perform(string $statement, array $values = array()): \PDOStatement; + + /** + * Sets the Profiler instance. + * + * @param ProfilerInterface $profiler The Profiler instance. + */ + public function setProfiler(\Phalcon\DataMapper\Pdo\Profiler\ProfilerInterface $profiler); +} diff --git a/src/Phalcon/DataMapper/Pdo/Connection/Decorated.php b/src/Phalcon/DataMapper/Pdo/Connection/Decorated.php new file mode 100644 index 00000000..2943a08a --- /dev/null +++ b/src/Phalcon/DataMapper/Pdo/Connection/Decorated.php @@ -0,0 +1,54 @@ + + * + * For the full copyright and license information, please view the LICENSE.txt + * file that was distributed with this source code. + */ +namespace Phalcon\DataMapper\Pdo\Connection; + +use Phalcon\DataMapper\Pdo\Exception\CannotDisconnect; +use Phalcon\DataMapper\Pdo\Profiler\ProfilerInterface; + +/** + * Decorates an existing PDO instance with the extended methods. + */ +class Decorated extends \Phalcon\DataMapper\Pdo\Connection\AbstractConnection +{ + + /** + * + * Constructor. + * + * This overrides the parent so that it can take an existing PDO instance + * and decorate it with the extended methods. + * + * @param PDO $pdo + * @param ProfilerInterface|null $profiler + * + */ + public function __construct(\PDO $pdo, \Phalcon\DataMapper\Pdo\Profiler\ProfilerInterface $profiler = null) + { + } + + /** + * Connects to the database. + * + * @return void + */ + public function connect() + { + } + + /** + * Disconnects from the database; disallowed with decorated PDO connections. + * + * @throws CannotDisconnect + * @return void + */ + public function disconnect() + { + } +} diff --git a/src/Phalcon/DataMapper/Pdo/Connection/PdoInterface.php b/src/Phalcon/DataMapper/Pdo/Connection/PdoInterface.php new file mode 100644 index 00000000..8786e986 --- /dev/null +++ b/src/Phalcon/DataMapper/Pdo/Connection/PdoInterface.php @@ -0,0 +1,143 @@ + + * + * For the full copyright and license information, please view the LICENSE.txt + * file that was distributed with this source code. + */ +namespace Phalcon\DataMapper\Pdo\Connection; + +/** + * An interface to the native PDO object. + */ +interface PdoInterface +{ + + /** + * Begins a transaction. If the profiler is enabled, the operation will + * be recorded. + * + * @return bool + */ + public function beginTransaction(): bool; + + /** + * Commits the existing transaction. If the profiler is enabled, the + * operation will be recorded. + * + * @return bool + */ + public function commit(): bool; + + /** + * Gets the most recent error code. + * + * @return string|null + */ + public function errorCode(): ?string; + + /** + * Gets the most recent error info. + * + * @return array + */ + public function errorInfo(): array; + + /** + * Executes an SQL statement and returns the number of affected rows. If + * the profiler is enabled, the operation will be recorded. + * + * @param string $statement + * + * @return int + */ + public function exec(string $statement): int; + + /** + * Retrieve a database connection attribute + * + * @param int $attribute + * + * @return mixed + */ + public function getAttribute(int $attribute); + + /** + * Return an array of available PDO drivers (empty array if none available) + * + * @return array + */ + public static function getAvailableDrivers(): array; + + /** + * Is a transaction currently active? If the profiler is enabled, the + * operation will be recorded. If the profiler is enabled, the operation + * will be recorded. + * + * @return bool + */ + public function inTransaction(): bool; + + /** + * Returns the last inserted autoincrement sequence value. If the profiler + * is enabled, the operation will be recorded. + * + * @param string $name + * + * @return string + */ + public function lastInsertId(string $name = null): string; + + /** + * Prepares an SQL statement for execution. + * + * @param string $statement + * @param array $options + * + * @return PDOStatement|false + */ + public function prepare(string $statement, array $options = array()); + + /** + * Queries the database and returns a PDOStatement. If the profiler is + * enabled, the operation will be recorded. + * + * @param string $statement + * @param mixed ...$fetch + * + * @return PDOStatement|false + */ + public function query(string $statement); + + /** + * Quotes a value for use in an SQL statement. This differs from + * `PDO::quote()` in that it will convert an array into a string of + * comma-separated quoted values. The default type is `PDO::PARAM_STR` + * + * @param mixed $value + * @param int $type + * + * @return string The quoted value. + */ + public function quote($value, int $type = \PDO::PARAM_STR): string; + + /** + * Rolls back the current transaction, and restores autocommit mode. If the + * profiler is enabled, the operation will be recorded. + * + * @return bool + */ + public function rollBack(): bool; + + /** + * Set a database connection attribute + * + * @param int $attribute + * @param mixed $value + * + * @return bool + */ + public function setAttribute(int $attribute, $value): bool; +} diff --git a/src/Phalcon/DataMapper/Pdo/ConnectionLocator.php b/src/Phalcon/DataMapper/Pdo/ConnectionLocator.php new file mode 100644 index 00000000..996a785a --- /dev/null +++ b/src/Phalcon/DataMapper/Pdo/ConnectionLocator.php @@ -0,0 +1,151 @@ + + * + * For the full copyright and license information, please view the LICENSE.txt + * file that was distributed with this source code. + */ +namespace Phalcon\DataMapper\Pdo; + +use Phalcon\DataMapper\Pdo\Connection\ConnectionInterface; +use Phalcon\DataMapper\Pdo\Exception\ConnectionNotFound; + +/** + * Manages Connection instances for default, read, and write connections. + * + * @property callable $master + * @property array $read + * @property array $write + */ +class ConnectionLocator implements \Phalcon\DataMapper\Pdo\ConnectionLocatorInterface +{ + /** + * A default Connection connection factory/instance. + * + * @var ConnectionInterface + */ + protected $master; + + /** + * A registry of Connection "read" factories/instances. + * + * @var array + */ + protected $read = array(); + + /** + * A registry of Connection "write" factories/instances. + * + * @var array + */ + protected $write = array(); + + /** + * A collection of resolved instances + * + * @var array + */ + private $instances = array(); + + + /** + * Constructor. + * + * @param ConnectionInterface $master + * @param array $read + * @param array $write + */ + public function __construct(\Phalcon\DataMapper\Pdo\Connection\ConnectionInterface $master, array $read = array(), array $write = array()) + { + } + + /** + * Returns the default connection object. + * + * @return ConnectionInterface + */ + public function getMaster(): ConnectionInterface + { + } + + /** + * Returns a read connection by name; if no name is given, picks a + * random connection; if no read connections are present, returns the + * default connection. + * + * @param string $name + * + * @return ConnectionInterface + * @throws ConnectionNotFound + */ + public function getRead(string $name = ''): ConnectionInterface + { + } + + /** + * Returns a write connection by name; if no name is given, picks a + * random connection; if no write connections are present, returns the + * default connection. + * + * @param string $name + * + * @return ConnectionInterface + * @throws ConnectionNotFound + */ + public function getWrite(string $name = ''): ConnectionInterface + { + } + + /** + * Sets the default connection factory. + * + * @param ConnectionInterface $callable + * + * @return ConnectionLocatorInterface + * @param \Phalcon\DataMapper\Pdo\Connection\ConnectionInterface $callableObject + */ + public function setMaster(\Phalcon\DataMapper\Pdo\Connection\ConnectionInterface $callableObject): ConnectionLocatorInterface + { + } + + /** + * Sets a read connection factory by name. + * + * @param string $name + * @param callable $callable + * + * @return ConnectionLocatorInterface + * @param callable $callableObject + */ + public function setRead(string $name, $callableObject): ConnectionLocatorInterface + { + } + + /** + * Sets a write connection factory by name. + * + * @param string $name + * @param callable $callable + * + * @return ConnectionLocatorInterface + * @param callable $callableObject + */ + public function setWrite(string $name, $callableObject): ConnectionLocatorInterface + { + } + + /** + * Returns a connection by name. + * + * @param string $type + * @param string $name + * + * @return ConnectionInterface + * @throws ConnectionNotFound + */ + protected function getConnection(string $type, string $name = ''): ConnectionInterface + { + } +} diff --git a/src/Phalcon/DataMapper/Pdo/ConnectionLocatorInterface.php b/src/Phalcon/DataMapper/Pdo/ConnectionLocatorInterface.php new file mode 100644 index 00000000..57a21420 --- /dev/null +++ b/src/Phalcon/DataMapper/Pdo/ConnectionLocatorInterface.php @@ -0,0 +1,80 @@ + + * + * For the full copyright and license information, please view the LICENSE.txt + * file that was distributed with this source code. + */ +namespace Phalcon\DataMapper\Pdo; + +use Phalcon\DataMapper\Pdo\Connection\ConnectionInterface; + +/** + * Locates PDO connections for default, read, and write databases. + */ +interface ConnectionLocatorInterface +{ + + /** + * Returns the default connection object. + * + * @return ConnectionInterface + */ + public function getMaster(): ConnectionInterface; + + /** + * Returns a read connection by name; if no name is given, picks a + * random connection; if no read connections are present, returns the + * default connection. + * + * @param string $name + * + * @return ConnectionInterface + */ + public function getRead(string $name = ''): ConnectionInterface; + + /** + * Returns a write connection by name; if no name is given, picks a + * random connection; if no write connections are present, returns the + * default connection. + * + * @param string $name + * + * @return ConnectionInterface + */ + public function getWrite(string $name = ''): ConnectionInterface; + + /** + * Sets the default connection registry entry. + * + * @param ConnectionInterface $callable + * + * @return ConnectionLocatorInterface + * @param \Phalcon\DataMapper\Pdo\Connection\ConnectionInterface $callableObject + */ + public function setMaster(\Phalcon\DataMapper\Pdo\Connection\ConnectionInterface $callableObject): ConnectionLocatorInterface; + + /** + * Sets a read connection registry entry by name. + * + * @param string $name + * @param callable $callable + * + * @return ConnectionLocatorInterface + * @param callable $callableObject + */ + public function setRead(string $name, $callableObject): ConnectionLocatorInterface; + + /** + * Sets a write connection registry entry by name. + * + * @param string $name + * @param callable $callable + * + * @return ConnectionLocatorInterface + * @param callable $callableObject + */ + public function setWrite(string $name, $callableObject): ConnectionLocatorInterface; +} diff --git a/src/Phalcon/DataMapper/Pdo/Exception/CannotDisconnect.php b/src/Phalcon/DataMapper/Pdo/Exception/CannotDisconnect.php new file mode 100644 index 00000000..9f7a0573 --- /dev/null +++ b/src/Phalcon/DataMapper/Pdo/Exception/CannotDisconnect.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE.txt + * file that was distributed with this source code. + */ +namespace Phalcon\DataMapper\Pdo\Exception; + +/** + * ExtendedPdo could not disconnect; e.g., because its PDO connection was + * created externally and then injected. + */ +class CannotDisconnect extends \Phalcon\DataMapper\Pdo\Exception\Exception +{ + +} diff --git a/src/Phalcon/DataMapper/Pdo/Exception/ConnectionNotFound.php b/src/Phalcon/DataMapper/Pdo/Exception/ConnectionNotFound.php new file mode 100644 index 00000000..73d1a781 --- /dev/null +++ b/src/Phalcon/DataMapper/Pdo/Exception/ConnectionNotFound.php @@ -0,0 +1,18 @@ + + * + * For the full copyright and license information, please view the LICENSE.txt + * file that was distributed with this source code. + */ +namespace Phalcon\DataMapper\Pdo\Exception; + +/** + * Locator could not find a named connection. + */ +class ConnectionNotFound extends \Phalcon\DataMapper\Pdo\Exception\Exception +{ + +} diff --git a/src/Phalcon/DataMapper/Pdo/Exception/Exception.php b/src/Phalcon/DataMapper/Pdo/Exception/Exception.php new file mode 100644 index 00000000..ff8706de --- /dev/null +++ b/src/Phalcon/DataMapper/Pdo/Exception/Exception.php @@ -0,0 +1,18 @@ + + * + * For the full copyright and license information, please view the LICENSE.txt + * file that was distributed with this source code. + */ +namespace Phalcon\DataMapper\Pdo\Exception; + +/** + * Base Exception class + */ +class Exception extends \Exception +{ + +} diff --git a/src/Phalcon/DataMapper/Pdo/Profiler/MemoryLogger.php b/src/Phalcon/DataMapper/Pdo/Profiler/MemoryLogger.php new file mode 100644 index 00000000..1e5e496c --- /dev/null +++ b/src/Phalcon/DataMapper/Pdo/Profiler/MemoryLogger.php @@ -0,0 +1,46 @@ + + * + * For the full copyright and license information, please view the LICENSE.txt + * file that was distributed with this source code. + */ +namespace Phalcon\DataMapper\Pdo\Profiler; + +use Psr\Log\AbstractLogger; + +/** + * A naive memory-based logger. + * + * @property array $messages + */ +class MemoryLogger extends AbstractLogger +{ + /** + * @var array + */ + protected $messages = array(); + + + /** + * Returns the logged messages. + * + * @return array + */ + public function getMessages() + { + } + + /** + * Logs a message. + * + * @param mixed $level + * @param string $message + * @param array $context + */ + public function log($level, $message, array $context = array()) + { + } +} diff --git a/src/Phalcon/DataMapper/Pdo/Profiler/Profiler.php b/src/Phalcon/DataMapper/Pdo/Profiler/Profiler.php new file mode 100644 index 00000000..dc301a36 --- /dev/null +++ b/src/Phalcon/DataMapper/Pdo/Profiler/Profiler.php @@ -0,0 +1,149 @@ + + * + * For the full copyright and license information, please view the LICENSE.txt + * file that was distributed with this source code. + */ +namespace Phalcon\DataMapper\Pdo\Profiler; + +use Psr\Log\LoggerInterface; + +/** + * Sends query profiles to a logger. + * + * @property bool $active + * @property array $context + * @property string $logFormat + * @property string $logLevel + * @property LoggerInterface $logger + */ +class Profiler implements \Phalcon\DataMapper\Pdo\Profiler\ProfilerInterface +{ + /** + * @var bool + */ + protected $active = false; + + /** + * @var array + */ + protected $context = array(); + + /** + * @var string + */ + protected $logFormat = ''; + + /** + * @var int + */ + protected $logLevel = 0; + + /** + * @var LoggerInterface + */ + protected $logger; + + + /** + * Constructor. + * + * @param LoggerInterface $logger + */ + public function __construct(\Psr\Log\LoggerInterface $logger = null) + { + } + + /** + * Finishes and logs a profile entry. + * + * @param string $statement + * @param array $values + * @return void + */ + public function finish(string $statement = null, array $values = array()) + { + } + + /** + * Returns the log message format string, with placeholders. + * + * @return string + */ + public function getLogFormat(): string + { + } + + /** + * Returns the underlying logger instance. + * + * @return LoggerInterface + */ + public function getLogger(): LoggerInterface + { + } + + /** + * Returns the level at which to log profile messages. + * + * @return string + */ + public function getLogLevel(): string + { + } + + /** + * Returns true if logging is active. + * + * @return bool + */ + public function isActive(): bool + { + } + + /** + * Enable or disable profiler logging. + * + * @param bool $active + * + * @return ProfilerInterface + */ + public function setActive(bool $active): ProfilerInterface + { + } + + /** + * Sets the log message format string, with placeholders. + * + * @param string $logFormat + * + * @return ProfilerInterface + */ + public function setLogFormat(string $logFormat): ProfilerInterface + { + } + + /** + * Level at which to log profile messages. + * + * @param string $logLevel + * + * @return ProfilerInterface + */ + public function setLogLevel(string $logLevel): ProfilerInterface + { + } + + /** + * Starts a profile entry. + * + * @param string $method + * @return void + */ + public function start(string $method) + { + } +} diff --git a/src/Phalcon/DataMapper/Pdo/Profiler/ProfilerInterface.php b/src/Phalcon/DataMapper/Pdo/Profiler/ProfilerInterface.php new file mode 100644 index 00000000..c480eaa4 --- /dev/null +++ b/src/Phalcon/DataMapper/Pdo/Profiler/ProfilerInterface.php @@ -0,0 +1,92 @@ + + * + * For the full copyright and license information, please view the LICENSE.txt + * file that was distributed with this source code. + */ +namespace Phalcon\DataMapper\Pdo\Profiler; + +use Psr\Log\LoggerInterface; + +/** + * Interface to send query profiles to a logger. + */ +interface ProfilerInterface +{ + + /** + * Finishes and logs a profile entry. + * + * @param string $statement + * @param array $values + * @return void + */ + public function finish(string $statement = null, array $values = array()); + + /** + * Returns the underlying logger instance. + * + * @return LoggerInterface + */ + public function getLogger(): LoggerInterface; + + /** + * Returns the log message format string, with placeholders. + * + * @return string + */ + public function getLogFormat(): string; + + /** + * Returns the level at which to log profile messages. + * + * @return string + */ + public function getLogLevel(): string; + + /** + * Returns true if logging is active. + * + * @return bool + */ + public function isActive(): bool; + + /** + * Enable or disable profiler logging. + * + * @param bool $active + * + * @return ProfilerInterface + */ + public function setActive(bool $active): ProfilerInterface; + + /** + * Sets the log message format string, with placeholders. + * + * @param string $logFormat + * + * @return ProfilerInterface + */ + public function setLogFormat(string $logFormat): ProfilerInterface; + + /** + * Level at which to log profile messages. + * + * @param string $logLevel + * + * @return ProfilerInterface + * + */ + public function setLogLevel(string $logLevel): ProfilerInterface; + + /** + * Starts a profile entry. + * + * @param string $method + * @return void + */ + public function start(string $method); +} diff --git a/src/Phalcon/DataMapper/Query/AbstractConditions.php b/src/Phalcon/DataMapper/Query/AbstractConditions.php new file mode 100644 index 00000000..10b49d17 --- /dev/null +++ b/src/Phalcon/DataMapper/Query/AbstractConditions.php @@ -0,0 +1,207 @@ + + * + * For the full copyright and license information, please view the LICENSE.txt + * file that was distributed with this source code. + */ +namespace Phalcon\DataMapper\Query; + +/** + * Class AbstractConditions + */ +abstract class AbstractConditions extends \Phalcon\DataMapper\Query\AbstractQuery +{ + + /** + * Sets the `LIMIT` clause + * + * @param int $limit + * + * @return AbstractConditions + */ + public function limit(int $limit): AbstractConditions + { + } + + /** + * Sets the `OFFSET` clause + * + * @param int $offset + * + * @return AbstractConditions + */ + public function offset(int $offset): AbstractConditions + { + } + + /** + * Sets a `AND` for a `WHERE` condition + * + * @param string $condition + * @param mixed|null $value + * @param int $type + * + * @return AbstractConditions + */ + public function andWhere(string $condition, $value = null, int $type = -1): AbstractConditions + { + } + + /** + * Concatenates to the most recent `WHERE` clause + * + * @param string $condition + * @param mixed|null $value + * @param int $type + * + * @return AbstractConditions + */ + public function appendWhere(string $condition, $value = null, int $type = -1): AbstractConditions + { + } + + /** + * Sets the `ORDER BY` + * + * @param array|string $orderBy + * + * @return AbstractConditions + */ + public function orderBy($orderBy): AbstractConditions + { + } + + /** + * Sets a `OR` for a `WHERE` condition + * + * @param string $condition + * @param mixed|null $value + * @param int $type + * + * @return AbstractConditions + */ + public function orWhere(string $condition, $value = null, int $type = -1): AbstractConditions + { + } + + /** + * Sets a `WHERE` condition + * + * @param string $condition + * @param mixed|null $value + * @param int $type + * + * @return AbstractConditions + */ + public function where(string $condition, $value = null, int $type = -1): AbstractConditions + { + } + + /** + * @param array $columnsValues + * + * @return AbstractConditions + */ + public function whereEquals(array $columnsValues): AbstractConditions + { + } + + /** + * Appends a conditional + * + * @param string $store + * @param string $andor + * @param string $condition + * @param mixed|null $value + * @param int $type + * @return void + */ + protected function addCondition(string $store, string $andor, string $condition, $value = null, int $type = -1) + { + } + + /** + * Builds a `BY` list + * + * @param string $type + * + * @return string + */ + protected function buildBy(string $type): string + { + } + + /** + * Builds the conditional string + * + * @param string $type + * + * @return string + */ + protected function buildCondition(string $type): string + { + } + + /** + * Builds the early `LIMIT` clause - MS SQLServer + * + * @return string + */ + protected function buildLimitEarly(): string + { + } + + /** + * Builds the `LIMIT` clause + * + * @return string + */ + protected function buildLimit(): string + { + } + + /** + * Builds the `LIMIT` clause for all drivers + * + * @return string + */ + protected function buildLimitCommon(): string + { + } + + /** + * Builds the `LIMIT` clause for MSSQLServer + * + * @return string + */ + protected function buildLimitSqlsrv(): string + { + } + + /** + * Concatenates a conditional + * + * @param string $store + * @param string $condition + * @param mixed $value + * @param int $type + * @return void + */ + protected function appendCondition(string $store, string $condition, $value = null, int $type = -1) + { + } + + /** + * Processes a value (array or string) and merges it with the store + * + * @param string $store + * @param array|string $data + * @return void + */ + protected function processValue(string $store, $data) + { + } +} diff --git a/src/Phalcon/DataMapper/Query/AbstractQuery.php b/src/Phalcon/DataMapper/Query/AbstractQuery.php new file mode 100644 index 00000000..480e2258 --- /dev/null +++ b/src/Phalcon/DataMapper/Query/AbstractQuery.php @@ -0,0 +1,169 @@ + + * + * For the full copyright and license information, please view the LICENSE.txt + * file that was distributed with this source code. + */ +namespace Phalcon\DataMapper\Query; + +use Phalcon\DataMapper\Pdo\Connection; + +/** + * Class AbstractQuery + * + * @property Bind $bind + * @property Connection $connection + * @property array $store + */ +abstract class AbstractQuery +{ + /** + * @var Bind + */ + protected $bind; + + /** + * @var Connection + */ + protected $connection; + + /** + * @var array + */ + protected $store = array(); + + + /** + * AbstractQuery constructor. + * + * @param Connection $connection + * @param Bind $bind + */ + public function __construct(\Phalcon\DataMapper\Pdo\Connection $connection, Bind $bind) + { + } + + /** + * Binds a value inline + * + * @param mixed $value + * @param int $type + * + * @return string + */ + public function bindInline($value, int $type = -1): string + { + } + + /** + * Binds a value - auto-detects the type if necessary + * + * @param string $key + * @param mixed $value + * @param int $type + * + * @return AbstractQuery + */ + public function bindValue(string $key, $value, int $type = -1): AbstractQuery + { + } + + /** + * Binds an array of values + * + * @param array $values + * + * @return AbstractQuery + */ + public function bindValues(array $values): AbstractQuery + { + } + + /** + * Returns all the bound values + * + * @return array + */ + public function getBindValues(): array + { + } + + /** + * Return the generated statement + * + * @return string + */ + abstract public function getStatement(): string; + + /** + * Performs a statement in the connection + * + * @return PDOStatement + */ + public function perform() + { + } + + /** + * Sets a flag for the query such as "DISTINCT" + * + * @param string $flag + * @param bool $enable + * @return void + */ + public function setFlag(string $flag, bool $enable = true) + { + } + + /** + * Quotes the identifier + * + * @param string $name + * @param int $type + * + * @return string + */ + public function quoteIdentifier(string $name, int $type = \PDO::PARAM_STR): string + { + } + + /** + * Resets the internal array + */ + public function reset() + { + } + + /** + * Builds the flags statement(s) + * + * @return string + */ + protected function buildFlags() + { + } + + /** + * Builds the `RETURNING` clause + * + * @return string + */ + protected function buildReturning(): string + { + } + + /** + * Indents a collection + * + * @param array $collection + * @param string $glue + * + * @return string + */ + protected function indent(array $collection, string $glue = ''): string + { + } +} diff --git a/src/Phalcon/DataMapper/Query/Bind.php b/src/Phalcon/DataMapper/Query/Bind.php new file mode 100644 index 00000000..7eba8ebe --- /dev/null +++ b/src/Phalcon/DataMapper/Query/Bind.php @@ -0,0 +1,106 @@ + + * + * For the full copyright and license information, please view the LICENSE.txt + * file that was distributed with this source code. + */ +namespace Phalcon\DataMapper\Query; + +/** + * Class Bind + * + * @property int $inlineCount + * @property array $store + */ +class Bind +{ + /** + * @var int + */ + protected $inlineCount = 0; + + /** + * @var array + */ + protected $store = array(); + + + /** + * @param mixed $value + * @param int $type + * + * @return string + */ + public function bindInline($value, int $type = -1): string + { + } + + /** + * Removes a value from the store + * + * @param string $key + * @return void + */ + public function remove(string $key) + { + } + + /** + * Sets a value + * + * @param string $key + * @param mixed $value + * @param int $type + * @return void + */ + public function setValue(string $key, $value, int $type = -1) + { + } + + /** + * Sets values from an array + * + * @param array $values + * @param int $type + * @return void + */ + public function setValues(array $values, int $type = -1) + { + } + + /** + * Returns the internal collection + * + * @return array + */ + public function toArray(): array + { + } + + /** + * Auto detects the PDO type + * + * @param mixed $value + * + * @return int + */ + protected function getType($value): int + { + } + + /** + * Processes an array - if passed as an `inline` parameter + * + * @param array $array + * @param int $type + * + * @return string + * @param array $data + */ + protected function inlineArray(array $data, int $type): string + { + } +} diff --git a/src/Phalcon/DataMapper/Query/Delete.php b/src/Phalcon/DataMapper/Query/Delete.php new file mode 100644 index 00000000..f2cc65d9 --- /dev/null +++ b/src/Phalcon/DataMapper/Query/Delete.php @@ -0,0 +1,77 @@ + + * + * For the full copyright and license information, please view the LICENSE.txt + * file that was distributed with this source code. + */ +namespace Phalcon\DataMapper\Query; + +use Phalcon\DataMapper\Pdo\Connection; + +/** + * This file is part of the Phalcon Framework. + * + * (c) Phalcon Team + * + * For the full copyright and license information, please view the LICENSE.txt + * file that was distributed with this source code. + * + * Implementation of this file has been influenced by AtlasPHP + * + * @link https://github.com/atlasphp/Atlas.Query + * @license https://github.com/atlasphp/Atlas.Qyert/blob/1.x/LICENSE.md + */ +class Delete extends \Phalcon\DataMapper\Query\AbstractConditions +{ + + /** + * Delete constructor. + * + * @param Connection $connection + * @param Bind $bind + */ + public function __construct(\Phalcon\DataMapper\Pdo\Connection $connection, Bind $bind) + { + } + + /** + * Adds table(s) in the query + * + * @param string $table + * + * @return AbstractConditions + */ + public function from(string $table): Delete + { + } + + /** + * Adds the `RETURNING` clause + * + * @param array $columns + * + * @return Delete + */ + public function returning(array $columns): Delete + { + } + + /** + * @return string + */ + public function getStatement(): string + { + } + + /** + * Resets the internal store + * + * @return void + */ + public function reset() + { + } +} diff --git a/src/Phalcon/DataMapper/Query/Insert.php b/src/Phalcon/DataMapper/Query/Insert.php new file mode 100644 index 00000000..0d5796b2 --- /dev/null +++ b/src/Phalcon/DataMapper/Query/Insert.php @@ -0,0 +1,123 @@ + + * + * For the full copyright and license information, please view the LICENSE.txt + * file that was distributed with this source code. + */ +namespace Phalcon\DataMapper\Query; + +use Phalcon\DataMapper\Pdo\Connection; + +/** + * Class Insert + */ +class Insert extends \Phalcon\DataMapper\Query\AbstractQuery +{ + + /** + * Insert constructor. + * + * @param Connection $connection + * @param Bind $bind + */ + public function __construct(\Phalcon\DataMapper\Pdo\Connection $connection, Bind $bind) + { + } + + /** + * Sets a column for the `INSERT` query + * + * @param string $column + * + * @return this + * @param mixed $value + * @param int $type + */ + public function column(string $column, $value = null, int $type = -1): Insert + { + } + + /** + * Mass sets columns and values for the `INSERT` + * + * @param array $columns + * + * @return this + */ + public function columns(array $columns): Insert + { + } + + /** + * Adds table(s) in the query + * + * @param string $table + * + * @return Insert + */ + public function into(string $table): Insert + { + } + + /** + * Returns the id of the last inserted record + * + * @param string|null $name + * + * @return string + */ + public function getLastInsertId(string $name = null): string + { + } + + /** + * @return string + */ + public function getStatement(): string + { + } + + /** + * Adds the `RETURNING` clause + * + * @param array $columns + * + * @return Insert + */ + public function returning(array $columns): Insert + { + } + + /** + * Resets the internal store + * + * @return void + */ + public function reset() + { + } + + /** + * Sets a column = value condition + * + * @param string $column + * @param mixed|null $value + * + * @return Insert + */ + public function set(string $column, $value = null): Insert + { + } + + /** + * Builds the column list + * + * @return string + */ + private function buildColumns(): string + { + } +} diff --git a/src/Phalcon/DataMapper/Query/QueryFactory.php b/src/Phalcon/DataMapper/Query/QueryFactory.php new file mode 100644 index 00000000..e135f87b --- /dev/null +++ b/src/Phalcon/DataMapper/Query/QueryFactory.php @@ -0,0 +1,92 @@ + + * + * For the full copyright and license information, please view the LICENSE.txt + * file that was distributed with this source code. + */ +namespace Phalcon\DataMapper\Query; + +use Phalcon\DataMapper\Pdo\Connection; + +/** + * Class QueryFactory + * + * @property string $class + */ +class QueryFactory +{ + /** + * @var string + */ + protected $selectClass = ''; + + + /** + * QueryFactory constructor. + * + * @param string $selectClass + */ + public function __construct(string $selectClass = '') + { + } + + /** + * Create a new Bind object + * + * @return Bind + */ + public function newBind(): Bind + { + } + + /** + * Create a new Delete object + * + * @param connection + * + * @return Delete + * @param \Phalcon\DataMapper\Pdo\Connection $connection + */ + public function newDelete(\Phalcon\DataMapper\Pdo\Connection $connection): Delete + { + } + + /** + * Create a new Insert object + * + * @param connection + * + * @return Insert + * @param \Phalcon\DataMapper\Pdo\Connection $connection + */ + public function newInsert(\Phalcon\DataMapper\Pdo\Connection $connection): Insert + { + } + + /** + * Create a new Select object + * + * @param connection + * + * @return Select + * @param \Phalcon\DataMapper\Pdo\Connection $connection + */ + public function newSelect(\Phalcon\DataMapper\Pdo\Connection $connection): Select + { + } + + /** + * Create a new Update object + * + * @param connection + * + * @return Update + * @param \Phalcon\DataMapper\Pdo\Connection $connection + */ + public function newUpdate(\Phalcon\DataMapper\Pdo\Connection $connection): Update + { + } +} diff --git a/src/Phalcon/DataMapper/Query/Select.php b/src/Phalcon/DataMapper/Query/Select.php new file mode 100644 index 00000000..11314c2a --- /dev/null +++ b/src/Phalcon/DataMapper/Query/Select.php @@ -0,0 +1,295 @@ + + * + * For the full copyright and license information, please view the LICENSE.txt + * file that was distributed with this source code. + */ +namespace Phalcon\DataMapper\Query; + +/** + * Class Select + * + * @property string $asAlias + * @property bool $forUpdate + * + * @method int fetchAffected() + * @method array fetchAll() + * @method array fetchAssoc() + * @method array fetchColumn(int $column = 0) + * @method array fetchGroup(int $flags = PDO::FETCH_ASSOC) + * @method object fetchObject(string $class = 'stdClass', array $arguments = []) + * @method array fetchObjects(string $class = 'stdClass', array $arguments = []) + * @method array fetchOne() + * @method array fetchPairs() + * @method mixed fetchValue() + */ +class Select extends \Phalcon\DataMapper\Query\AbstractConditions +{ + + const JOIN_INNER = 'INNER'; + + + const JOIN_LEFT = 'LEFT'; + + + const JOIN_NATURAL = 'NATURAL'; + + + const JOIN_RIGHT = 'RIGHT'; + + /** + * @var string + */ + protected $asAlias = ''; + + /** + * @var bool + */ + protected $forUpdate = false; + + + /** + * Proxied methods to the connection + * + * @param string $method + * @param array $params + * + * @return mixed + */ + public function __call(string $method, array $params) + { + } + + /** + * Sets a `AND` for a `HAVING` condition + * + * @param string $condition + * @param mixed|null $value + * @param int $type + * + * @return Select + */ + public function andHaving(string $condition, $value = null, int $type = -1): Select + { + } + + /** + * The `AS` statement for the query - useful in sub-queries + * + * @param string $asAlias + * + * @return Select + */ + public function asAlias(string $asAlias): Select + { + } + + /** + * Concatenates to the most recent `HAVING` clause + * + * @param string $condition + * @param mixed|null $value + * @param int $type + * + * @return Select + */ + public function appendHaving(string $condition, $value = null, int $type = -1): Select + { + } + + /** + * Concatenates to the most recent `JOIN` clause + * + * @param string $condition + * @param mixed|null $value + * @param int $type + * + * @return Select + */ + public function appendJoin(string $condition, $value = null, int $type = -1): Select + { + } + + /** + * The columns to select from. If a key is set in an array element, the + * key will be used as the alias + * + * @param string ...$column + * + * @return Select + * @param string ...$column + * + */ + public function columns(): Select + { + } + + /** + * @param bool $enable + * + * @return Select + */ + public function distinct(bool $enable = true): Select + { + } + + /** + * Adds table(s) in the query + * + * @param string $table + * + * @return Select + */ + public function from(string $table): Select + { + } + + /** + * Enable the `FOR UPDATE` for the query + * + * @param bool $enable + * + * @return Select + */ + public function forUpdate(bool $enable = true): Select + { + } + + /** + * Returns the compiled SQL statement + * + * @return string + */ + public function getStatement(): string + { + } + + /** + * Sets the `GROUP BY` + * + * @param array|string $groupBy + * + * @return Select + */ + public function groupBy($groupBy): Select + { + } + + /** + * Whether the query has columns or not + * + * @return bool + */ + public function hasColumns(): bool + { + } + + /** + * Sets a `HAVING` condition + * + * @param string $condition + * @param mixed|null $value + * @param int $type + * + * @return Select + */ + public function having(string $condition, $value = null, int $type = -1): Select + { + } + + /** + * Sets a 'JOIN' condition + * + * @param string $join + * @param string $table + * @param string $condition + * @param mixed|null $value + * @param int $type + * + * @return Select + */ + public function join(string $join, string $table, string $condition, $value = null, int $type = -1): Select + { + } + + /** + * Sets a `OR` for a `HAVING` condition + * + * @param string $condition + * @param mixed|null $value + * @param int $type + * + * @return Select + */ + public function orHaving(string $condition, $value = null, int $type = -1): Select + { + } + + /** + * Resets the internal collections + * + * @return Select + */ + public function reset(): Select + { + } + + /** + * Start a sub-select + * + * @return Select + */ + public function subSelect(): Select + { + } + + /** + * Start a `UNION` + * + * @return Select + */ + public function union(): Select + { + } + + /** + * Start a `UNION ALL` + * + * @return Select + */ + public function unionAll(): Select + { + } + + /** + * Statement builder + * + * @param string $suffix + * + * @return string + */ + protected function getCurrentStatement(string $suffix = ''): string + { + } + + /** + * Builds the columns list + * + * @return string + */ + private function buildColumns(): string + { + } + + /** + * Builds the from list + * + * @return string + */ + private function buildFrom(): string + { + } +} diff --git a/src/Phalcon/DataMapper/Query/Update.php b/src/Phalcon/DataMapper/Query/Update.php new file mode 100644 index 00000000..b4b27fef --- /dev/null +++ b/src/Phalcon/DataMapper/Query/Update.php @@ -0,0 +1,121 @@ + + * + * For the full copyright and license information, please view the LICENSE.txt + * file that was distributed with this source code. + */ +namespace Phalcon\DataMapper\Query; + +use Phalcon\DataMapper\Pdo\Connection; + +/** + * Class Update + */ +class Update extends \Phalcon\DataMapper\Query\AbstractConditions +{ + + /** + * Update constructor. + * + * @param Connection $connection + * @param Bind $bind + */ + public function __construct(\Phalcon\DataMapper\Pdo\Connection $connection, Bind $bind) + { + } + + /** + * Sets a column for the `UPDATE` query + * + * @param string $column + * + * @return this + * @param mixed $value + * @param int $type + */ + public function column(string $column, $value = null, int $type = -1): Update + { + } + + /** + * Mass sets columns and values for the `UPDATE` + * + * @param array $columns + * + * @return this + */ + public function columns(array $columns): Update + { + } + + /** + * Adds table(s) in the query + * + * @param string $table + * + * @return Update + */ + public function from(string $table): Update + { + } + + /** + * @return string + */ + public function getStatement(): string + { + } + + /** + * Whether the query has columns or not + * + * @return bool + */ + public function hasColumns(): bool + { + } + + /** + * Adds the `RETURNING` clause + * + * @param array $columns + * + * @return Update + */ + public function returning(array $columns): Update + { + } + + /** + * Resets the internal store + * + * @return void + */ + public function reset() + { + } + + /** + * Sets a column = value condition + * + * @param string $column + * @param mixed|null $value + * + * @return Update + */ + public function set(string $column, $value = null): Update + { + } + + /** + * Builds the column list + * + * @return string + */ + private function buildColumns(): string + { + } +} diff --git a/src/Phalcon/Db/Adapter/AbstractAdapter.php b/src/Phalcon/Db/Adapter/AbstractAdapter.php index f1d974fc..f7a14462 100644 --- a/src/Phalcon/Db/Adapter/AbstractAdapter.php +++ b/src/Phalcon/Db/Adapter/AbstractAdapter.php @@ -55,6 +55,13 @@ abstract class AbstractAdapter implements \Phalcon\Db\Adapter\AdapterInterface, */ protected $eventsManager; + /** + * The real SQL statement - what was executed + * + * @var string + */ + protected $realSqlStatement; + /** * Active SQL Bind Types * @@ -546,6 +553,7 @@ public function getDefaultIdValue(): RawValue * ); * ``` * + * @todo Return NULL if this is not supported by the adapter * @return RawValue */ public function getDefaultValue(): RawValue @@ -921,6 +929,17 @@ public function useExplicitIdValue(): bool { } + /** + * Check whether the database system support the DEFAULT + * keyword (SQLite does not support it) + * + * @deprecated Will re removed in the next version + * @return bool + */ + public function supportsDefaultValue(): bool + { + } + /** * Generates SQL checking for the existence of a schema.view * diff --git a/src/Phalcon/Db/Adapter/AdapterInterface.php b/src/Phalcon/Db/Adapter/AdapterInterface.php index aff45a02..b789e7e0 100644 --- a/src/Phalcon/Db/Adapter/AdapterInterface.php +++ b/src/Phalcon/Db/Adapter/AdapterInterface.php @@ -354,6 +354,30 @@ public function getDialectType(): string; */ public function getDefaultIdValue(): RawValue; + /** + * Returns the default value to make the RBDM use the default value declared + * in the table definition + * + * ```php + * // Inserting a new robot with a valid default value for the column 'year' + * $success = $connection->insert( + * "robots", + * [ + * "Astro Boy", + * $connection->getDefaultValue() + * ], + * [ + * "name", + * "year", + * ] + * ); + * ``` + * + * @todo Return NULL if this is not supported by the adapter + * @return RawValue + */ + public function getDefaultValue(): RawValue; + /** * Return internal PDO handler * @@ -620,6 +644,14 @@ public function updateAsDict(string $table, $data, $whereCondition = null, $data */ public function useExplicitIdValue(): bool; + /** + * SQLite does not support the DEFAULT keyword + * + * @deprecated Will re removed in the next version + * @return bool + */ + public function supportsDefaultValue(): bool; + /** * Generates SQL checking for the existence of a schema.view * diff --git a/src/Phalcon/Db/Adapter/Pdo/AbstractPdo.php b/src/Phalcon/Db/Adapter/Pdo/AbstractPdo.php index c6ea5233..c6a817ed 100644 --- a/src/Phalcon/Db/Adapter/Pdo/AbstractPdo.php +++ b/src/Phalcon/Db/Adapter/Pdo/AbstractPdo.php @@ -383,4 +383,16 @@ public function rollback(bool $nesting = true): bool * @return array */ abstract protected function getDsnDefaults(): array; + + /** + * Constructs the SQL statement (with parameters) + * + * @see https://stackoverflow.com/a/8403150 + * @param string $statement + * @param array $parameters + * @return void + */ + protected function prepareRealSql(string $statement, array $parameters) + { + } } diff --git a/src/Phalcon/Db/Adapter/Pdo/Sqlite.php b/src/Phalcon/Db/Adapter/Pdo/Sqlite.php index 641b9b35..65220882 100644 --- a/src/Phalcon/Db/Adapter/Pdo/Sqlite.php +++ b/src/Phalcon/Db/Adapter/Pdo/Sqlite.php @@ -137,6 +137,16 @@ public function useExplicitIdValue(): bool { } + /** + * SQLite does not support the DEFAULT keyword + * + * @deprecated Will re removed in the next version + * @return bool + */ + public function supportsDefaultValue(): bool + { + } + /** * Returns PDO adapter DSN defaults as a key-value map. * diff --git a/src/Phalcon/Db/Column.php b/src/Phalcon/Db/Column.php index 051e4b8c..4bb01d30 100644 --- a/src/Phalcon/Db/Column.php +++ b/src/Phalcon/Db/Column.php @@ -25,6 +25,7 @@ * "notNull" => true, * "autoIncrement" => true, * "first" => true, + * "comment" => "", * ] * ); * @@ -247,6 +248,13 @@ class Column implements \Phalcon\Db\ColumnInterface */ protected $name; + /** + * Column's comment + * + * @var string + */ + protected $comment = null; + /** * Column not nullable? * @@ -320,6 +328,15 @@ public function getName(): string { } + /** + * Column's comment + * + * @return string + */ + public function getComment(): string + { + } + /** * Integer column number scale * diff --git a/src/Phalcon/Debug.php b/src/Phalcon/Debug.php index 8b83c432..8bc9cc36 100644 --- a/src/Phalcon/Debug.php +++ b/src/Phalcon/Debug.php @@ -254,4 +254,12 @@ protected function getVarDump($variable): string final protected function showTraceItem(int $n, array $trace): string { } + + /** + * @param \Throwable $exception + * @return string + */ + public function renderHtml(\Throwable $exception): string + { + } } diff --git a/src/Phalcon/Di.php b/src/Phalcon/Di.php index 55876e9d..0c6a96d9 100644 --- a/src/Phalcon/Di.php +++ b/src/Phalcon/Di.php @@ -185,10 +185,10 @@ public function getShared(string $name, $parameters = null) /** * Loads services from a Config object. * - * @param Config $config + * @param \Phalcon\Config\ConfigInterface $config * @return void */ - protected function loadFromConfig(Config $config) + protected function loadFromConfig(\Phalcon\Config\ConfigInterface $config) { } diff --git a/src/Phalcon/Escaper.php b/src/Phalcon/Escaper.php index 65be80dc..571b6ef1 100644 --- a/src/Phalcon/Escaper.php +++ b/src/Phalcon/Escaper.php @@ -38,12 +38,32 @@ class Escaper implements \Phalcon\Escaper\EscaperInterface */ protected $encoding = 'utf-8'; - - protected $htmlEscapeMap = null; + /** + * @var int + */ + protected $flags = 3; - protected $htmlQuoteType = 3; + /** + * Escapes a HTML attribute string + * + * @param string $attribute + * @return string + */ + public function attributes(string $attribute = null): string + { + } + /** + * Escape CSS strings by replacing non-alphanumeric chars by their + * hexadecimal escaped representation + * + * @param string $input + * @return string + */ + public function css(string $input): string + { + } /** * Detect the character encoding of a string to be handled by an encoder. @@ -118,6 +138,36 @@ public function getEncoding(): string { } + /** + * Returns the current flags for htmlspecialchars + * + * @return int + */ + public function getFlags(): int + { + } + + /** + * Escapes a HTML string. Internally uses htmlspecialchars + * + * @param string $input + * @return string + */ + public function html(string $input = null): string + { + } + + /** + * Escape javascript strings by replacing non-alphanumeric chars by their + * hexadecimal escaped representation + * + * @param string $input + * @return string + */ + public function js(string $input): string + { + } + /** * Utility to normalize a string's encoding to UTF-32. * @@ -156,6 +206,20 @@ public function setEncoding(string $encoding) { } + /** + * Sets the HTML quoting type for htmlspecialchars + * + * ```php + * $escaper->setFlags(ENT_XHTML); + * ``` + * + * @param int $flags + * @return Escaper + */ + public function setFlags(int $flags): Escaper + { + } + /** * Sets the HTML quoting type for htmlspecialchars * @@ -163,10 +227,20 @@ public function setEncoding(string $encoding) * $escaper->setHtmlQuoteType(ENT_XHTML); * ``` * - * @param int $quoteType + * @param int $flags * @return void */ - public function setHtmlQuoteType(int $quoteType) + public function setHtmlQuoteType(int $flags) + { + } + + /** + * Escapes a URL. Internally uses rawurlencode + * + * @param string $url + * @return string + */ + public function url(string $url): string { } } diff --git a/src/Phalcon/Events/Manager.php b/src/Phalcon/Events/Manager.php index 90fc951f..7b63dde3 100644 --- a/src/Phalcon/Events/Manager.php +++ b/src/Phalcon/Events/Manager.php @@ -9,6 +9,9 @@ */ namespace Phalcon\Events; +use Closure; +use SplPriorityQueue; + /** * Phalcon\Events\Manager * @@ -93,7 +96,15 @@ public function detachAll(string $type = null) } /** - * Set if priorities are enabled in the EventsManager + * Set if priorities are enabled in the EventsManager. + * + * A priority queue of events is a data structure similar + * to a regular queue of events: we can also put and extract + * elements from it. The difference is that each element in a + * priority queue is associated with a value called priority. + * This value is used to order elements of a queue: elements + * with higher priority are retrieved before the elements with + * lower priority. * * @param bool $enablePriorities * @return void @@ -170,4 +181,12 @@ public function hasListeners(string $type): bool public function isCollecting(): bool { } + + /** + * @param mixed $handler + * @return bool + */ + public function isValidHandler($handler): bool + { + } } diff --git a/src/Phalcon/Flash/Session.php b/src/Phalcon/Flash/Session.php index f204ed7f..d57c0c51 100644 --- a/src/Phalcon/Flash/Session.php +++ b/src/Phalcon/Flash/Session.php @@ -9,6 +9,7 @@ */ namespace Phalcon\Flash; +use Phalcon\Di\DiInterface; use Phalcon\Session\ManagerInterface; /** diff --git a/src/Phalcon/Forms/Element/Numeric.php b/src/Phalcon/Forms/Element/Numeric.php index e56db2af..eaa76856 100644 --- a/src/Phalcon/Forms/Element/Numeric.php +++ b/src/Phalcon/Forms/Element/Numeric.php @@ -9,6 +9,8 @@ */ namespace Phalcon\Forms\Element; +use Phalcon\Tag; + /** * Phalcon\Forms\Element\Numeric * diff --git a/src/Phalcon/Forms/Element/Password.php b/src/Phalcon/Forms/Element/Password.php index 5eea07c3..99f283ab 100644 --- a/src/Phalcon/Forms/Element/Password.php +++ b/src/Phalcon/Forms/Element/Password.php @@ -9,6 +9,8 @@ */ namespace Phalcon\Forms\Element; +use Phalcon\Tag; + /** * Phalcon\Forms\Element\Password * diff --git a/src/Phalcon/Forms/Element/Radio.php b/src/Phalcon/Forms/Element/Radio.php index a91609ba..727c138f 100644 --- a/src/Phalcon/Forms/Element/Radio.php +++ b/src/Phalcon/Forms/Element/Radio.php @@ -9,6 +9,8 @@ */ namespace Phalcon\Forms\Element; +use Phalcon\Tag; + /** * Phalcon\Forms\Element\Radio * diff --git a/src/Phalcon/Forms/Element/Select.php b/src/Phalcon/Forms/Element/Select.php index a5f3c15b..fb9b323e 100644 --- a/src/Phalcon/Forms/Element/Select.php +++ b/src/Phalcon/Forms/Element/Select.php @@ -9,6 +9,8 @@ */ namespace Phalcon\Forms\Element; +use Phalcon\Tag\Select as SelectTag; + /** * Phalcon\Forms\Element\Select * diff --git a/src/Phalcon/Forms/Element/Submit.php b/src/Phalcon/Forms/Element/Submit.php index 36dfea82..7b4052fa 100644 --- a/src/Phalcon/Forms/Element/Submit.php +++ b/src/Phalcon/Forms/Element/Submit.php @@ -9,6 +9,8 @@ */ namespace Phalcon\Forms\Element; +use Phalcon\Tag; + /** * Component INPUT[type=submit] for forms */ diff --git a/src/Phalcon/Forms/Element/Text.php b/src/Phalcon/Forms/Element/Text.php index f66ebf22..ff3a434d 100644 --- a/src/Phalcon/Forms/Element/Text.php +++ b/src/Phalcon/Forms/Element/Text.php @@ -9,6 +9,8 @@ */ namespace Phalcon\Forms\Element; +use Phalcon\Tag; + /** * Phalcon\Forms\Element\Text * diff --git a/src/Phalcon/Forms/Element/TextArea.php b/src/Phalcon/Forms/Element/TextArea.php index b316bbf2..f7885541 100644 --- a/src/Phalcon/Forms/Element/TextArea.php +++ b/src/Phalcon/Forms/Element/TextArea.php @@ -9,6 +9,8 @@ */ namespace Phalcon\Forms\Element; +use Phalcon\Tag; + /** * Component TEXTAREA for forms */ diff --git a/src/Phalcon/Helper/Arr.php b/src/Phalcon/Helper/Arr.php index 5f7c5025..0d0c3445 100644 --- a/src/Phalcon/Helper/Arr.php +++ b/src/Phalcon/Helper/Arr.php @@ -15,6 +15,19 @@ class Arr { + /** + * Black list filter by key: exclude elements of an array + * by the keys obtained from the elements of a blacklist + * + * @param array $collection + * @param array $blackList + * + * @return array + */ + final public static function blackList(array $collection, array $blackList): array + { + } + /** * Chunks an array into smaller arrays of a specified size. * @@ -104,7 +117,7 @@ final public static function group(array $collection, $method): array } /** - * Helper method to get an array element or a default + * Determines whether an element is present in the array. * * @param array $collection * @param mixed $index diff --git a/src/Phalcon/Helper/Base64.php b/src/Phalcon/Helper/Base64.php new file mode 100644 index 00000000..7ec2a830 --- /dev/null +++ b/src/Phalcon/Helper/Base64.php @@ -0,0 +1,41 @@ + + * + * For the full copyright and license information, please view the LICENSE.txt + * file that was distributed with this source code. + */ +namespace Phalcon\Helper; + +/** + * Phalcon\Helper\Base64 + * + * This class offers quick string base64 functions + */ +class Base64 +{ + + /** + * Encode a json string in Base64 Url format. + * + * @param string $input + * + * @return string + */ + final public static function encodeUrl(string $input): string + { + } + + /** + * Decode a Base64 Url string to a json string + * + * @param string $input + * + * @return string + */ + final public static function decodeUrl(string $input): string + { + } +} diff --git a/src/Phalcon/Helper/Json.php b/src/Phalcon/Helper/Json.php index 3ee32285..caab0ece 100644 --- a/src/Phalcon/Helper/Json.php +++ b/src/Phalcon/Helper/Json.php @@ -9,6 +9,8 @@ */ namespace Phalcon\Helper; +use InvalidArgumentException; + /** * This class offers a wrapper for JSON methods to serialize and unserialize */ diff --git a/src/Phalcon/Helper/Str.php b/src/Phalcon/Helper/Str.php index e2d475b8..b71db150 100644 --- a/src/Phalcon/Helper/Str.php +++ b/src/Phalcon/Helper/Str.php @@ -9,6 +9,8 @@ */ namespace Phalcon\Helper; +use RuntimeException; + /** * This class offers quick string functions throughout the framework */ @@ -236,6 +238,21 @@ final public static function firstBetween(string $text, string $start, string $e { } + /** + * Changes a text to a URL friendly one + * + * @param string $text + * @param string $separator + * @param bool $lowercase + * @param mixed|null $replace + * + * @return string + * @throws Exception + */ + final public static function friendly(string $text, string $separator = '-', bool $lowercase = true, $replace = null): string + { + } + /** * Makes an underscored or dashed phrase human-readable * diff --git a/src/Phalcon/Html/Helper/AbstractHelper.php b/src/Phalcon/Html/Helper/AbstractHelper.php index b02f1a4c..a4d3fa59 100644 --- a/src/Phalcon/Html/Helper/AbstractHelper.php +++ b/src/Phalcon/Html/Helper/AbstractHelper.php @@ -10,50 +10,66 @@ namespace Phalcon\Html\Helper; use Phalcon\Escaper\EscaperInterface; +use Phalcon\Html\Exception; /** - * Phalcon\Html\Helper\AbstractHelper + * Class AbstractHelper * - * Abstract class for all HTML helpers + * @property string $delimiter + * @property Escaper $escaper + * @property string $indent + * @property int $indentLevel */ abstract class AbstractHelper { + /** + * @var string + */ + protected $delimiter = ''; + /** * @var EscaperInterface */ protected $escaper; + /** + * @var string + */ + protected $indent = ' '; + + /** + * @var int + */ + protected $indentLevel = 1; + /** - * Constructor + * AbstractHelper constructor. * - * @param \Phalcon\Escaper\EscaperInterface $escaper + * @param Escaper $escaper */ public function __construct(\Phalcon\Escaper\EscaperInterface $escaper) { } /** - * Renders an element + * Produces a closing tag * * @param string $tag - * @param string $text - * @param array $attributes - * @param bool $raw + * @param bool $raw + * * @return string */ - protected function renderFullElement(string $tag, string $text, array $attributes = array(), bool $raw = false): string + protected function close(string $tag, bool $raw = false): string { } /** - * Renders an element + * Replicates the indent x times as per indentLevel * - * @param string $tag - * @param array $attributes * @return string */ - protected function renderElement(string $tag, array $attributes = array()): string + protected function indent(): string { } @@ -61,28 +77,85 @@ protected function renderElement(string $tag, array $attributes = array()): stri * Keeps all the attributes sorted - same order all the tome * * @param array $overrides - * @param array $attributes * + * @param array $attributes + * * @return array */ protected function orderAttributes(array $overrides, array $attributes): array { } + /** + * Traverses an array and calls the method defined in the first element + * with attributes as the second, returning the resulting string + * + * @param array $elements + * @param string $delimiter + * + * @return string + */ + protected function renderArrayElements(array $elements, string $delimiter): string + { + } + /** * Renders all the attributes * * @param array $attributes + * * @return string */ protected function renderAttributes(array $attributes): string { } + /** + * Renders an element + * + * @param string $tag + * @param array $attributes + * + * @return string + * @throws Exception + */ + protected function renderElement(string $tag, array $attributes = array()): string + { + } + + /** + * Renders an element + * + * @param string $tag + * @param string $text + * @param array $attributes + * @param bool $raw + * + * @return string + * @throws Exception + */ + protected function renderFullElement(string $tag, string $text, array $attributes = array(), bool $raw = false): string + { + } + + /** + * Renders a tag + * + * @param string $tag + * @param array $attributes + * @param string $close + * + * @return string + */ + protected function renderTag(string $tag, array $attributes = array(), string $close = ''): string + { + } + /** * Produces a self close tag i.e. * * @param string $tag - * @param array $attributes + * @param array $attributes + * * @return string */ protected function selfClose(string $tag, array $attributes = array()): string diff --git a/src/Phalcon/Html/Helper/AbstractList.php b/src/Phalcon/Html/Helper/AbstractList.php new file mode 100644 index 00000000..5a2c130d --- /dev/null +++ b/src/Phalcon/Html/Helper/AbstractList.php @@ -0,0 +1,64 @@ + + * + * For the full copyright and license information, please view the LICENSE.txt + * file that was distributed with this source code. + */ +namespace Phalcon\Html\Helper; + +use Phalcon\Html\Exception; + +/** + * Class AbstractList + */ +abstract class AbstractList extends \Phalcon\Html\Helper\AbstractHelper +{ + /** + * @var array + */ + protected $attributes = array(); + + /** + * @var string + */ + protected $elementTag = 'li'; + + /** + * @var array + */ + protected $store = array(); + + + /** + * @param string $indent + * @param string $delimiter + * @param array $attributes + * + * @return AbstractList + */ + public function __invoke(string $indent = null, string $delimiter = null, array $attributes = array()): AbstractList + { + } + + /** + * Generates and returns the HTML for the list. + * + * @return string + * @throws Exception + */ + public function __toString() + { + } + + /** + * + * Returns the tag name. + * + * @return string + * + */ + abstract protected function getTag(): string; +} diff --git a/src/Phalcon/Html/Helper/AbstractSeries.php b/src/Phalcon/Html/Helper/AbstractSeries.php new file mode 100644 index 00000000..6cb0be53 --- /dev/null +++ b/src/Phalcon/Html/Helper/AbstractSeries.php @@ -0,0 +1,53 @@ + + * + * For the full copyright and license information, please view the LICENSE.txt + * file that was distributed with this source code. + */ +namespace Phalcon\Html\Helper; + +/** + * Class AbstractSeries + */ +abstract class AbstractSeries extends \Phalcon\Html\Helper\AbstractHelper +{ + /** + * @var array + */ + protected $attributes = array(); + + /** + * @var array + */ + protected $store = array(); + + + /** + * @param string $indent + * @param string $delimiter + * + * @return AbstractSeries + */ + public function __invoke(string $indent = null, string $delimiter = null): AbstractSeries + { + } + + /** + * Generates and returns the HTML for the list. + * + * @return string + */ + public function __toString() + { + } + + /** + * Returns the tag name. + * + * @return string + */ + abstract protected function getTag(): string; +} diff --git a/src/Phalcon/Html/Helper/Anchor.php b/src/Phalcon/Html/Helper/Anchor.php index 2624e59f..2744eb77 100644 --- a/src/Phalcon/Html/Helper/Anchor.php +++ b/src/Phalcon/Html/Helper/Anchor.php @@ -9,21 +9,36 @@ */ namespace Phalcon\Html\Helper; +use Phalcon\Html\Exception; + /** - * Phalcon\Html\Helper\Anchor - * - * Creates an anchor + * Class Anchor */ class Anchor extends \Phalcon\Html\Helper\AbstractHelper { /** - * @param string $href The href tag - * @param string $text The text for the anchor - * @param array $attributes Any additional attributes + * Produce a tag + * + * @param string $href + * @param string $text + * @param array $attributes + * @param bool $raw + * * @return string + * @throws Exception + */ + public function __invoke(string $href, string $text, array $attributes = array(), bool $raw = false): string + { + } + + /** + * @param string $href + * @param array $attributes + * + * @return array */ - public function __invoke(string $href, string $text, array $attributes = array()): string + protected function processAttributes(string $href, array $attributes): array { } } diff --git a/src/Phalcon/Html/Helper/AnchorRaw.php b/src/Phalcon/Html/Helper/AnchorRaw.php deleted file mode 100644 index 402f7bde..00000000 --- a/src/Phalcon/Html/Helper/AnchorRaw.php +++ /dev/null @@ -1,29 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE.txt - * file that was distributed with this source code. - */ -namespace Phalcon\Html\Helper; - -/** - * Phalcon\Html\Helper\AnchorRaw - * - * Creates a raw anchor - */ -class AnchorRaw extends \Phalcon\Html\Helper\AbstractHelper -{ - - /** - * @param string $href The href tag - * @param string $text The text for the anchor - * @param array $attributes Any additional attributes - * @return string - */ - public function __invoke(string $href, string $text, array $attributes = array()): string - { - } -} diff --git a/src/Phalcon/Html/Helper/ElementRaw.php b/src/Phalcon/Html/Helper/Base.php similarity index 50% rename from src/Phalcon/Html/Helper/ElementRaw.php rename to src/Phalcon/Html/Helper/Base.php index e59e6900..4fb37ce4 100644 --- a/src/Phalcon/Html/Helper/ElementRaw.php +++ b/src/Phalcon/Html/Helper/Base.php @@ -12,22 +12,21 @@ use Phalcon\Html\Exception; /** - * Phalcon\Html\Helper\ElementRaw - * - * Creates an element raw + * Class Base */ -class ElementRaw extends \Phalcon\Html\Helper\AbstractHelper +class Base extends \Phalcon\Html\Helper\AbstractHelper { /** - * @param string $tag The tag for the anchor - * @param string $text The text for the anchor - * @param array $attributes Any additional attributes + * Produce a `` tag. + * + * @param string $href + * @param array $attributes * * @return string * @throws Exception */ - public function __invoke(string $tag, string $text, array $attributes = array()): string + public function __invoke(string $href = null, array $attributes = array()): string { } } diff --git a/src/Phalcon/Html/Helper/Body.php b/src/Phalcon/Html/Helper/Body.php index 6584697d..afe351eb 100644 --- a/src/Phalcon/Html/Helper/Body.php +++ b/src/Phalcon/Html/Helper/Body.php @@ -9,17 +9,21 @@ */ namespace Phalcon\Html\Helper; +use Phalcon\Html\Exception; + /** - * Phalcon\Html\Helper\Body - * - * Creates a body tag + * Class Body */ class Body extends \Phalcon\Html\Helper\AbstractHelper { /** - * @param array $attributes Any additional attributes + * Produce a `` tag. + * + * @param array $attributes + * * @return string + * @throws Exception */ public function __invoke(array $attributes = array()): string { diff --git a/src/Phalcon/Html/Helper/Button.php b/src/Phalcon/Html/Helper/Button.php index 75de0d32..4b89f603 100644 --- a/src/Phalcon/Html/Helper/Button.php +++ b/src/Phalcon/Html/Helper/Button.php @@ -9,20 +9,25 @@ */ namespace Phalcon\Html\Helper; +use Phalcon\Html\Exception; + /** - * Phalcon\Html\Helper\Button - * - * Creates a button tag + * Class Button */ class Button extends \Phalcon\Html\Helper\AbstractHelper { /** - * @param string $text The text for the anchor - * @param array $attributes Any additional attributes + * Produce a `