diff --git a/.env b/.env new file mode 100644 index 0000000..2148dfc --- /dev/null +++ b/.env @@ -0,0 +1,3 @@ +# This file is a "template" of which env vars need to be defined for your application +# Copy this file to .env file for development, create environment variables when deploying to production +# https://symfony.com/doc/current/best_practices/configuration.html#infrastructure-related-configuration diff --git a/.env.dist b/.env.dist new file mode 100644 index 0000000..2148dfc --- /dev/null +++ b/.env.dist @@ -0,0 +1,3 @@ +# This file is a "template" of which env vars need to be defined for your application +# Copy this file to .env file for development, create environment variables when deploying to production +# https://symfony.com/doc/current/best_practices/configuration.html#infrastructure-related-configuration diff --git a/Source/.env b/Source/.env new file mode 100644 index 0000000..2148dfc --- /dev/null +++ b/Source/.env @@ -0,0 +1,3 @@ +# This file is a "template" of which env vars need to be defined for your application +# Copy this file to .env file for development, create environment variables when deploying to production +# https://symfony.com/doc/current/best_practices/configuration.html#infrastructure-related-configuration diff --git a/Source/assets/html/baseOld.twig b/Source/assets/html/baseOld.twig deleted file mode 100644 index 4b9da97..0000000 --- a/Source/assets/html/baseOld.twig +++ /dev/null @@ -1,56 +0,0 @@ - - - - {{ page.title }} - - - - - {##} - {% block css %}{% endblock %} - - - - - - - - - - - -{% include 'nav.twig' %} -{% include 'header.twig' %} - -{% block content %}{% endblock %} - -{% include "footer.twig" %} - -{% block js %} - -{% endblock %} - - - - - diff --git a/Source/assets/html/codebox.twig b/Source/assets/html/codebox.twig index e630569..fdb49e2 100644 --- a/Source/assets/html/codebox.twig +++ b/Source/assets/html/codebox.twig @@ -8,7 +8,7 @@ Author: {{ code.nick }} Version: {{ code.version }} Lang: {{ code.lLang }} - {% if code.extlib is defined %} + {% if code.extlib is defined and code.extlib != "" %} External library: {{ code.extlib }} diff --git a/Source/composer.json b/Source/composer.json index 5b5b797..6004e54 100644 --- a/Source/composer.json +++ b/Source/composer.json @@ -3,7 +3,8 @@ "twig/twig": "^2.0", "jkanetwork/dbwrapper": "^1.4", "symfony/flex": "^1.1", - "symfony/twig-bridge": "^4.1", - "silex/silex": "^2.3" + "symfony/twig-bridge": "3.0.4", + "silex/silex": "~1.3", + "doctrine/dbal": "^2.5" } } diff --git a/Source/composer.lock b/Source/composer.lock index 0da8d83..ee75759 100644 --- a/Source/composer.lock +++ b/Source/composer.lock @@ -1,11 +1,239 @@ { "_readme": [ "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "80eef0db968dff798db6ae8ac2157e65", + "content-hash": "1d57e016803e2095db2110462e070da3", "packages": [ + { + "name": "doctrine/cache", + "version": "v1.8.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/cache.git", + "reference": "d768d58baee9a4862ca783840eca1b9add7a7f57" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/cache/zipball/d768d58baee9a4862ca783840eca1b9add7a7f57", + "reference": "d768d58baee9a4862ca783840eca1b9add7a7f57", + "shasum": "" + }, + "require": { + "php": "~7.1" + }, + "conflict": { + "doctrine/common": ">2.2,<2.4" + }, + "require-dev": { + "alcaeus/mongo-php-adapter": "^1.1", + "doctrine/coding-standard": "^4.0", + "mongodb/mongodb": "^1.1", + "phpunit/phpunit": "^7.0", + "predis/predis": "~1.0" + }, + "suggest": { + "alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.8.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Caching library offering an object-oriented API for many cache backends", + "homepage": "https://www.doctrine-project.org", + "keywords": [ + "cache", + "caching" + ], + "time": "2018-08-21T18:01:43+00:00" + }, + { + "name": "doctrine/dbal", + "version": "v2.8.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/dbal.git", + "reference": "5140a64c08b4b607b9bedaae0cedd26f04a0e621" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/5140a64c08b4b607b9bedaae0cedd26f04a0e621", + "reference": "5140a64c08b4b607b9bedaae0cedd26f04a0e621", + "shasum": "" + }, + "require": { + "doctrine/cache": "^1.0", + "doctrine/event-manager": "^1.0", + "ext-pdo": "*", + "php": "^7.1" + }, + "require-dev": { + "doctrine/coding-standard": "^4.0", + "jetbrains/phpstorm-stubs": "^2018.1.2", + "phpstan/phpstan": "^0.10.1", + "phpunit/phpunit": "^7.1.2", + "phpunit/phpunit-mock-objects": "!=3.2.4,!=3.2.5", + "symfony/console": "^2.0.5|^3.0|^4.0", + "symfony/phpunit-bridge": "^3.4.5|^4.0.5" + }, + "suggest": { + "symfony/console": "For helpful console commands such as SQL execution and import of files." + }, + "bin": [ + "bin/doctrine-dbal" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.8.x-dev", + "dev-develop": "3.0.x-dev" + } + }, + "autoload": { + "psr-0": { + "Doctrine\\DBAL\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + } + ], + "description": "Database Abstraction Layer", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "database", + "dbal", + "persistence", + "queryobject" + ], + "time": "2018-07-13T03:16:35+00:00" + }, + { + "name": "doctrine/event-manager", + "version": "v1.0.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/event-manager.git", + "reference": "a520bc093a0170feeb6b14e9d83f3a14452e64b3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/event-manager/zipball/a520bc093a0170feeb6b14e9d83f3a14452e64b3", + "reference": "a520bc093a0170feeb6b14e9d83f3a14452e64b3", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "conflict": { + "doctrine/common": "<2.9@dev" + }, + "require-dev": { + "doctrine/coding-standard": "^4.0", + "phpunit/phpunit": "^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\": "lib/Doctrine/Common" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "Doctrine Event Manager component", + "homepage": "https://www.doctrine-project.org/projects/event-manager.html", + "keywords": [ + "event", + "eventdispatcher", + "eventmanager" + ], + "time": "2018-06-11T11:59:03+00:00" + }, { "name": "jkanetwork/dbwrapper", "version": "1.5.1", @@ -50,34 +278,30 @@ }, { "name": "pimple/pimple", - "version": "v3.2.3", + "version": "v1.1.1", "source": { "type": "git", "url": "https://github.com/silexphp/Pimple.git", - "reference": "9e403941ef9d65d20cba7d54e29fe906db42cf32" + "reference": "2019c145fe393923f3441b23f29bbdfaa5c58c4d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/silexphp/Pimple/zipball/9e403941ef9d65d20cba7d54e29fe906db42cf32", - "reference": "9e403941ef9d65d20cba7d54e29fe906db42cf32", + "url": "https://api.github.com/repos/silexphp/Pimple/zipball/2019c145fe393923f3441b23f29bbdfaa5c58c4d", + "reference": "2019c145fe393923f3441b23f29bbdfaa5c58c4d", "shasum": "" }, "require": { - "php": ">=5.3.0", - "psr/container": "^1.0" - }, - "require-dev": { - "symfony/phpunit-bridge": "^3.2" + "php": ">=5.3.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2.x-dev" + "dev-master": "1.1.x-dev" } }, "autoload": { "psr-0": { - "Pimple": "src/" + "Pimple": "lib/" } }, "notification-url": "https://packagist.org/downloads/", @@ -90,62 +314,13 @@ "email": "fabien@symfony.com" } ], - "description": "Pimple, a simple Dependency Injection Container", + "description": "Pimple is a simple Dependency Injection Container for PHP 5.3", "homepage": "http://pimple.sensiolabs.org", "keywords": [ "container", "dependency injection" ], - "time": "2018-01-21T07:42:36+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" - ], - "time": "2017-02-14T16:28:37+00:00" + "time": "2013-11-22T08:30:29+00:00" }, { "name": "psr/log", @@ -196,62 +371,53 @@ }, { "name": "silex/silex", - "version": "v2.3.0", + "version": "v1.3.6", "source": { "type": "git", "url": "https://github.com/silexphp/Silex.git", - "reference": "6bc31c1b8c4ef614a7115320fd2d3b958032f131" + "reference": "ff8aa6bc2e066e14b07e0c63e9bd9dd1458af136" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/silexphp/Silex/zipball/6bc31c1b8c4ef614a7115320fd2d3b958032f131", - "reference": "6bc31c1b8c4ef614a7115320fd2d3b958032f131", + "url": "https://api.github.com/repos/silexphp/Silex/zipball/ff8aa6bc2e066e14b07e0c63e9bd9dd1458af136", + "reference": "ff8aa6bc2e066e14b07e0c63e9bd9dd1458af136", "shasum": "" }, "require": { - "php": ">=7.1.3", - "pimple/pimple": "^3.0", - "symfony/event-dispatcher": "^4.0", - "symfony/http-foundation": "^4.0", - "symfony/http-kernel": "^4.0", - "symfony/routing": "^4.0" - }, - "replace": { - "silex/api": "self.version", - "silex/providers": "self.version" + "php": ">=5.3.9", + "pimple/pimple": "~1.0", + "symfony/event-dispatcher": "~2.3|3.0.*", + "symfony/http-foundation": "~2.3|3.0.*", + "symfony/http-kernel": "~2.3|3.0.*", + "symfony/routing": "~2.3|3.0.*" }, "require-dev": { - "doctrine/dbal": "^2.2", + "doctrine/dbal": "~2.2", "monolog/monolog": "^1.4.1", - "swiftmailer/swiftmailer": "^5", - "symfony/asset": "^4.0", - "symfony/browser-kit": "^4.0", - "symfony/config": "^4.0", - "symfony/css-selector": "^4.0", - "symfony/debug": "^4.0", - "symfony/doctrine-bridge": "^4.0", - "symfony/dom-crawler": "^4.0", - "symfony/expression-language": "^4.0", - "symfony/finder": "^4.0", - "symfony/form": "^4.0", - "symfony/intl": "^4.0", - "symfony/monolog-bridge": "^4.0", - "symfony/options-resolver": "^4.0", - "symfony/phpunit-bridge": "^3.2", - "symfony/process": "^4.0", - "symfony/security": "^4.0", - "symfony/serializer": "^4.0", - "symfony/translation": "^4.0", - "symfony/twig-bridge": "^4.0", - "symfony/validator": "^4.0", - "symfony/var-dumper": "^4.0", - "symfony/web-link": "^4.0", - "twig/twig": "^2.0" + "swiftmailer/swiftmailer": "~5", + "symfony/browser-kit": "~2.3|3.0.*", + "symfony/config": "~2.3|3.0.*", + "symfony/css-selector": "~2.3|3.0.*", + "symfony/debug": "~2.3|3.0.*", + "symfony/dom-crawler": "~2.3|3.0.*", + "symfony/finder": "~2.3|3.0.*", + "symfony/form": "~2.3|3.0.*", + "symfony/intl": "~2.3|3.0.*", + "symfony/monolog-bridge": "~2.3|3.0.*", + "symfony/options-resolver": "~2.3|3.0.*", + "symfony/phpunit-bridge": "~2.7", + "symfony/process": "~2.3|3.0.*", + "symfony/security": "~2.3|3.0.*", + "symfony/serializer": "~2.3|3.0.*", + "symfony/translation": "~2.3|3.0.*", + "symfony/twig-bridge": "~2.3|3.0.*", + "symfony/validator": "~2.3|3.0.*", + "twig/twig": "~1.28|~2.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.3.x-dev" + "dev-master": "1.3.x-dev" } }, "autoload": { @@ -279,36 +445,36 @@ "microframework" ], "abandoned": "symfony/flex", - "time": "2018-04-20T05:17:01+00:00" + "time": "2017-04-30T16:26:54+00:00" }, { "name": "symfony/debug", - "version": "v4.1.5", + "version": "v3.4.17", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "b4a0b67dee59e2cae4449a8f8eabc508d622fd33" + "reference": "0a612e9dfbd2ccce03eb174365f31ecdca930ff6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/b4a0b67dee59e2cae4449a8f8eabc508d622fd33", - "reference": "b4a0b67dee59e2cae4449a8f8eabc508d622fd33", + "url": "https://api.github.com/repos/symfony/debug/zipball/0a612e9dfbd2ccce03eb174365f31ecdca930ff6", + "reference": "0a612e9dfbd2ccce03eb174365f31ecdca930ff6", "shasum": "" }, "require": { - "php": "^7.1.3", + "php": "^5.5.9|>=7.0.8", "psr/log": "~1.0" }, "conflict": { - "symfony/http-kernel": "<3.4" + "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2" }, "require-dev": { - "symfony/http-kernel": "~3.4|~4.0" + "symfony/http-kernel": "~2.8|~3.0|~4.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.1-dev" + "dev-master": "3.4-dev" } }, "autoload": { @@ -335,34 +501,31 @@ ], "description": "Symfony Debug Component", "homepage": "https://symfony.com", - "time": "2018-09-22T19:04:12+00:00" + "time": "2018-10-02T16:33:53+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v4.1.5", + "version": "v3.0.9", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "bfb30c2ad377615a463ebbc875eba64a99f6aa3e" + "reference": "54da3ff63dec3c9c0e32ec3f95a7d94ef64baa00" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/bfb30c2ad377615a463ebbc875eba64a99f6aa3e", - "reference": "bfb30c2ad377615a463ebbc875eba64a99f6aa3e", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/54da3ff63dec3c9c0e32ec3f95a7d94ef64baa00", + "reference": "54da3ff63dec3c9c0e32ec3f95a7d94ef64baa00", "shasum": "" }, "require": { - "php": "^7.1.3" - }, - "conflict": { - "symfony/dependency-injection": "<3.4" + "php": ">=5.5.9" }, "require-dev": { "psr/log": "~1.0", - "symfony/config": "~3.4|~4.0", - "symfony/dependency-injection": "~3.4|~4.0", - "symfony/expression-language": "~3.4|~4.0", - "symfony/stopwatch": "~3.4|~4.0" + "symfony/config": "~2.8|~3.0", + "symfony/dependency-injection": "~2.8|~3.0", + "symfony/expression-language": "~2.8|~3.0", + "symfony/stopwatch": "~2.8|~3.0" }, "suggest": { "symfony/dependency-injection": "", @@ -371,7 +534,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.1-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -398,7 +561,7 @@ ], "description": "Symfony EventDispatcher Component", "homepage": "https://symfony.com", - "time": "2018-07-26T09:10:45+00:00" + "time": "2016-07-19T10:44:15+00:00" }, { "name": "symfony/flex", @@ -449,30 +612,29 @@ }, { "name": "symfony/http-foundation", - "version": "v4.1.5", + "version": "v3.0.9", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "2ce66353d0a6ea96bc54bc9ecf8bcea4eaf5896c" + "reference": "49ba00f8ede742169cb6b70abe33243f4d673f82" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/2ce66353d0a6ea96bc54bc9ecf8bcea4eaf5896c", - "reference": "2ce66353d0a6ea96bc54bc9ecf8bcea4eaf5896c", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/49ba00f8ede742169cb6b70abe33243f4d673f82", + "reference": "49ba00f8ede742169cb6b70abe33243f4d673f82", "shasum": "" }, "require": { - "php": "^7.1.3", + "php": ">=5.5.9", "symfony/polyfill-mbstring": "~1.1" }, "require-dev": { - "predis/predis": "~1.0", - "symfony/expression-language": "~3.4|~4.0" + "symfony/expression-language": "~2.8|~3.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.1-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -499,67 +661,62 @@ ], "description": "Symfony HttpFoundation Component", "homepage": "https://symfony.com", - "time": "2018-09-30T03:47:35+00:00" + "time": "2016-07-17T13:54:30+00:00" }, { "name": "symfony/http-kernel", - "version": "v4.1.5", + "version": "v3.0.9", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "74b1d37bf9a1cddc38093530c0a931a310994ea5" + "reference": "d97ba4425e36e79c794e7d14ff36f00f081b37b3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/74b1d37bf9a1cddc38093530c0a931a310994ea5", - "reference": "74b1d37bf9a1cddc38093530c0a931a310994ea5", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/d97ba4425e36e79c794e7d14ff36f00f081b37b3", + "reference": "d97ba4425e36e79c794e7d14ff36f00f081b37b3", "shasum": "" }, "require": { - "php": "^7.1.3", + "php": ">=5.5.9", "psr/log": "~1.0", - "symfony/debug": "~3.4|~4.0", - "symfony/event-dispatcher": "~4.1", - "symfony/http-foundation": "^4.1.1", - "symfony/polyfill-ctype": "~1.8" + "symfony/debug": "~2.8|~3.0", + "symfony/event-dispatcher": "~2.8|~3.0", + "symfony/http-foundation": "~2.8.8|~3.0.8|~3.1.2|~3.2" }, "conflict": { - "symfony/config": "<3.4", - "symfony/dependency-injection": "<4.1", - "symfony/var-dumper": "<4.1.1", - "twig/twig": "<1.34|<2.4,>=2" - }, - "provide": { - "psr/log-implementation": "1.0" + "symfony/config": "<2.8" }, "require-dev": { - "psr/cache": "~1.0", - "symfony/browser-kit": "~3.4|~4.0", - "symfony/config": "~3.4|~4.0", - "symfony/console": "~3.4|~4.0", - "symfony/css-selector": "~3.4|~4.0", - "symfony/dependency-injection": "^4.1", - "symfony/dom-crawler": "~3.4|~4.0", - "symfony/expression-language": "~3.4|~4.0", - "symfony/finder": "~3.4|~4.0", - "symfony/process": "~3.4|~4.0", - "symfony/routing": "~3.4|~4.0", - "symfony/stopwatch": "~3.4|~4.0", - "symfony/templating": "~3.4|~4.0", - "symfony/translation": "~3.4|~4.0", - "symfony/var-dumper": "^4.1.1" + "symfony/browser-kit": "~2.8|~3.0", + "symfony/class-loader": "~2.8|~3.0", + "symfony/config": "~2.8|~3.0", + "symfony/console": "~2.8|~3.0", + "symfony/css-selector": "~2.8|~3.0", + "symfony/dependency-injection": "~2.8|~3.0", + "symfony/dom-crawler": "~2.8|~3.0", + "symfony/expression-language": "~2.8|~3.0", + "symfony/finder": "~2.8|~3.0", + "symfony/process": "~2.8|~3.0", + "symfony/routing": "~2.8|~3.0", + "symfony/stopwatch": "~2.8|~3.0", + "symfony/templating": "~2.8|~3.0", + "symfony/translation": "~2.8|~3.0", + "symfony/var-dumper": "~2.8|~3.0" }, "suggest": { "symfony/browser-kit": "", + "symfony/class-loader": "", "symfony/config": "", "symfony/console": "", "symfony/dependency-injection": "", + "symfony/finder": "", "symfony/var-dumper": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.1-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -586,7 +743,7 @@ ], "description": "Symfony HttpKernel Component", "homepage": "https://symfony.com", - "time": "2018-09-30T05:05:39+00:00" + "time": "2016-07-30T09:10:37+00:00" }, { "name": "symfony/polyfill-ctype", @@ -707,34 +864,32 @@ }, { "name": "symfony/routing", - "version": "v4.1.5", + "version": "v3.0.9", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "d998113cf6db1e8262fdd8d5db9774c9a7be33b0" + "reference": "9038984bd9c05ab07280121e9e10f61a7231457b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/d998113cf6db1e8262fdd8d5db9774c9a7be33b0", - "reference": "d998113cf6db1e8262fdd8d5db9774c9a7be33b0", + "url": "https://api.github.com/repos/symfony/routing/zipball/9038984bd9c05ab07280121e9e10f61a7231457b", + "reference": "9038984bd9c05ab07280121e9e10f61a7231457b", "shasum": "" }, "require": { - "php": "^7.1.3" + "php": ">=5.5.9" }, "conflict": { - "symfony/config": "<3.4", - "symfony/dependency-injection": "<3.4", - "symfony/yaml": "<3.4" + "symfony/config": "<2.8" }, "require-dev": { "doctrine/annotations": "~1.0", + "doctrine/common": "~2.2", "psr/log": "~1.0", - "symfony/config": "~3.4|~4.0", - "symfony/dependency-injection": "~3.4|~4.0", - "symfony/expression-language": "~3.4|~4.0", - "symfony/http-foundation": "~3.4|~4.0", - "symfony/yaml": "~3.4|~4.0" + "symfony/config": "~2.8|~3.0", + "symfony/expression-language": "~2.8|~3.0", + "symfony/http-foundation": "~2.8|~3.0", + "symfony/yaml": "~2.8|~3.0" }, "suggest": { "doctrine/annotations": "For using the annotation loader", @@ -747,7 +902,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.1-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -780,50 +935,42 @@ "uri", "url" ], - "time": "2018-09-08T13:24:10+00:00" + "time": "2016-06-29T05:40:00+00:00" }, { "name": "symfony/twig-bridge", - "version": "v4.1.5", + "version": "v3.0.4", "source": { "type": "git", "url": "https://github.com/symfony/twig-bridge.git", - "reference": "4a8426ab5e00c34ac8a7bf1a2bfd5a75165edadb" + "reference": "856a0b75f634fa907cdc0fbce5bf2eb667a1673d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/4a8426ab5e00c34ac8a7bf1a2bfd5a75165edadb", - "reference": "4a8426ab5e00c34ac8a7bf1a2bfd5a75165edadb", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/856a0b75f634fa907cdc0fbce5bf2eb667a1673d", + "reference": "856a0b75f634fa907cdc0fbce5bf2eb667a1673d", "shasum": "" }, "require": { - "php": "^7.1.3", - "twig/twig": "^1.35|^2.4.4" - }, - "conflict": { - "symfony/console": "<3.4", - "symfony/form": "<4.1.2" + "php": ">=5.5.9", + "twig/twig": "~1.23|~2.0" }, "require-dev": { - "symfony/asset": "~3.4|~4.0", - "symfony/console": "~3.4|~4.0", - "symfony/dependency-injection": "~3.4|~4.0", - "symfony/expression-language": "~3.4|~4.0", - "symfony/finder": "~3.4|~4.0", - "symfony/form": "^4.1.5", - "symfony/http-foundation": "~3.4|~4.0", - "symfony/http-kernel": "~3.4|~4.0", + "symfony/asset": "~2.8|~3.0", + "symfony/console": "~2.8|~3.0", + "symfony/expression-language": "~2.8|~3.0", + "symfony/finder": "~2.8|~3.0", + "symfony/form": "~3.0.4", + "symfony/http-kernel": "~2.8|~3.0", "symfony/polyfill-intl-icu": "~1.0", - "symfony/routing": "~3.4|~4.0", - "symfony/security": "~3.4|~4.0", + "symfony/routing": "~2.8|~3.0", + "symfony/security": "~2.8|~3.0", "symfony/security-acl": "~2.8|~3.0", - "symfony/stopwatch": "~3.4|~4.0", - "symfony/templating": "~3.4|~4.0", - "symfony/translation": "~3.4|~4.0", - "symfony/var-dumper": "~3.4|~4.0", - "symfony/web-link": "~3.4|~4.0", - "symfony/workflow": "~3.4|~4.0", - "symfony/yaml": "~3.4|~4.0" + "symfony/stopwatch": "~2.8|~3.0", + "symfony/templating": "~2.8|~3.0", + "symfony/translation": "~2.8|~3.0", + "symfony/var-dumper": "~2.8|~3.0", + "symfony/yaml": "~2.8|~3.0" }, "suggest": { "symfony/asset": "For using the AssetExtension", @@ -837,13 +984,12 @@ "symfony/templating": "For using the TwigEngine", "symfony/translation": "For using the TranslationExtension", "symfony/var-dumper": "For using the DumpExtension", - "symfony/web-link": "For using the WebLinkExtension", "symfony/yaml": "For using the YamlExtension" }, "type": "symfony-bridge", "extra": { "branch-alias": { - "dev-master": "4.1-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -870,7 +1016,7 @@ ], "description": "Symfony Twig Bridge", "homepage": "https://symfony.com", - "time": "2018-09-18T16:38:01+00:00" + "time": "2016-03-28T06:29:34+00:00" }, { "name": "twig/twig", diff --git a/Source/src/Config.php b/Source/src/Config.php index 6b71dd2..a6f9958 100644 --- a/Source/src/Config.php +++ b/Source/src/Config.php @@ -87,6 +87,18 @@ class Config return dbw_connect($DB["SGBD"], $DB["path"], $DB["db"], $DB["user"], $DB["password"]); } + public static function getDBalConexion(){ + if(!Config::initialized()) + Config::init(); + $DB = Config::$config["database"]; + return array( + 'dbname' => $DB['db'], + 'user' => $DB['user'], + 'password' => $DB['password'], + 'host' => $DB['path'], + 'driver' => "pdo_".$DB['SGBD']); + } + /** * Get options of project if exists * diff --git a/Source/src/DB.php b/Source/src/DB.php index 7feb75c..83a99c3 100644 --- a/Source/src/DB.php +++ b/Source/src/DB.php @@ -10,57 +10,41 @@ class DB /** * @var bool connection with database */ - public $conn; + private $conn; /** * DB constructor */ - function __construct() + function __construct($db) { - $this->conn = Config::getDBConexion(); + $this->conn = $db; $this->createTable(); } - /** - * Close the connection - */ - public function close() - { - dbw_close($this->conn); + /*Base methods*/ + public function newQueryBuilder(){ + $queryBuilder = new \Doctrine\DBAL\Query\QueryBuilder($this->conn); + return $queryBuilder; } - /** - * Get the first array of a query result - * - * @param $query sql query - * @return array array - */ - private function getQuery($query) - { - return dbw_fetch_array($this->conn, dbw_query($this->conn, $query)); + public function execute($queryBuilder){ + $query = $queryBuilder->execute(); + return $query; } - /** - * Get the total of codes in database - * - * @return int total of codes - */ - private function numOfCodes() - { - return $this->getQuery("SELECT COUNT(*) FROM Sources")[0]; + public function getData($queryBuilder){ + + return $this->execute($queryBuilder)->fetchAll(); } + /*End methods*/ + /** * Create table if not exist in deploy (Database must be exist). */ private function createTable() { - $query = "SET NAMES utf8; SET time_zone = '+00:00'; CREATE TABLE IF NOT EXISTS `Users`( `IDU` int(11) NOT NULL AUTO_INCREMENT, `email` varchar(64) NOT NULL, `pass` varchar(64) NOT NULL, `nick` varchar(40) NOT NULL, `token` varchar(50) DEFAULT NULL, `ROLE` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`IDU`)) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE IF NOT EXISTS `Codes` ( `IDC` int(11) NOT NULL AUTO_INCREMENT, `UserCreator` int(11) NOT NULL, `Name` varchar(80) NOT NULL, `Description` text NOT NULL, `Input` text NOT NULL, `Output` text NOT NULL, PRIMARY KEY (`IDC`), KEY `UserCreator` (`UserCreator`), CONSTRAINT `Codes_ibfk_1` FOREIGN KEY (`UserCreator`) REFERENCES `Users` (`IDU`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE IF NOT EXISTS `Sources` ( `IDC` int(11) NOT NULL, `IDU` int(11) NOT NULL, `Lang` varchar(15) NOT NULL, `Version` int(11) NOT NULL, `Modification` int(11) NOT NULL, `Code` text NOT NULL, `UseExtLib` text, `UseExtLibVer` varchar(55) DEFAULT NULL, PRIMARY KEY (`IDC`,`Lang`,`Version`), KEY `IDU` (`IDU`), CONSTRAINT `Sources_ibfk_1` FOREIGN KEY (`IDU`) REFERENCES `Users` (`IDU`), CONSTRAINT `Sources_ibfk_2` FOREIGN KEY (`IDC`) REFERENCES `Codes` (`IDC`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8"; - $query = explode(";",$query); - foreach ($query as $queryPart){ - dbw_query($this->conn,$queryPart); - } - //dbw_multi_query($this->conn, $query); + /*TODO*/ } /* @@ -77,8 +61,16 @@ class DB */ public function loadOriginalAuthor($IDC) { - $query = "SELECT UserCreator FROM Codes WHERE IDC='$IDC'"; - return $this->getQuery($query)[0]; + $queryBuilder = $this->newQueryBuilder(); + $queryBuilder + ->select('UserCreator') + ->from('Codes') + ->where($queryBuilder->expr()->eq( + 'IDC','?' + )) + ->setParameter(0,$IDC); + return $this->getData($queryBuilder)[0]; + } /** @@ -91,9 +83,29 @@ class DB */ public function loadAll($id, $lang, $version) { - $query = "SELECT * FROM Users NATURAL JOIN Sources NATURAL JOIN Codes WHERE IDC=$id AND Lang='$lang' AND Version=$version"; - $code = $this->getQuery($query); - return $code; + $queryBuilder = $this->newQueryBuilder(); + $queryBuilder + ->select('*') + ->from('Users','u') + ->join('u','Sources','s', + $queryBuilder->expr()->eq( + 'u.IDU','s.IDU' + )) + ->join('s','Codes','c', + $queryBuilder->expr()->eq( + 's.IDC','c.IDC' + )) + ->where($queryBuilder->expr()->andX( + $queryBuilder->expr()->eq('c.IDC','?'), + $queryBuilder->expr()->eq('s.Lang','?'), + $queryBuilder->expr()->eq('s.Version','?') + )) + ->setParameter(0,$id) + ->setParameter(1,$lang) + ->setParameter(2,$version); + $data = $this->getData($queryBuilder)[0]; + return $data; + } /** @@ -103,11 +115,40 @@ class DB */ public function loadLast($page = 0) { - $page=$page*10; - $query = "SELECT IDC,Name,nick,Lang,Description,Code,Version FROM Users NATURAL JOIN Sources as S NATURAL JOIN Codes WHERE Version = (SELECT MAX(Version) FROM Sources WHERE S.Lang = Lang AND S.IDC = IDC) ORDER BY Modification DESC LIMIT $page, 10"; - //echo $query; - $code = dbw_query($this->conn, $query); - return $code; + $each=10; + $page=$page*$each; + $queryBuilder = $this->newQueryBuilder(); + $subQuery = $this->newQueryBuilder(); + $queryBuilder + ->select("c.IDC","Name","nick","Lang","Description","Code","Version") + ->from('Users','u') + ->join('u','Sources','s', + $queryBuilder->expr()->eq( + 'u.IDU','s.IDU' + )) + ->join('s','Codes','c', + $queryBuilder->expr()->eq( + 's.IDC','c.IDC' + )) + ->where( + $queryBuilder->expr()->eq( + 's.Version','('. + $subQuery + ->select('MAX(Version)') + ->from('Sources') + ->where( + $subQuery->expr()->andX( + $subQuery->expr()->eq('s.Lang','Lang'), + $subQuery->expr()->eq('s.IDC','IDC') + )) + ->getSql() + .')' + )) + ->orderBy('Modification','DESC') + ->setFirstResult($page) + ->setMaxResults(10); + + return $this->execute($queryBuilder); } /** @@ -119,8 +160,22 @@ class DB */ public function loadOtherVersion($id, $lang) { - $query = "SELECT * FROM Users NATURAL JOIN Sources NATURAL JOIN Codes WHERE IDC='$id' AND Lang='$lang' ORDER BY Version ASC"; - return dbw_query($this->conn, $query); + $queryBuilder = $this->newQueryBuilder(); + $queryBuilder + ->select('*') + ->from('Users','u') + ->join('u','Sources','s', + $queryBuilder->expr()->eq('u.IDU','s.IDU')) + ->join('s','Codes','c', + $queryBuilder->expr()->eq('s.IDC','c.IDC')) + ->where($queryBuilder->expr()->andX( + $queryBuilder->expr()->eq('c.IDC','?'), + $queryBuilder->expr()->eq('s.Lang','?') + )) + ->orderBy('Version','ASC') + ->setParameter(0,$id) + ->setParameter(1,$lang); + return $this->execute($queryBuilder); } /** @@ -132,10 +187,26 @@ class DB */ public function loadDiff($id, $lang) { - $lang=dbw_escape_string($this->conn,$lang); - $query = "SELECT Lang,Code,Version FROM Sources WHERE IDC=$id AND Lang<>'$lang' AND Version = (SELECT MAX(Version) FROM Sources WHERE IDC=$id AND Lang='$lang')"; - $code = dbw_query($this->conn, $query); - return $code; + $queryBuilder = $this->newQueryBuilder(); + $subQueryBuilder = $this->newQueryBuilder(); + $queryBuilder + ->select('s.Lang','s.Code','s.Version') + ->from('Sources','s') + ->where($queryBuilder->expr()->andX( + $queryBuilder->expr()->neq('s.Lang','?'), + $queryBuilder->expr()->eq('s.IDC','?'), + $queryBuilder->expr()->eq('s.Version','('. + $subQueryBuilder + ->select('MAX(su.Version)') + ->from('Sources','su') + ->where($subQueryBuilder->expr()->andX( + $queryBuilder->expr()->eq('su.IDC','?'), + $queryBuilder->expr()->eq('su.Lang','?') + ))->getSQL().')' + ) + )) + ->setParameters(array($lang,$id,$id,$lang)); + return $this->getData($queryBuilder); } /** @@ -146,10 +217,15 @@ class DB */ public function loadLangs($IDC) { - $query = "SELECT DISTINCT Lang FROM Sources WHERE IDC='$IDC'"; - $toFetch = dbw_query($this->conn, $query); + $queryBuilder = $this->newQueryBuilder(); + $queryBuilder + ->select('DISTINCT Lang') + ->from('Sources') + ->where($queryBuilder->expr()->eq('IDC','?')) + ->setParameter(0,$IDC); + $query = $this->getData($queryBuilder); $toReturn = array(); - while ($var = dbw_fetch_array($this->conn, $toFetch)) { + foreach ($query as $var) { array_push($toReturn, $var["Lang"]); } return $toReturn; @@ -164,8 +240,17 @@ class DB */ public function getLastVersion($IDC, $lang) { - $query = "SELECT MAX(Version) FROM Sources WHERE IDC='$IDC' AND Lang='$lang'"; - return $this->getQuery($query)[0]; + $queryBuilder = $this->newQueryBuilder(); + $queryBuilder + ->select('MAX(Version)') + ->from('Sources') + ->where($queryBuilder->expr()->andX( + $queryBuilder->expr()->eq('IDC','?'), + $queryBuilder->expr()->eq('Lang','?') + )) + ->setParameter(0,$IDC) + ->setParameter(1,$lang); + return $this->getData($queryBuilder)[0]['MAX(Version)']; } /** @@ -175,8 +260,13 @@ class DB */ public function getLastIDC($name) { - $query = "SELECT MAX(IDC) FROM Codes WHERE name='$name'"; - return $this->getQuery($query)[0]; + $queryBuiler = $this->newQueryBuilder(); + $queryBuiler + ->select('MAX(IDC)') + ->from('Codes') + ->where($queryBuiler->expr()->eq('name','?')) + ->setParameter(0,$name); + return $this->getData($queryBuiler)[0]['MAX(IDC)']; } /** @@ -187,8 +277,13 @@ class DB */ public function loadCode($idc) { - $query = "SELECT * FROM Codes WHERE IDC=" . $idc; - return $this->getQuery($query); + $queryBuilder = $this->newQueryBuilder(); + $queryBuilder + ->select('*') + ->from('Codes') + ->where($queryBuilder->expr()->eq('IDC','?')) + ->setParameter(0,$idc); + return $this->getData($queryBuilder); } /** @@ -199,35 +294,54 @@ class DB */ public function loadFilter($array,$global_search) { - $query = "SELECT IDC,Name,nick,Lang,Description,Code,Version FROM Users NATURAL JOIN Sources as S NATURAL JOIN Codes "; - $where = "WHERE ("; - $count = false; - foreach ($array as $key => $value) { - if ($key != "search" and $key != "o") { - if ($count) { - $where = $where . "OR S.Lang='$value' "; - } else { - $where = $where . "S.Lang='$value' "; - $count = !$count; + $queryBuilder = $this->newQueryBuilder(); + $queryBuilder + ->select('c.IDC','c.Name','u.nick','s.Lang','c.Description','s.Code','s.Version') + ->from('Users','u') + ->join('u','Sources','s', + $queryBuilder->expr()->eq('u.IDU','s.IDU')) + ->join('s','Codes','c', + $queryBuilder->expr()->eq('s.IDC','c.IDC')); + + if($global_search){ + $queryBuilder + ->where('TRUE'); + } + else{ + $count = false; + foreach ($array as $key => $value) { + if ($key != "search" and $key != "o") { + if ($count) { + $queryBuilder + ->orWhere($queryBuilder->expr()->eq('s.Lang',"'$value'")); + } else { + $queryBuilder->where($queryBuilder->expr()->eq('s.Lang',"'$value'")); + $count = !$count; + } } } } - //var_dump($global_search); - if ($global_search){ - $where = "WHERE (TRUE"; - } - if (array_key_exists("o",$array)) $first = $array["o"] * 10; else $first = 0; if(array_key_exists("search",$array)) - $search = $this->search($array["search"]); - else - $search = ""; - $queryLast = ") AND Version = (SELECT MAX(Version) FROM Sources WHERE S.Lang = Lang AND S.IDC = IDC)" . $search . " ORDER BY Modification DESC LIMIT $first, 10"; - //echo $query.$where.$queryLast; - return dbw_query($this->conn, $query . $where . $queryLast); + $queryBuilder = $this->search($queryBuilder,$array["search"]); + $subQuery = $this->newQueryBuilder(); + $queryBuilder->andWhere( + $queryBuilder->expr()->eq('s.Version','('. + $subQuery + ->select('MAX(su.Version)') + ->from('Sources','su') + ->where($subQuery->expr()->andX( + $subQuery->expr()->eq('s.Lang','su.Lang'), + $subQuery->expr()->eq('s.IDC','su.IDC')) + )->getSQL().')' + )) + ->orderBy('Modification','DESC') + ->setFirstResult($first) + ->setMaxResults(10); + return $this->execute($queryBuilder); } /** @@ -236,26 +350,24 @@ class DB * @param $text input by user * @return string sql query fragment */ - public function search($text) + public function search(Doctrine\DBAL\Query\QueryBuilder $queryBuilder, $text) { - $text = dbw_escape_string($this->conn, $text); + $subWhere = ""; if ($text != "") { - $query = ""; $textExplode = explode(" ", $text); - $value = true; + $value = 0; foreach ($textExplode as $find) { if ($find != "") { - if ($value) { - $query = $query . "AND (Description LIKE '%" . $find . "%' OR Name LIKE '%" . $find . "%'"; - $value = false; - } else { - $query = $query . "AND Description LIKE '%" . $find . "%' OR Name LIKE '%" . $find . "%'"; + if ($value != 0) { + $subWhere .= " AND "; } + $subWhere.="c.Description LIKE ".$queryBuilder->getConnection()->quote("%$find%")." OR c.Name LIKE ".$queryBuilder->getConnection()->quote("%$find%"); + $value++; } } - return $query . ")"; + return $queryBuilder->andWhere($subWhere); } else { - return ""; + return $queryBuilder; } } @@ -286,13 +398,24 @@ class DB $version = 0; $version++; $modification = time(); - - - $query = "INSERT INTO Sources (`IDC`,`Lang`,`Version`,`Modification`,`Code`,`UseExtLib`,`UseExtLibVer`,`IDU`) VALUES ('$IDC','$lang',$version,$modification,'$code','$lib','$libV','$IDU')"; - //echo $query . ';'; - dbw_query($this->conn, $query); + $queryBuilder = $this->newQueryBuilder(); + $queryBuilder + ->insert('Sources') + ->values( + array( + 'IDC' => '?', + 'Lang' => '?', + 'Version' => '?', + 'Modification' => '?', + 'Code' => '?', + 'UseExtLib' => '?', + 'UseExtLibVer' => '?', + 'IDU' => '?' + ) + ) + ->setParameters(array($IDC,$lang,$version,$modification,$code,$lib,$libV,$IDU)); + $this->execute($queryBuilder); return $version; - } /** @@ -312,34 +435,58 @@ class DB */ public function addOrModifyCodes($IDC, $name, $description, $input, $output, $lang, $code, $IDU, $extlib = null, $extlibver = null) { - $in = dbw_escape_string($this->conn, $input); - $out = dbw_escape_string($this->conn, $output); - $_code = dbw_escape_string($this->conn, $code); if ($IDC == 0) { - $query = "INSERT INTO Codes (`UserCreator`,`Name`,`Description`,`Input`,`Output`) VALUES ('$IDU','$name','$description','$in','$out') "; - //echo $query.';'; - //die(); - dbw_query($this->conn, $query); + $queryBuilder = $this->newQueryBuilder(); + $queryBuilder + ->insert('Codes') + ->values(array( + 'UserCreator' => '?', + 'Name' => '?', + 'Description' => '?', + 'Input' => '?', + 'Output' => '?' + )) + ->setParameters(array($IDU,$name,$description,$input,$output)); + //$query = "INSERT INTO Codes (`UserCreator`,`Name`,`Description`,`Input`,`Output`) VALUES ('$IDU','$name','$description','$in','$out') "; + $this->execute($queryBuilder); $myID = $this->getLastIDC($name); - $this->addSource($myID, $lang, $_code, $IDU, $extlib, $extlibver); + $this->addSource($myID, $lang, $code, $IDU, $extlib, $extlibver); return $myID; } else { $arr = $this->loadAll($IDC, $lang, $this->getLastVersion($IDC, $lang)); $codewrite = $arr["Code"]; $version = 0; - if ($_code != dbw_escape_string($this->conn,$codewrite)) { - $version = $this->addSource($IDC, $lang, $_code, $IDU, $extlib, $extlibver,$codewrite); + if ($code != $codewrite) { + $version = $this->addSource($IDC, $lang, $code, $IDU, $extlib, $extlibver); } else if ($extlib != $arr["UseExtLib"] || $extlibver != $arr["UseExtLibVer"]) { - $query = "UPDATE Sources SET `UseExtLib`='$extlib', `UseExtLibVer`='$extlibver' WHERE IDC=$IDC AND Lang='$arr[Lang]' AND Version=$arr[Version]"; - //echo $query.';'; - dbw_query($this->conn, $query); + $queryBuilder = $this->newQueryBuilder(); + $queryBuilder + ->update('Sources') + ->set('UseExtLib','?') + ->set('UseExtLibVer','?') + ->where($queryBuilder->expr()->andX( + $queryBuilder->expr()->eq('IDC','?'), + $queryBuilder->expr()->eq('Lang','?'), + $queryBuilder->expr()->eq('Version','?') + )) + ->setParameter(0,$extlib) + ->setParameter(1,$extlibver) + ->setParameter(2,$IDC) + ->setParameter(3,$arr['Lang']) + ->setParameter(4,$arr['Version']); + $this->execute($queryBuilder); } - - $query = "UPDATE Codes SET `Name`='$name', `Description`='$description', `Input`='$in', `Output`='$out' WHERE IDC='$IDC'"; - - //echo $query.';'; - dbw_query($this->conn, $query); + $queryBuilder = $this->newQueryBuilder(); + $queryBuilder + ->update('Codes') + ->set('Name','?') + ->set('Description','?') + ->set('Input','?') + ->set('Output','?') + ->where($queryBuilder->expr()->eq('IDC','?')) + ->setParameters(array($name,$description,$input,$output,$IDC)); + $this->execute($queryBuilder); return $version; } } @@ -372,8 +519,13 @@ class DB */ public function loadProfile($id) { - $query = "SELECT * FROM Users WHERE IDU=" . $id; - return $this->getQuery($query); + $queryBuilder = $this->newQueryBuilder(); + $queryBuilder + ->select('*') + ->from('Users','u') + ->where($queryBuilder->expr()->eq('u.IDU','?')) + ->setParameter(0,$id); + return $this->getData($queryBuilder)[0]; } /** @@ -384,8 +536,13 @@ class DB */ public function loadIDU($field,$mode='email') { - $query = "SELECT IDU FROM Users WHERE $mode='" . $field . "'"; - return $this->getQuery($query)["IDU"]; + $queryBuilder = $this->newQueryBuilder(); + $queryBuilder + ->select('IDU') + ->from('Users') + ->where($queryBuilder->expr()->eq($mode,'?')) + ->setParameter(0,$field); + return $this->getData($queryBuilder)[0]['IDU']; } /** @@ -397,7 +554,13 @@ class DB */ public function checkCookie($IDU, $token) { - $tokenDB = $this->getQuery("SELECT token FROM Users WHERE IDU=" . $IDU)["token"]; + $queryBuilder = $this->newQueryBuilder(); + $queryBuilder + ->select('token') + ->from('Users') + ->where($queryBuilder->expr()->eq('IDU','?')) + ->setParameter(0,$IDU); + $tokenDB = $this->getData($queryBuilder)[0]["token"]; if ($tokenDB == $token) return true; else @@ -413,8 +576,13 @@ class DB */ public function checkPass($email, $pass) { - $query = "SELECT pass FROM Users WHERE email='$email'"; - $passDB = $this->getQuery($query)["pass"]; + $queryBuilder = $this->newQueryBuilder(); + $queryBuilder + ->select("pass") + ->from("Users") + ->where($queryBuilder->expr()->eq('email','?')) + ->setParameter(0,$email); + $passDB = $this->getData($queryBuilder)[0]["pass"]; if ($passDB == hash('sha256', $pass)) return true; else @@ -439,7 +607,16 @@ class DB return 'NICK_IN_USE'; else { $password = hash('sha256', $pass); - dbw_query($this->conn, "INSERT INTO Users (`email`,`pass`,`nick`) VALUES ('$email','$password','$nick')"); + $queryBuilder = $this->newQueryBuilder(); + $queryBuilder + ->insert('Users') + ->values(array( + 'email' => '?', + 'pass' => '?', + 'nick' => '?' + )) + ->setParameters(array($email,$password,$nick)); + $this->execute($queryBuilder); return 'CORRECT'; } } @@ -452,7 +629,14 @@ class DB */ public function setToken($IDU, $token) { - dbw_query($this->conn, "UPDATE Users SET token='$token' WHERE IDU='$IDU'"); + $queryBuilder = $this->newQueryBuilder(); + $queryBuilder + ->update('Users') + ->set('token','?') + ->where($queryBuilder->expr()->eq('IDU','?')) + ->setParameter(0,$token) + ->setParameter(1,$IDU); + $this->execute($queryBuilder); } /** @@ -463,7 +647,13 @@ class DB */ public function updatePass($idu, $pass) { - $query = "UPDATE Users SET pass='" . hash('sha256', $pass) . "' WHERE IDU='$idu'"; - dbw_query($this->conn, $query); + $queryBuilder = $this->newQueryBuilder(); + $queryBuilder + ->update('Users') + ->set('pass','?') + ->where($queryBuilder->expr()->eq('IDU','?')) + ->setParameter(0,hash('sha256',$pass)) + ->setParameter(1,$idu); + $this->execute($queryBuilder); } } \ No newline at end of file diff --git a/Source/src/app.php b/Source/src/app.php index 2c1c011..66c7b37 100644 --- a/Source/src/app.php +++ b/Source/src/app.php @@ -18,6 +18,7 @@ use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; $app['debug'] = true; +$app->register(new Silex\Provider\UrlGeneratorServiceProvider()); $app->register(new Silex\Provider\TwigServiceProvider(), array( 'twig.path' => __DIR__.'/../', )); @@ -34,16 +35,11 @@ foreach($valores as $asset){ $string = file_get_contents(__DIR__."/../data/supported.json"); $app["supported"] = json_decode($string, true); -$app['db']=null; -function connectDB(){ - global $app; - try { - $app['db'] = new DB(); - }catch (Exception $ex){ - $app->abort('503','ERROR en la Base de Datos'); - - } -} +$app->register(new Silex\Provider\DoctrineServiceProvider(), array( + 'db.options' => Config::getDBalConexion() +)); + +$app['data'] = new DB($app['db']); /* Security */ $app['security.role_hierarchy'] = array( @@ -56,9 +52,8 @@ $app->boot(); /* Basics */ $app->get('/', function (Request $request) use($app) { - connectDB(); + $user = getUser($app); - $last = array(); $ajax=false; if($request->getMethod()=="POST"){ if($request->get('globalSearch')!=null){ @@ -69,11 +64,11 @@ $app->get('/', function (Request $request) use($app) { $type=false; $ajax=true; } - $last = $app['db']->loadFilter($data,$type); - $last = lastToArray($app['db'],$last,$app['supported']); + $last = $app['data']->loadFilter($data,$type); + $last = lastToArray($last,$app['supported']); }else{ - $query = $app['db']->loadLast(); - $last = lastToArray($app["db"],$query,$app['supported']); + $query = $app['data']->loadLast(); + $last = lastToArray($query,$app['supported']); } $page = array( 'title' => "CodeShare", "description" => "Sharing your solutions with all", @@ -96,7 +91,7 @@ $app->get('/', function (Request $request) use($app) { $app->get('/doc', function (Request $request) use($app){ - connectDB(); + $user = getUser($app); $page = array( "title" => "Documentation", @@ -107,7 +102,7 @@ $app->get('/doc', function (Request $request) use($app){ })->bind('doc'); $app->get('/about', function (Request $request) use($app){ - connectDB(); + $user = getUser($app); $page = array( "title" => "About CodeShare", @@ -119,7 +114,7 @@ $app->get('/about', function (Request $request) use($app){ /* User */ $app->get('/tos',function(Request $request) use($app){ - connectDB(); + $user = getUser($app); $page = array( "title" => "Terms of service", @@ -131,7 +126,7 @@ $app->get('/tos',function(Request $request) use($app){ })->bind('tos'); $app->get('/login', function(Request $request) use ($app){ - connectDB(); + $user = getUser($app); if($user != null){ return $app->redirect($app["url_generator"]->generate('home')); @@ -147,7 +142,7 @@ $app->get('/login', function(Request $request) use ($app){ })->bind('login')->method('GET|POST'); $app->get('/signup', function(Request $request) use ($app){ - connectDB(); + $user = getUser($app); if($user != null){ return $app->redirect($app["url_generator"]->generate('home')); @@ -177,18 +172,19 @@ function loginRegister($default,$state=''){ } function loginOrRegister($state,$request){ + global $app; switch ($state){ case 3: return loginRegister('login','BAD_CREDENTIAL'); case 1: - if(checklogin($request->get('email'),$request->get('pwd'))==''){ + if(checklogin($request->get('email'),$request->get('pwd'),$app['data'])==''){ return 'redirect'; }else{ return loginRegister("login",'BAD_CREDENTIAL'); } case 2: $state = register($request->get('emailre'),$request->get('emailre-re'), - $request->get('pwdre'), $request->get('pwdre-re'),$request->get('nick')); + $request->get('pwdre'), $request->get('pwdre-re'),$request->get('nick'),$app['data']); if ($state == '') return 'redirect'; else @@ -203,7 +199,7 @@ $app->get('logout',function(Request $request) use ($app){ })->bind('logout'); $app->get('/user', function(Request $request) use ($app){ - connectDB(); + $user = getUser($app); if($user == null) $app->abort('403'); @@ -213,12 +209,11 @@ $app->get('/user', function(Request $request) use ($app){ $passact = $request->get("passact"); $newpass = $request->get("newpass"); $newpassre = $request->get("newpass-re"); - if($app['db']->checkPass($user['email'],$passact) && $newpass == $newpassre){ + if($app['data']->checkPass($user['email'],$passact) && $newpass == $newpassre){ $status=1; - $app['db']->updatePass($user['IDU'],$newpass); + $app['data']->updatePass($user['IDU'],$newpass); }else $status=2; - $app['db']->close(); } $page = array( "page" => "user", @@ -259,7 +254,7 @@ function HTTPError($code){ return array("text"=>$text,"number"=>$code); } -$app->error(function (\Exception $e,$request, $code) use ($app) { +$app->error(function (\Exception $e,$request, $code = 500) use ($app) { $user = null; try{ $user = getUser($app); @@ -283,10 +278,10 @@ $app->error(function (\Exception $e,$request, $code) use ($app) { /* Codes */ $app->get('/code/{lang}-{idc}-{version}', function (Request $request, $lang, $idc, $version) use($app){ - connectDB(); + $user = getUser($app); - $array = $app['db']->loadAll($idc,$lang,$version); + $array = $app['data']->loadAll($idc,$lang,$version); if(!$array){ $app->abort('404'); } @@ -299,18 +294,17 @@ $app->get('/code/{lang}-{idc}-{version}', function (Request $request, $lang, $id "description" => "$array[Name] by $array[nick] in ".$app['supported'][$lang][0], "otherV" => false, "otherI" => false, - "existedLangs" => $app['db']->loadLangs($idc), - "original" => $app['db']->loadOriginalAuthor($idc), + "existedLangs" => $app['data']->loadLangs($idc), + "original" => $app['data']->loadOriginalAuthor($idc), ); $code = allCodeToArray($array,$app['supported']); if($array['Version']!=1) $page['otherV'] = true; - $diff = $app['db']->loadDiff($idc,$lang); - if(dbw_fetch_array($app['db']->conn,$diff)){ + $diff = $app['data']->loadDiff($idc,$lang); + if(count($diff)>=1){ $page['otherI'] = true; } - dbw_query_goto($app['db']->conn,$diff); - $otherImplementation = otherImplementationToArray($app['db'],$diff,$app['supported']); + $otherImplementation = otherImplementationToArray($diff,$app['supported']); return $app['twig']->render($app['fronthtml'].'/code.twig', array( "page" => $page, "code" => $code, @@ -332,8 +326,7 @@ function updateCode($request,$idc,$lang,$version,$user){ if ($code == null or $lang == null) $app->abort(400); if($lang2 != null){ - $app['db']->addSource($idc,$lang2,$code,$user['IDU'],$extlib,$extlibver); - $app['db']->close(); + $app['data']->addSource($idc,$lang2,$code,$user['IDU'],$extlib,$extlibver); return $app->redirect($app['url_generator']->generate('code',array("idc"=>$idc,"version"=>1,"lang"=>$lang2))); }else{ $name = $request->get("name"); @@ -342,8 +335,7 @@ function updateCode($request,$idc,$lang,$version,$user){ $output = htmlentities($request->get("output")); if($name == null || $description == null || $input == null ||$output == null) $app->abort(400); - $version2 = $app['db']->addOrModifyCodes($idc,$name,$description,$input,$output,$lang,$code,$user['IDU'],$extlibver,$extlibver); - $app['db']->close(); + $version2 = $app['data']->addOrModifyCodes($idc,$name,$description,$input,$output,$lang,$code,$user['IDU'],$extlibver,$extlibver); if($version2!=0) return $app->redirect($app['url_generator']->generate('code',array("idc"=>$idc,"version"=>$version2,"lang"=>$lang))); else @@ -352,11 +344,11 @@ function updateCode($request,$idc,$lang,$version,$user){ } $app->get('/code/{lang}-{idc}', function(Request $request, $lang, $idc) use($app){ - connectDB(); + $user = getUser($app); - $array = $app['db']->loadOtherVersion($idc,$lang); - $other = otherVersionToArray($app['db'],$array,$app['supported']); + $array = $app['data']->loadOtherVersion($idc,$lang); + $other = otherVersionToArray($array,$app['supported']); $name = $other[0]['name']; $page = array( @@ -371,7 +363,7 @@ $app->get('/code/{lang}-{idc}', function(Request $request, $lang, $idc) use($app })->bind('codeVer'); $app->get('/add', function(Request $request) use($app){ - connectDB(); + $user = getUser($app); if ($user == null) return $app->redirect($app['url_generator']->generate('login')); @@ -390,7 +382,7 @@ $app->get('/add', function(Request $request) use($app){ $app->abort(400); } else{ - $idc = $app['db']->addOrModifyCodes( + $idc = $app['data']->addOrModifyCodes( 0, $name, $description, diff --git a/Source/src/appOld.php b/Source/src/appOld.php deleted file mode 100644 index 7d1ffc4..0000000 --- a/Source/src/appOld.php +++ /dev/null @@ -1,382 +0,0 @@ - "assets/html/", - "css" => "assets/css/", - "js" => "assets/js/", - "img" => "assets/img/", -); -$string = file_get_contents(__DIR__."/../data/supported.json"); -$supported = json_decode($string, true); -$loader = new Twig_Loader_Filesystem($path['html']); -$twig = new Twig_Environment($loader); -$user = array(); -$db=null; -try { - $db = new DB(); -}catch (Exception $ex){ - sendHTTPError(503); - exit(); -} - -function run(){ - global $user; - if(isset($_SESSION['sessionID'])){ - global $db; - if($db->checkCookie($_SESSION['sessionID'],$_SESSION['token'])){ - $user = $db->loadProfile($_SESSION['sessionID']); - } - } - if (isset($_POST["search"])){ - firstPage(false,true); - } - else if ($_GET) { - if ($_GET["page"]) { - switch ($_GET["page"]) { - case "code": - codeViewer(); - break; - case "index": - firstPage(); - break; - case "register": - case "login": - loginRegister($_GET['page']); - break; - case "logout": - logout(); - header("Location: index.php"); - break; - case "about": - about(); - break; - case "add": - add(); - break; - case "doc": - doc(); - break; - case "tos": - tos(); - break; - case "user": - user(); - break; - case "error": - sendHTTPError($_GET['error']); - /*case "del": - deleteSource();*/ - break; - default: - sendHTTPError(404); - } - } else { - sendHTTPError(404); - } - } else { - //header("CodeShare"); - firstPage(); - } -} - -function sendHTTPError($code){ - global $twig, $path,$user; - $page = array("title" => $code.""); - - header($code.""); - switch($code){ - case 401: - $text = "Unauthorized user"; - break; - case 403: - $text = "Forbidden page"; - break; - case 404: - $text = "Page not found"; - break; - case 503: - $text = "Database unavailable"; - break; - case 500: - $text = "Internal server error"; - break; - default: - $text = "Please, return to home page"; - $code = "Internal error"; - break; - } - - $error = array("number" => $code."","text"=>$text); - echo $twig->render('error.twig',array("page" => $page, "path" => $path, "user" => $user,"error" => $error)); -} - -/** - * Index page - * - * @param bool $filter if filters are enabled (when ajax) - * @param bool $globalSearch if filters are in nav-bar search box - */ -function firstPage($filter=false,$globalSearch=false){ - global $supported,$twig,$path,$user; - global $db; - //var_dump($_POST); - if(!$filter and !$globalSearch) //Common index - if(isset($_GET["p"])) //If page (not 0) - $query = $db->loadLast($_GET["p"]); - else - $query = $db->loadLast(); - else - $query = $db->loadFilter($_POST,$globalSearch); - $last = lastToArray($db,$query,$supported); - $page = array( - "title" => "CodeShare", - "description" => "Sharing your solution with all", - "last" => $last, - "supported" => $supported, - "page" => "home", - "grouped" => groupByCategory($supported) - ); - if(!$filter) - echo $twig->render("firstpage.twig",array("page" => $page, "path" => $path, "user" => $user)); - else - echo $twig->render("firstCodes.twig",array("page" => $page, "path" => $path, "user" => $user)); - $db->close(); -} - -function doc(){ - global $twig,$path,$user; - $page = array( - "title" => "Documentation", - "description" => "All documentation about how to upload code in CodeShare", - "page" => "doc" - ); - echo $twig->render("doc.twig",array("page" => $page, "path" => $path, "user" => $user)); -} - -function add(){ - global $twig,$path,$user,$supported; - if(!isset($user['IDU'])){ - header("Location: ?page=login"); - } - if(isset($_POST['name'])){ - $db=new DB(); - $extlib = isset($_POST['extlib']) ? $_POST['extlib'] : null; - $extlibver = isset($_POST['extlibver']) ? $_POST['extlibver'] : null; - $db->addOrModifyCodes( - 0, - $_POST['name'], - $_POST['description'], - htmlentities($_POST['input']), - htmlentities($_POST['output']), - $_POST['lang'], - htmlentities($_POST['code']), - $user['IDU'], - $extlib, - $extlibver); - //die(); - $idc=$db->getLastIDC(); - header("Location: ?page=code&id=$idc&lang=$_POST[lang]&version=1"); - } - $page=array( - "title" => "Add your own solution", - "description" => "Share now your snippet", - "page" => "add", - ); - echo $twig->render("add.twig",array("page" => $page,"path" => $path, "user" => $user, "supported" => $supported)); - -} - -function codeViewer(){ - global $supported,$twig,$path,$user; - global $db; - - if(isset($_POST['lang'])){ - $extlib = isset($_POST['extlib']) ? $_POST['extlib'] : null; - $extlibver = isset($_POST['extlibver']) ? $_POST['extlibver'] : null; - $db->addSource($_GET['id'],$_POST['lang'],htmlentities($_POST['code']),$user["IDU"],$extlib,$extlibver); - $db->close(); - header("Location: ?page=code&id=$_GET[id]&lang=$_POST[lang]&version=1"); - }else if(isset($_POST['name'])){ - $extlib = isset($_POST['extlib']) ? $_POST['extlib'] : null; - $extlibver = isset($_POST['extlibver']) ? $_POST['extlibver'] : null; - $version=$db->addOrModifyCodes( - $_GET['id'], - $_POST['name'], - $_POST['description'], - htmlentities($_POST['input']), - htmlentities($_POST['output']), - $_GET['lang'], - htmlentities($_POST['code']), - $user['IDU'], - $extlib, - $extlibver); - //die(); - $db->close(); - if($version!=0){ - header("Location: ?page=code&id=$_GET[id]&lang=$_GET[lang]&version=$version"); - }else{ - header('Refresh:0'); - } - }else if(isset($_POST['code'])){ - $version=$db->addSource($_GET['id'],$_GET['lang'],htmlentities($_POST['code']),$user['IDU'],$_POST['extlib'],$_POST['extlibver']); - $db->close(); - header("Location: ?page=code&id=$_GET[id]&lang=$_GET[lang]&version=$version"); - } - - if (!$_GET['lang'] || !$_GET['id']) { - sendHTTPError(404); - }elseif($_GET['version']){ - $array = $db->loadAll($_GET['id'],$_GET['lang'],$_GET['version']); - if($array){ - $page = array( - "title" => "$array[Name] by $array[nick]", - "description" => "$array[Name] by $array[nick] in ".$supported[$_GET['lang']][0], - "otherV" => false, - "otherI" => false, - "existedLangs" => $db->loadLangs($_GET['id']), - "original" => $db->loadOriginalAuthor($_GET['id']), - ); - $code = allCodeToArray($array,$supported); - if($array['Version']!=1){ - $page['otherV'] = true; - } - $diff = $db->loadDiff($_GET["id"],$_GET["lang"]); - if (dbw_fetch_array($db->conn, $diff)) { - $page['otherI'] = true; - } - dbw_query_goto($db->conn,$diff); - $otherImplementation = otherImplementationToArray($db,$diff,$supported); - echo $twig->render("code.twig", array( - "page" => $page, - "code" => $code, - "otherImplementation" => $otherImplementation, - "path" => $path, - "user" => $user, - "supported" => $supported, - )); - }else{ - sendHTTPError(404); - } - }else{ - $query = $db->loadOtherVersion($_GET['id'], $_GET['lang']); - $other = otherVersionToArray($db,$query,$supported); - $name = $other[0]['name']; - $page = array( - "title" => "Other versions of $name", - "description" => "All differents version of $name uploaded in CodeShare", - "last" => $other, - "page" => "" - ); - echo $twig->render("otherVersion.twig",array( - "page" => $page, - "path" => $path, - "user" => $user - )); - } - -} - -function loginRegister($default){ - global $twig,$path; - - $bool=false; - - $page = array( - "title" => ucfirst($default), - "description" => "Start now in CodeShare", - "page" => $default, - "state" => 0, //0=no logged, 1 login fail, 2 register fail, 3 all correct (render home) - ); - - if(array_key_exists('email',$_POST) or array_key_exists('emailre',$_POST)){ - if($_POST["email"]){ - $bool=checklogin($_POST['email'],$_POST['pwd']); - if(!$bool){ - $page['state']=1; - } - }else{ - $bool=register($_POST["emailre"],$_POST["pwdre"],$_POST["name"]); - if(!$bool){ - $page['state']=2; - } - } - } - - if($bool) { - header("Location: index.php"); - }else - echo $twig->render("loginregister.twig", array("page" => $page, "path" => $path )); -} - -function about(){ - global $twig, $path, $user; - $page = array( - "title" => "About CodeShare", - "description" => "Developed by JKA Network's Team", - "page" => "about", - ); - echo $twig->render("about.twig",array("page" => $page, "path" => $path,"user" => $user)); -} - -function tos(){ - global $twig, $path, $user; - $page = array( - "title" => "Terms of service", - "description" => "Terms of services and privacy policies" - ); - echo $twig->render("TOS.twig",array("page" => $page, "path" => $path, "user" => $user)); -} - -function user(){ - global $twig,$path,$user; - - if($user['nick']) { - $status=0; - if(array_key_exists("passact",$_POST)){ - $passact = $_POST["passact"]; - $newpass = $_POST["newpass"]; - global $db; - if($db->checkPass($user['email'],$passact)){ - $status=1; - $db->updatePass($user['IDU'],$newpass); - }else - $status=2; - $db->close(); - } - $page = array( - "title" => "$user[nick]", - "description" => "NOT RELEVANT", - "status" => $status - ); - echo $twig->render("user.twig",array("page"=>$page,"path"=>$path, "user"=>$user)); - }else{ - sendHTTPError(403); - } -} - -/*function deleteSource(){ - global $user; - if(array_key_exists('ROLE',$user)){ - if($user['ROLE']==3){ - $db = new DB(); - $db->deleteSource($_GET['id'],$_GET['lang'],$_GET['version']); - $db->close(); - header('Location: index.php'); - }else - sendHTTPError(403); - }else{ - sendHTTPError(403); - } -}*/ diff --git a/Source/src/dbToTable.php b/Source/src/dbToTable.php index 563265d..d7d92b4 100644 --- a/Source/src/dbToTable.php +++ b/Source/src/dbToTable.php @@ -11,9 +11,10 @@ * Methods to get an array to send to twig */ -function lastToArray($db,&$query,$supported){ +function lastToArray(&$query,$supported){ $last = array(); - while($var = dbw_fetch_array($db->conn,$query)){ + $list = $query->fetchAll(); + foreach($list as $var){ $array = array ( "idc" => $var["IDC"], "lang" => $var["Lang"], @@ -50,9 +51,9 @@ function allCodeToArray(&$query,$supported){ } -function otherImplementationToArray($db,&$query,$supported){ +function otherImplementationToArray(&$query,$supported){ $other = array(); - while($var = dbw_fetch_array($db->conn,$query)){ + foreach($query as $var){ $array = array ( "lang" => $var["Lang"], "version" => $var["Version"], @@ -64,6 +65,6 @@ function otherImplementationToArray($db,&$query,$supported){ return $other; } -function otherVersionToArray($db,$query,$supported){ - return lastToArray($db,$query,$supported); +function otherVersionToArray(&$query,$supported){ + return lastToArray($query,$supported); } \ No newline at end of file diff --git a/Source/src/users.php b/Source/src/users.php index a88bc5b..5825dce 100644 --- a/Source/src/users.php +++ b/Source/src/users.php @@ -24,8 +24,7 @@ function checkInfo($request){ * @param $pass user's input password * @return bool true if email-password combination is correct, false if not */ -function checklogin($email,$pass){ - $db = new DB(); +function checklogin($email,$pass,$db){ $bool = $db->checkPass($email,$pass); if($bool){ @@ -34,10 +33,8 @@ function checklogin($email,$pass){ $db->setToken($idu,$token); $_SESSION['token'] = $token; $_SESSION['sessionID'] =$idu; - $db->close(); return ''; } - $db->close(); return 'BAD'; } @@ -49,16 +46,14 @@ function checklogin($email,$pass){ * @param $nick new user's nickname * @return bool true if email never exists before, else false */ -function register($email,$emailre,$pass,$passre,$nick){ - $db = new DB(); +function register($email,$emailre,$pass,$passre,$nick,$db){ + if($emailre != $email || $pass != $passre) return 'POST_ERROR'; $state = $db->register($email,$pass,$nick); if($state == 'CORRECT') { - $db->close(); - return checklogin($email, $pass); + return checklogin($email, $pass,$db); }else { - $db->close(); return $state; } @@ -74,8 +69,8 @@ function logout(){ function getUser($app){ $user=null; if(isset($_SESSION['sessionID'])){ - if($app['db']->checkCookie($_SESSION['sessionID'],$_SESSION['token'])){ - $user = $app['db']->loadProfile($_SESSION['sessionID']); + if($app['data']->checkCookie($_SESSION['sessionID'],$_SESSION['token'])){ + $user = $app['data']->loadProfile($_SESSION['sessionID']); } } return $user; diff --git a/Source/symfony.lock b/Source/symfony.lock index a6693d7..a6a1c8c 100644 --- a/Source/symfony.lock +++ b/Source/symfony.lock @@ -1,4 +1,16 @@ { + "doctrine/cache": { + "version": "v1.8.0" + }, + "doctrine/dbal": { + "version": "v2.8.0" + }, + "doctrine/event-manager": { + "version": "v1.0.0" + }, + "jkanetwork/dbwrapper": { + "version": "1.5.1" + }, "pimple/pimple": { "version": "v3.2.3" }, @@ -32,6 +44,12 @@ "symfony/http-kernel": { "version": "v4.1.5" }, + "symfony/polyfill-ctype": { + "version": "v1.9.0" + }, + "symfony/polyfill-mbstring": { + "version": "v1.9.0" + }, "symfony/routing": { "version": "4.0", "recipe": { @@ -43,5 +61,8 @@ }, "symfony/twig-bridge": { "version": "v4.1.5" + }, + "twig/twig": { + "version": "v2.5.0" } } diff --git a/composer.json b/composer.json deleted file mode 100644 index c83ad60..0000000 --- a/composer.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "require": { - "silex/silex": "~1.3", - "twig/twig": "~1.23", - "symfony/twig-bridge": "^4.1", - "jkanetwork/dbwrapper": "^1.5" - } -} diff --git a/composer.lock b/composer.lock deleted file mode 100644 index 92ecc8c..0000000 --- a/composer.lock +++ /dev/null @@ -1,990 +0,0 @@ -{ - "_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": "2f1e425874f2052e4cdae6c9b1fe7800", - "packages": [ - { - "name": "ircmaxell/password-compat", - "version": "v1.0.4", - "source": { - "type": "git", - "url": "https://github.com/ircmaxell/password_compat.git", - "reference": "5c5cde8822a69545767f7c7f3058cb15ff84614c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/ircmaxell/password_compat/zipball/5c5cde8822a69545767f7c7f3058cb15ff84614c", - "reference": "5c5cde8822a69545767f7c7f3058cb15ff84614c", - "shasum": "" - }, - "require-dev": { - "phpunit/phpunit": "4.*" - }, - "type": "library", - "autoload": { - "files": [ - "lib/password.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Anthony Ferrara", - "email": "ircmaxell@php.net", - "homepage": "http://blog.ircmaxell.com" - } - ], - "description": "A compatibility library for the proposed simplified password hashing algorithm: https://wiki.php.net/rfc/password_hash", - "homepage": "https://github.com/ircmaxell/password_compat", - "keywords": [ - "hashing", - "password" - ], - "time": "2014-11-20T16:49:30+00:00" - }, - { - "name": "jkanetwork/dbwrapper", - "version": "1.5.1", - "source": { - "type": "git", - "url": "https://gitlab.com/CodeSolutionsProject/DBWrapper.git", - "reference": "1bc58622f2f520286f5de7058fc5b9a97921003b" - }, - "dist": { - "type": "zip", - "url": "https://gitlab.com/api/v4/projects/CodeSolutionsProject%2FDBWrapper/repository/archive.zip?sha=1bc58622f2f520286f5de7058fc5b9a97921003b", - "reference": "1bc58622f2f520286f5de7058fc5b9a97921003b", - "shasum": "" - }, - "require": { - "php": "^7.0" - }, - "type": "library", - "autoload": { - "files": [ - "src/dbwrapper.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "Kevin Puertas Ruiz", - "email": "kevin01010@gmail.com" - } - ], - "description": "MySQL, PgSQL and SQLite wrapper", - "keywords": [ - "mysql", - "pgsql", - "sqlite", - "wrapper" - ], - "time": "2018-05-16T15:47:31+00:00" - }, - { - "name": "pimple/pimple", - "version": "v1.1.1", - "source": { - "type": "git", - "url": "https://github.com/silexphp/Pimple.git", - "reference": "2019c145fe393923f3441b23f29bbdfaa5c58c4d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/silexphp/Pimple/zipball/2019c145fe393923f3441b23f29bbdfaa5c58c4d", - "reference": "2019c145fe393923f3441b23f29bbdfaa5c58c4d", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1.x-dev" - } - }, - "autoload": { - "psr-0": { - "Pimple": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - } - ], - "description": "Pimple is a simple Dependency Injection Container for PHP 5.3", - "homepage": "http://pimple.sensiolabs.org", - "keywords": [ - "container", - "dependency injection" - ], - "time": "2013-11-22T08:30:29+00:00" - }, - { - "name": "psr/log", - "version": "1.0.2", - "source": { - "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", - "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Log\\": "Psr/Log/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", - "keywords": [ - "log", - "psr", - "psr-3" - ], - "time": "2016-10-10T12:19:37+00:00" - }, - { - "name": "silex/silex", - "version": "v1.3.6", - "source": { - "type": "git", - "url": "https://github.com/silexphp/Silex.git", - "reference": "ff8aa6bc2e066e14b07e0c63e9bd9dd1458af136" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/silexphp/Silex/zipball/ff8aa6bc2e066e14b07e0c63e9bd9dd1458af136", - "reference": "ff8aa6bc2e066e14b07e0c63e9bd9dd1458af136", - "shasum": "" - }, - "require": { - "php": ">=5.3.9", - "pimple/pimple": "~1.0", - "symfony/event-dispatcher": "~2.3|3.0.*", - "symfony/http-foundation": "~2.3|3.0.*", - "symfony/http-kernel": "~2.3|3.0.*", - "symfony/routing": "~2.3|3.0.*" - }, - "require-dev": { - "doctrine/dbal": "~2.2", - "monolog/monolog": "^1.4.1", - "swiftmailer/swiftmailer": "~5", - "symfony/browser-kit": "~2.3|3.0.*", - "symfony/config": "~2.3|3.0.*", - "symfony/css-selector": "~2.3|3.0.*", - "symfony/debug": "~2.3|3.0.*", - "symfony/dom-crawler": "~2.3|3.0.*", - "symfony/finder": "~2.3|3.0.*", - "symfony/form": "~2.3|3.0.*", - "symfony/intl": "~2.3|3.0.*", - "symfony/monolog-bridge": "~2.3|3.0.*", - "symfony/options-resolver": "~2.3|3.0.*", - "symfony/phpunit-bridge": "~2.7", - "symfony/process": "~2.3|3.0.*", - "symfony/security": "~2.3|3.0.*", - "symfony/serializer": "~2.3|3.0.*", - "symfony/translation": "~2.3|3.0.*", - "symfony/twig-bridge": "~2.3|3.0.*", - "symfony/validator": "~2.3|3.0.*", - "twig/twig": "~1.28|~2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Silex\\": "src/Silex" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Igor Wiedler", - "email": "igor@wiedler.ch" - } - ], - "description": "The PHP micro-framework based on the Symfony Components", - "homepage": "http://silex.sensiolabs.org", - "keywords": [ - "microframework" - ], - "abandoned": "symfony/flex", - "time": "2017-04-30T16:26:54+00:00" - }, - { - "name": "symfony/debug", - "version": "v2.8.45", - "source": { - "type": "git", - "url": "https://github.com/symfony/debug.git", - "reference": "cbb8a5f212148964efbc414838c527229f9951b7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/cbb8a5f212148964efbc414838c527229f9951b7", - "reference": "cbb8a5f212148964efbc414838c527229f9951b7", - "shasum": "" - }, - "require": { - "php": ">=5.3.9", - "psr/log": "~1.0" - }, - "conflict": { - "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2" - }, - "require-dev": { - "symfony/class-loader": "~2.2|~3.0.0", - "symfony/http-kernel": "~2.3.24|~2.5.9|^2.6.2|~3.0.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.8-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Debug\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Debug Component", - "homepage": "https://symfony.com", - "time": "2018-08-03T09:45:57+00:00" - }, - { - "name": "symfony/event-dispatcher", - "version": "v2.8.45", - "source": { - "type": "git", - "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "84ae343f39947aa084426ed1138bb96bf94d1f12" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/84ae343f39947aa084426ed1138bb96bf94d1f12", - "reference": "84ae343f39947aa084426ed1138bb96bf94d1f12", - "shasum": "" - }, - "require": { - "php": ">=5.3.9" - }, - "require-dev": { - "psr/log": "~1.0", - "symfony/config": "^2.0.5|~3.0.0", - "symfony/dependency-injection": "~2.6|~3.0.0", - "symfony/expression-language": "~2.6|~3.0.0", - "symfony/stopwatch": "~2.3|~3.0.0" - }, - "suggest": { - "symfony/dependency-injection": "", - "symfony/http-kernel": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.8-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\EventDispatcher\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony EventDispatcher Component", - "homepage": "https://symfony.com", - "time": "2018-07-26T09:03:18+00:00" - }, - { - "name": "symfony/http-foundation", - "version": "v2.8.45", - "source": { - "type": "git", - "url": "https://github.com/symfony/http-foundation.git", - "reference": "dc02e684171d0696edb6d4266e9d93af5e3f44d3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/dc02e684171d0696edb6d4266e9d93af5e3f44d3", - "reference": "dc02e684171d0696edb6d4266e9d93af5e3f44d3", - "shasum": "" - }, - "require": { - "php": ">=5.3.9", - "symfony/polyfill-mbstring": "~1.1", - "symfony/polyfill-php54": "~1.0", - "symfony/polyfill-php55": "~1.0" - }, - "require-dev": { - "symfony/expression-language": "~2.4|~3.0.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.8-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\HttpFoundation\\": "" - }, - "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 HttpFoundation Component", - "homepage": "https://symfony.com", - "time": "2018-08-27T15:52:41+00:00" - }, - { - "name": "symfony/http-kernel", - "version": "v2.8.45", - "source": { - "type": "git", - "url": "https://github.com/symfony/http-kernel.git", - "reference": "5424d38f10dc62752e655740224681a478d9f5bb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/5424d38f10dc62752e655740224681a478d9f5bb", - "reference": "5424d38f10dc62752e655740224681a478d9f5bb", - "shasum": "" - }, - "require": { - "php": ">=5.3.9", - "psr/log": "~1.0", - "symfony/debug": "^2.6.2", - "symfony/event-dispatcher": "^2.6.7|~3.0.0", - "symfony/http-foundation": "~2.7.36|~2.8.29|~3.1.6", - "symfony/polyfill-ctype": "~1.8" - }, - "conflict": { - "symfony/config": "<2.7", - "twig/twig": "<1.34|<2.4,>=2" - }, - "require-dev": { - "symfony/browser-kit": "~2.3|~3.0.0", - "symfony/class-loader": "~2.1|~3.0.0", - "symfony/config": "~2.8", - "symfony/console": "~2.3|~3.0.0", - "symfony/css-selector": "^2.0.5|~3.0.0", - "symfony/dependency-injection": "~2.8|~3.0.0", - "symfony/dom-crawler": "^2.0.5|~3.0.0", - "symfony/expression-language": "~2.4|~3.0.0", - "symfony/finder": "^2.0.5|~3.0.0", - "symfony/process": "^2.0.5|~3.0.0", - "symfony/routing": "~2.8|~3.0.0", - "symfony/stopwatch": "~2.3|~3.0.0", - "symfony/templating": "~2.2|~3.0.0", - "symfony/translation": "^2.0.5|~3.0.0", - "symfony/var-dumper": "~2.6|~3.0.0" - }, - "suggest": { - "symfony/browser-kit": "", - "symfony/class-loader": "", - "symfony/config": "", - "symfony/console": "", - "symfony/dependency-injection": "", - "symfony/finder": "", - "symfony/var-dumper": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.8-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\HttpKernel\\": "" - }, - "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 HttpKernel Component", - "homepage": "https://symfony.com", - "time": "2018-08-27T17:33:38+00:00" - }, - { - "name": "symfony/polyfill-ctype", - "version": "v1.9.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "e3d826245268269cd66f8326bd8bc066687b4a19" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/e3d826245268269cd66f8326bd8bc066687b4a19", - "reference": "e3d826245268269cd66f8326bd8bc066687b4a19", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "suggest": { - "ext-ctype": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.9-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - }, - { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" - } - ], - "description": "Symfony polyfill for ctype functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "ctype", - "polyfill", - "portable" - ], - "time": "2018-08-06T14:22:27+00:00" - }, - { - "name": "symfony/polyfill-mbstring", - "version": "v1.9.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "d0cd638f4634c16d8df4508e847f14e9e43168b8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/d0cd638f4634c16d8df4508e847f14e9e43168b8", - "reference": "d0cd638f4634c16d8df4508e847f14e9e43168b8", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "suggest": { - "ext-mbstring": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.9-dev" - } - }, - "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" - ], - "time": "2018-08-06T14:22:27+00:00" - }, - { - "name": "symfony/polyfill-php54", - "version": "v1.9.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php54.git", - "reference": "412977e090c6a8472dc39d50d1beb7d59495a965" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php54/zipball/412977e090c6a8472dc39d50d1beb7d59495a965", - "reference": "412977e090c6a8472dc39d50d1beb7d59495a965", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.9-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php54\\": "" - }, - "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 5.4+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "time": "2018-08-06T14:22:27+00:00" - }, - { - "name": "symfony/polyfill-php55", - "version": "v1.9.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php55.git", - "reference": "578b8528da843de0fc65ec395900fa3181f2ead7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php55/zipball/578b8528da843de0fc65ec395900fa3181f2ead7", - "reference": "578b8528da843de0fc65ec395900fa3181f2ead7", - "shasum": "" - }, - "require": { - "ircmaxell/password-compat": "~1.0", - "php": ">=5.3.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.9-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php55\\": "" - }, - "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 backporting some PHP 5.5+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "time": "2018-08-06T14:22:27+00:00" - }, - { - "name": "symfony/routing", - "version": "v2.8.45", - "source": { - "type": "git", - "url": "https://github.com/symfony/routing.git", - "reference": "e26f791e8669603e9dc0a601e75a50f914eaa144" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/e26f791e8669603e9dc0a601e75a50f914eaa144", - "reference": "e26f791e8669603e9dc0a601e75a50f914eaa144", - "shasum": "" - }, - "require": { - "php": ">=5.3.9" - }, - "conflict": { - "symfony/config": "<2.7" - }, - "require-dev": { - "doctrine/annotations": "~1.0", - "psr/log": "~1.0", - "symfony/config": "~2.7|~3.0.0", - "symfony/expression-language": "~2.4|~3.0.0", - "symfony/http-foundation": "~2.3|~3.0.0", - "symfony/yaml": "^2.0.5|~3.0.0" - }, - "suggest": { - "doctrine/annotations": "For using the annotation loader", - "symfony/config": "For using the all-in-one router or any loader", - "symfony/dependency-injection": "For loading routes from a service", - "symfony/expression-language": "For using expression matching", - "symfony/http-foundation": "For using a Symfony Request object", - "symfony/yaml": "For using the YAML loader" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.8-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Routing\\": "" - }, - "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 Routing Component", - "homepage": "https://symfony.com", - "keywords": [ - "router", - "routing", - "uri", - "url" - ], - "time": "2018-07-26T11:13:39+00:00" - }, - { - "name": "symfony/twig-bridge", - "version": "v4.1.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/twig-bridge.git", - "reference": "550cd9cd3a106a3426bdb2bd9d2914a4937656d1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/550cd9cd3a106a3426bdb2bd9d2914a4937656d1", - "reference": "550cd9cd3a106a3426bdb2bd9d2914a4937656d1", - "shasum": "" - }, - "require": { - "php": "^7.1.3", - "twig/twig": "^1.35|^2.4.4" - }, - "conflict": { - "symfony/console": "<3.4", - "symfony/form": "<4.1.2" - }, - "require-dev": { - "symfony/asset": "~3.4|~4.0", - "symfony/console": "~3.4|~4.0", - "symfony/dependency-injection": "~3.4|~4.0", - "symfony/expression-language": "~3.4|~4.0", - "symfony/finder": "~3.4|~4.0", - "symfony/form": "^4.1.2", - "symfony/http-foundation": "~3.4|~4.0", - "symfony/http-kernel": "~3.4|~4.0", - "symfony/polyfill-intl-icu": "~1.0", - "symfony/routing": "~3.4|~4.0", - "symfony/security": "~3.4|~4.0", - "symfony/security-acl": "~2.8|~3.0", - "symfony/stopwatch": "~3.4|~4.0", - "symfony/templating": "~3.4|~4.0", - "symfony/translation": "~3.4|~4.0", - "symfony/var-dumper": "~3.4|~4.0", - "symfony/web-link": "~3.4|~4.0", - "symfony/workflow": "~3.4|~4.0", - "symfony/yaml": "~3.4|~4.0" - }, - "suggest": { - "symfony/asset": "For using the AssetExtension", - "symfony/expression-language": "For using the ExpressionExtension", - "symfony/finder": "", - "symfony/form": "For using the FormExtension", - "symfony/http-kernel": "For using the HttpKernelExtension", - "symfony/routing": "For using the RoutingExtension", - "symfony/security": "For using the SecurityExtension", - "symfony/stopwatch": "For using the StopwatchExtension", - "symfony/templating": "For using the TwigEngine", - "symfony/translation": "For using the TranslationExtension", - "symfony/var-dumper": "For using the DumpExtension", - "symfony/web-link": "For using the WebLinkExtension", - "symfony/yaml": "For using the YamlExtension" - }, - "type": "symfony-bridge", - "extra": { - "branch-alias": { - "dev-master": "4.1-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Bridge\\Twig\\": "" - }, - "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 Twig Bridge", - "homepage": "https://symfony.com", - "time": "2018-08-14T15:48:59+00:00" - }, - { - "name": "twig/twig", - "version": "v1.35.4", - "source": { - "type": "git", - "url": "https://github.com/twigphp/Twig.git", - "reference": "7e081e98378a1e78c29cc9eba4aefa5d78a05d2a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/7e081e98378a1e78c29cc9eba4aefa5d78a05d2a", - "reference": "7e081e98378a1e78c29cc9eba4aefa5d78a05d2a", - "shasum": "" - }, - "require": { - "php": ">=5.3.3", - "symfony/polyfill-ctype": "^1.8" - }, - "require-dev": { - "psr/container": "^1.0", - "symfony/debug": "^2.7", - "symfony/phpunit-bridge": "^3.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.35-dev" - } - }, - "autoload": { - "psr-0": { - "Twig_": "lib/" - }, - "psr-4": { - "Twig\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" - }, - { - "name": "Armin Ronacher", - "email": "armin.ronacher@active-4.com", - "role": "Project Founder" - }, - { - "name": "Twig Team", - "homepage": "https://twig.symfony.com/contributors", - "role": "Contributors" - } - ], - "description": "Twig, the flexible, fast, and secure template language for PHP", - "homepage": "https://twig.symfony.com", - "keywords": [ - "templating" - ], - "time": "2018-07-13T07:12:17+00:00" - } - ], - "packages-dev": [], - "aliases": [], - "minimum-stability": "stable", - "stability-flags": [], - "prefer-stable": false, - "prefer-lowest": false, - "platform": [], - "platform-dev": [] -}