├── .gitignore ├── LICENSE ├── README.md ├── app ├── .htaccess ├── AppCache.php ├── AppKernel.php ├── Resources │ └── views │ │ ├── base.html.twig │ │ └── default │ │ └── index.html.twig ├── autoload.php └── config │ ├── config.yml │ ├── config_dev.yml │ ├── config_prod.yml │ ├── config_test.yml │ ├── parameters.yml.dist │ ├── routing.yml │ ├── routing_dev.yml │ ├── security.yml │ └── services.yml ├── bin ├── .gitkeep ├── console └── symfony_requirements ├── composer.json ├── composer.lock ├── phpunit.xml.dist ├── src ├── .htaccess ├── AppBundle │ ├── AppBundle.php │ └── Controller │ │ └── DefaultController.php └── OC │ └── PlatformBundle │ ├── Controller │ └── DefaultController.php │ ├── DependencyInjection │ ├── Configuration.php │ └── OCPlatformExtension.php │ ├── OCPlatformBundle.php │ ├── Resources │ ├── config │ │ ├── routing.yml │ │ └── services.yml │ └── views │ │ └── Default │ │ └── index.html.twig │ └── Tests │ └── Controller │ └── DefaultControllerTest.php ├── tests └── AppBundle │ └── Controller │ └── DefaultControllerTest.php ├── var ├── cache │ └── .gitkeep ├── logs │ └── .gitkeep └── sessions │ └── .gitkeep └── web ├── .htaccess ├── app.php ├── app_dev.php ├── apple-touch-icon.png ├── config.php ├── favicon.ico └── robots.txt /.gitignore: -------------------------------------------------------------------------------- 1 | /app/config/parameters.yml 2 | /build/ 3 | /phpunit.xml 4 | /var/* 5 | !/var/cache 6 | /var/cache/* 7 | !var/cache/.gitkeep 8 | !/var/logs 9 | /var/logs/* 10 | !var/logs/.gitkeep 11 | !/var/sessions 12 | /var/sessions/* 13 | !var/sessions/.gitkeep 14 | /vendor/ 15 | /web/bundles/ 16 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Alexandre Bacco 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # OCPlatform 2 | Code source de la plateforme d'annonce construite grâce au [MOOC OpenClassrooms](https://openclassrooms.com/courses/developpez-votre-site-web-avec-le-framework-symfony2). 3 | ### [Ce cours Symfony est également disponible en livre](http://www.eyrolles.com/Informatique/Livre/developpez-votre-site-web-avec-le-framework-symfony2-9791090085428) [et en ebook](https://openclassrooms.com/ebooks/developpez-votre-site-web-avec-le-framework-symfony2) 4 | 5 | # Installation 6 | ## 1. Récupérer le code 7 | Vous avez deux solutions pour le faire : 8 | 9 | 1. Via Git, en clonant ce dépôt ; 10 | 2. Via le téléchargement du code source en une archive ZIP, à cette adresse : https://github.com/winzou/mooc-symfony/archive/master.zip 11 | 12 | *Attention, le code est divisé en plusieurs branches `iteration-XX`. Sur la branche `master` vous n'avez que le tout début du cours, n'hésitez pas à [changer de branche](https://github.com/winzou/mooc-symfony/branches) !* 13 | 14 | ## 2. Définir vos paramètres d'application 15 | Pour ne pas qu'on se partage tous nos mots de passe, le fichier `app/config/parameters.yml` est ignoré dans ce dépôt. A la place, vous avez le fichier `parameters.yml.dist` que vous devez renommer (enlevez le `.dist`) et modifier. 16 | 17 | ## 3. Télécharger les vendors 18 | Avec Composer bien évidemment : 19 | 20 | php composer.phar install 21 | 22 | ## 4. Créez la base de données 23 | Si la base de données que vous avez renseignée dans l'étape 2 n'existe pas déjà, créez-la : 24 | 25 | php bin/console doctrine:database:create 26 | 27 | Puis créez les tables correspondantes au schéma Doctrine : 28 | 29 | php bin/console doctrine:schema:update --dump-sql 30 | php bin/console doctrine:schema:update --force 31 | 32 | Enfin, éventuellement, ajoutez les fixtures : 33 | 34 | php bin/console doctrine:fixtures:load 35 | 36 | ## 5. Publiez les assets 37 | Publiez les assets dans le répertoire web : 38 | 39 | php bin/console assets:install web 40 | 41 | ## Et profitez ! 42 | -------------------------------------------------------------------------------- /app/.htaccess: -------------------------------------------------------------------------------- 1 | 2 | Require all denied 3 | 4 | 5 | Order deny,allow 6 | Deny from all 7 | 8 | -------------------------------------------------------------------------------- /app/AppCache.php: -------------------------------------------------------------------------------- 1 | getEnvironment(), array('dev', 'test'), true)) { 25 | $bundles[] = new Symfony\Bundle\DebugBundle\DebugBundle(); 26 | $bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle(); 27 | $bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle(); 28 | $bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle(); 29 | } 30 | 31 | return $bundles; 32 | } 33 | 34 | public function getRootDir() 35 | { 36 | return __DIR__; 37 | } 38 | 39 | public function getCacheDir() 40 | { 41 | return dirname(__DIR__).'/var/cache/'.$this->environment; 42 | } 43 | 44 | public function getLogDir() 45 | { 46 | return dirname(__DIR__).'/var/logs'; 47 | } 48 | 49 | public function registerContainerConfiguration(LoaderInterface $loader) 50 | { 51 | $loader->load($this->getRootDir().'/config/config_'.$this->getEnvironment().'.yml'); 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /app/Resources/views/base.html.twig: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {% block title %}Welcome!{% endblock %} 6 | {% block stylesheets %}{% endblock %} 7 | 8 | 9 | 10 | {% block body %}{% endblock %} 11 | {% block javascripts %}{% endblock %} 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/Resources/views/default/index.html.twig: -------------------------------------------------------------------------------- 1 | {% extends 'base.html.twig' %} 2 | 3 | {% block body %} 4 |
5 |
6 |
7 |

Welcome to Symfony {{ constant('Symfony\\Component\\HttpKernel\\Kernel::VERSION') }}

8 |
9 | 10 |
11 |

12 | 13 | 14 | Your application is ready to start working on it at: 15 | {{ base_dir }}/ 16 |

17 |
18 | 19 | 44 | 45 |
46 |
47 | {% endblock %} 48 | 49 | {% block stylesheets %} 50 | 76 | {% endblock %} 77 | -------------------------------------------------------------------------------- /app/autoload.php: -------------------------------------------------------------------------------- 1 | getParameterOption(array('--env', '-e'), getenv('SYMFONY_ENV') ?: 'dev'); 21 | $debug = getenv('SYMFONY_DEBUG') !== '0' && !$input->hasParameterOption(array('--no-debug', '')) && $env !== 'prod'; 22 | 23 | if ($debug) { 24 | Debug::enable(); 25 | } 26 | 27 | $kernel = new AppKernel($env, $debug); 28 | $application = new Application($kernel); 29 | $application->run($input); 30 | -------------------------------------------------------------------------------- /bin/symfony_requirements: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env php 2 | getPhpIniConfigPath(); 9 | 10 | echo_title('Symfony2 Requirements Checker'); 11 | 12 | echo '> PHP is using the following php.ini file:'.PHP_EOL; 13 | if ($iniPath) { 14 | echo_style('green', ' '.$iniPath); 15 | } else { 16 | echo_style('warning', ' WARNING: No configuration file (php.ini) used by PHP!'); 17 | } 18 | 19 | echo PHP_EOL.PHP_EOL; 20 | 21 | echo '> Checking Symfony requirements:'.PHP_EOL.' '; 22 | 23 | $messages = array(); 24 | foreach ($symfonyRequirements->getRequirements() as $req) { 25 | /** @var $req Requirement */ 26 | if ($helpText = get_error_message($req, $lineSize)) { 27 | echo_style('red', 'E'); 28 | $messages['error'][] = $helpText; 29 | } else { 30 | echo_style('green', '.'); 31 | } 32 | } 33 | 34 | $checkPassed = empty($messages['error']); 35 | 36 | foreach ($symfonyRequirements->getRecommendations() as $req) { 37 | if ($helpText = get_error_message($req, $lineSize)) { 38 | echo_style('yellow', 'W'); 39 | $messages['warning'][] = $helpText; 40 | } else { 41 | echo_style('green', '.'); 42 | } 43 | } 44 | 45 | if ($checkPassed) { 46 | echo_block('success', 'OK', 'Your system is ready to run Symfony2 projects'); 47 | } else { 48 | echo_block('error', 'ERROR', 'Your system is not ready to run Symfony2 projects'); 49 | 50 | echo_title('Fix the following mandatory requirements', 'red'); 51 | 52 | foreach ($messages['error'] as $helpText) { 53 | echo ' * '.$helpText.PHP_EOL; 54 | } 55 | } 56 | 57 | if (!empty($messages['warning'])) { 58 | echo_title('Optional recommendations to improve your setup', 'yellow'); 59 | 60 | foreach ($messages['warning'] as $helpText) { 61 | echo ' * '.$helpText.PHP_EOL; 62 | } 63 | } 64 | 65 | echo PHP_EOL; 66 | echo_style('title', 'Note'); 67 | echo ' The command console could use a different php.ini file'.PHP_EOL; 68 | echo_style('title', '~~~~'); 69 | echo ' than the one used with your web server. To be on the'.PHP_EOL; 70 | echo ' safe side, please check the requirements from your web'.PHP_EOL; 71 | echo ' server using the '; 72 | echo_style('yellow', 'web/config.php'); 73 | echo ' script.'.PHP_EOL; 74 | echo PHP_EOL; 75 | 76 | exit($checkPassed ? 0 : 1); 77 | 78 | function get_error_message(Requirement $requirement, $lineSize) 79 | { 80 | if ($requirement->isFulfilled()) { 81 | return; 82 | } 83 | 84 | $errorMessage = wordwrap($requirement->getTestMessage(), $lineSize - 3, PHP_EOL.' ').PHP_EOL; 85 | $errorMessage .= ' > '.wordwrap($requirement->getHelpText(), $lineSize - 5, PHP_EOL.' > ').PHP_EOL; 86 | 87 | return $errorMessage; 88 | } 89 | 90 | function echo_title($title, $style = null) 91 | { 92 | $style = $style ?: 'title'; 93 | 94 | echo PHP_EOL; 95 | echo_style($style, $title.PHP_EOL); 96 | echo_style($style, str_repeat('~', strlen($title)).PHP_EOL); 97 | echo PHP_EOL; 98 | } 99 | 100 | function echo_style($style, $message) 101 | { 102 | // ANSI color codes 103 | $styles = array( 104 | 'reset' => "\033[0m", 105 | 'red' => "\033[31m", 106 | 'green' => "\033[32m", 107 | 'yellow' => "\033[33m", 108 | 'error' => "\033[37;41m", 109 | 'success' => "\033[37;42m", 110 | 'title' => "\033[34m", 111 | ); 112 | $supports = has_color_support(); 113 | 114 | echo($supports ? $styles[$style] : '').$message.($supports ? $styles['reset'] : ''); 115 | } 116 | 117 | function echo_block($style, $title, $message) 118 | { 119 | $message = ' '.trim($message).' '; 120 | $width = strlen($message); 121 | 122 | echo PHP_EOL.PHP_EOL; 123 | 124 | echo_style($style, str_repeat(' ', $width).PHP_EOL); 125 | echo_style($style, str_pad(' ['.$title.']', $width, ' ', STR_PAD_RIGHT).PHP_EOL); 126 | echo_style($style, str_pad($message, $width, ' ', STR_PAD_RIGHT).PHP_EOL); 127 | echo_style($style, str_repeat(' ', $width).PHP_EOL); 128 | } 129 | 130 | function has_color_support() 131 | { 132 | static $support; 133 | 134 | if (null === $support) { 135 | if (DIRECTORY_SEPARATOR == '\\') { 136 | $support = false !== getenv('ANSICON') || 'ON' === getenv('ConEmuANSI'); 137 | } else { 138 | $support = function_exists('posix_isatty') && @posix_isatty(STDOUT); 139 | } 140 | } 141 | 142 | return $support; 143 | } 144 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "symfony/framework-standard-edition", 3 | "license": "MIT", 4 | "type": "project", 5 | "description": "The \"Symfony Standard Edition\" distribution", 6 | "autoload": { 7 | "psr-4": { "": "src/" }, 8 | "files": [ "app/AppKernel.php" ] 9 | }, 10 | "autoload-dev": { 11 | "psr-4": { "Tests\\": "tests/" } 12 | }, 13 | "require": { 14 | "php": ">=5.5.9", 15 | "symfony/symfony": "~3.0", 16 | "doctrine/orm": "^2.5", 17 | "doctrine/doctrine-bundle": "^1.6", 18 | "doctrine/doctrine-cache-bundle": "^1.2", 19 | "symfony/swiftmailer-bundle": "^2.3", 20 | "symfony/monolog-bundle": "^2.8", 21 | "sensio/distribution-bundle": "^5.0", 22 | "sensio/framework-extra-bundle": "^3.0.2", 23 | "incenteev/composer-parameter-handler": "~2.0" 24 | }, 25 | "require-dev": { 26 | "sensio/generator-bundle": "~3.0", 27 | "symfony/phpunit-bridge": "~2.7" 28 | }, 29 | "scripts": { 30 | "post-install-cmd": [ 31 | "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters", 32 | "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap", 33 | "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache", 34 | "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets", 35 | "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile", 36 | "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::prepareDeploymentTarget" 37 | ], 38 | "post-update-cmd": [ 39 | "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters", 40 | "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap", 41 | "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache", 42 | "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets", 43 | "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile", 44 | "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::prepareDeploymentTarget" 45 | ] 46 | }, 47 | "extra": { 48 | "symfony-app-dir": "app", 49 | "symfony-bin-dir": "bin", 50 | "symfony-var-dir": "var", 51 | "symfony-web-dir": "web", 52 | "symfony-tests-dir": "tests", 53 | "symfony-assets-install": "relative", 54 | "incenteev-parameters": { 55 | "file": "app/config/parameters.yml" 56 | }, 57 | "branch-alias": { 58 | "dev-master": "3.0-dev" 59 | } 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /composer.lock: -------------------------------------------------------------------------------- 1 | { 2 | "_readme": [ 3 | "This file locks the dependencies of your project to a known state", 4 | "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", 5 | "This file is @generated automatically" 6 | ], 7 | "hash": "ab47e6d15d929b5965241b2b848563d1", 8 | "content-hash": "1143b201b48fb8f7ae9408ce388513ca", 9 | "packages": [ 10 | { 11 | "name": "doctrine/annotations", 12 | "version": "v1.2.7", 13 | "source": { 14 | "type": "git", 15 | "url": "https://github.com/doctrine/annotations.git", 16 | "reference": "f25c8aab83e0c3e976fd7d19875f198ccf2f7535" 17 | }, 18 | "dist": { 19 | "type": "zip", 20 | "url": "https://api.github.com/repos/doctrine/annotations/zipball/f25c8aab83e0c3e976fd7d19875f198ccf2f7535", 21 | "reference": "f25c8aab83e0c3e976fd7d19875f198ccf2f7535", 22 | "shasum": "" 23 | }, 24 | "require": { 25 | "doctrine/lexer": "1.*", 26 | "php": ">=5.3.2" 27 | }, 28 | "require-dev": { 29 | "doctrine/cache": "1.*", 30 | "phpunit/phpunit": "4.*" 31 | }, 32 | "type": "library", 33 | "extra": { 34 | "branch-alias": { 35 | "dev-master": "1.3.x-dev" 36 | } 37 | }, 38 | "autoload": { 39 | "psr-0": { 40 | "Doctrine\\Common\\Annotations\\": "lib/" 41 | } 42 | }, 43 | "notification-url": "https://packagist.org/downloads/", 44 | "license": [ 45 | "MIT" 46 | ], 47 | "authors": [ 48 | { 49 | "name": "Roman Borschel", 50 | "email": "roman@code-factory.org" 51 | }, 52 | { 53 | "name": "Benjamin Eberlei", 54 | "email": "kontakt@beberlei.de" 55 | }, 56 | { 57 | "name": "Guilherme Blanco", 58 | "email": "guilhermeblanco@gmail.com" 59 | }, 60 | { 61 | "name": "Jonathan Wage", 62 | "email": "jonwage@gmail.com" 63 | }, 64 | { 65 | "name": "Johannes Schmitt", 66 | "email": "schmittjoh@gmail.com" 67 | } 68 | ], 69 | "description": "Docblock Annotations Parser", 70 | "homepage": "http://www.doctrine-project.org", 71 | "keywords": [ 72 | "annotations", 73 | "docblock", 74 | "parser" 75 | ], 76 | "time": "2015-08-31 12:32:49" 77 | }, 78 | { 79 | "name": "doctrine/cache", 80 | "version": "v1.6.0", 81 | "source": { 82 | "type": "git", 83 | "url": "https://github.com/doctrine/cache.git", 84 | "reference": "f8af318d14bdb0eff0336795b428b547bd39ccb6" 85 | }, 86 | "dist": { 87 | "type": "zip", 88 | "url": "https://api.github.com/repos/doctrine/cache/zipball/f8af318d14bdb0eff0336795b428b547bd39ccb6", 89 | "reference": "f8af318d14bdb0eff0336795b428b547bd39ccb6", 90 | "shasum": "" 91 | }, 92 | "require": { 93 | "php": "~5.5|~7.0" 94 | }, 95 | "conflict": { 96 | "doctrine/common": ">2.2,<2.4" 97 | }, 98 | "require-dev": { 99 | "phpunit/phpunit": "~4.8|~5.0", 100 | "predis/predis": "~1.0", 101 | "satooshi/php-coveralls": "~0.6" 102 | }, 103 | "type": "library", 104 | "extra": { 105 | "branch-alias": { 106 | "dev-master": "1.6.x-dev" 107 | } 108 | }, 109 | "autoload": { 110 | "psr-4": { 111 | "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache" 112 | } 113 | }, 114 | "notification-url": "https://packagist.org/downloads/", 115 | "license": [ 116 | "MIT" 117 | ], 118 | "authors": [ 119 | { 120 | "name": "Roman Borschel", 121 | "email": "roman@code-factory.org" 122 | }, 123 | { 124 | "name": "Benjamin Eberlei", 125 | "email": "kontakt@beberlei.de" 126 | }, 127 | { 128 | "name": "Guilherme Blanco", 129 | "email": "guilhermeblanco@gmail.com" 130 | }, 131 | { 132 | "name": "Jonathan Wage", 133 | "email": "jonwage@gmail.com" 134 | }, 135 | { 136 | "name": "Johannes Schmitt", 137 | "email": "schmittjoh@gmail.com" 138 | } 139 | ], 140 | "description": "Caching library offering an object-oriented API for many cache backends", 141 | "homepage": "http://www.doctrine-project.org", 142 | "keywords": [ 143 | "cache", 144 | "caching" 145 | ], 146 | "time": "2015-12-31 16:37:02" 147 | }, 148 | { 149 | "name": "doctrine/collections", 150 | "version": "v1.3.0", 151 | "source": { 152 | "type": "git", 153 | "url": "https://github.com/doctrine/collections.git", 154 | "reference": "6c1e4eef75f310ea1b3e30945e9f06e652128b8a" 155 | }, 156 | "dist": { 157 | "type": "zip", 158 | "url": "https://api.github.com/repos/doctrine/collections/zipball/6c1e4eef75f310ea1b3e30945e9f06e652128b8a", 159 | "reference": "6c1e4eef75f310ea1b3e30945e9f06e652128b8a", 160 | "shasum": "" 161 | }, 162 | "require": { 163 | "php": ">=5.3.2" 164 | }, 165 | "require-dev": { 166 | "phpunit/phpunit": "~4.0" 167 | }, 168 | "type": "library", 169 | "extra": { 170 | "branch-alias": { 171 | "dev-master": "1.2.x-dev" 172 | } 173 | }, 174 | "autoload": { 175 | "psr-0": { 176 | "Doctrine\\Common\\Collections\\": "lib/" 177 | } 178 | }, 179 | "notification-url": "https://packagist.org/downloads/", 180 | "license": [ 181 | "MIT" 182 | ], 183 | "authors": [ 184 | { 185 | "name": "Roman Borschel", 186 | "email": "roman@code-factory.org" 187 | }, 188 | { 189 | "name": "Benjamin Eberlei", 190 | "email": "kontakt@beberlei.de" 191 | }, 192 | { 193 | "name": "Guilherme Blanco", 194 | "email": "guilhermeblanco@gmail.com" 195 | }, 196 | { 197 | "name": "Jonathan Wage", 198 | "email": "jonwage@gmail.com" 199 | }, 200 | { 201 | "name": "Johannes Schmitt", 202 | "email": "schmittjoh@gmail.com" 203 | } 204 | ], 205 | "description": "Collections Abstraction library", 206 | "homepage": "http://www.doctrine-project.org", 207 | "keywords": [ 208 | "array", 209 | "collections", 210 | "iterator" 211 | ], 212 | "time": "2015-04-14 22:21:58" 213 | }, 214 | { 215 | "name": "doctrine/common", 216 | "version": "v2.6.1", 217 | "source": { 218 | "type": "git", 219 | "url": "https://github.com/doctrine/common.git", 220 | "reference": "a579557bc689580c19fee4e27487a67fe60defc0" 221 | }, 222 | "dist": { 223 | "type": "zip", 224 | "url": "https://api.github.com/repos/doctrine/common/zipball/a579557bc689580c19fee4e27487a67fe60defc0", 225 | "reference": "a579557bc689580c19fee4e27487a67fe60defc0", 226 | "shasum": "" 227 | }, 228 | "require": { 229 | "doctrine/annotations": "1.*", 230 | "doctrine/cache": "1.*", 231 | "doctrine/collections": "1.*", 232 | "doctrine/inflector": "1.*", 233 | "doctrine/lexer": "1.*", 234 | "php": "~5.5|~7.0" 235 | }, 236 | "require-dev": { 237 | "phpunit/phpunit": "~4.8|~5.0" 238 | }, 239 | "type": "library", 240 | "extra": { 241 | "branch-alias": { 242 | "dev-master": "2.7.x-dev" 243 | } 244 | }, 245 | "autoload": { 246 | "psr-4": { 247 | "Doctrine\\Common\\": "lib/Doctrine/Common" 248 | } 249 | }, 250 | "notification-url": "https://packagist.org/downloads/", 251 | "license": [ 252 | "MIT" 253 | ], 254 | "authors": [ 255 | { 256 | "name": "Roman Borschel", 257 | "email": "roman@code-factory.org" 258 | }, 259 | { 260 | "name": "Benjamin Eberlei", 261 | "email": "kontakt@beberlei.de" 262 | }, 263 | { 264 | "name": "Guilherme Blanco", 265 | "email": "guilhermeblanco@gmail.com" 266 | }, 267 | { 268 | "name": "Jonathan Wage", 269 | "email": "jonwage@gmail.com" 270 | }, 271 | { 272 | "name": "Johannes Schmitt", 273 | "email": "schmittjoh@gmail.com" 274 | } 275 | ], 276 | "description": "Common Library for Doctrine projects", 277 | "homepage": "http://www.doctrine-project.org", 278 | "keywords": [ 279 | "annotations", 280 | "collections", 281 | "eventmanager", 282 | "persistence", 283 | "spl" 284 | ], 285 | "time": "2015-12-25 13:18:31" 286 | }, 287 | { 288 | "name": "doctrine/dbal", 289 | "version": "v2.5.4", 290 | "source": { 291 | "type": "git", 292 | "url": "https://github.com/doctrine/dbal.git", 293 | "reference": "abbdfd1cff43a7b99d027af3be709bc8fc7d4769" 294 | }, 295 | "dist": { 296 | "type": "zip", 297 | "url": "https://api.github.com/repos/doctrine/dbal/zipball/abbdfd1cff43a7b99d027af3be709bc8fc7d4769", 298 | "reference": "abbdfd1cff43a7b99d027af3be709bc8fc7d4769", 299 | "shasum": "" 300 | }, 301 | "require": { 302 | "doctrine/common": ">=2.4,<2.7-dev", 303 | "php": ">=5.3.2" 304 | }, 305 | "require-dev": { 306 | "phpunit/phpunit": "4.*", 307 | "symfony/console": "2.*" 308 | }, 309 | "suggest": { 310 | "symfony/console": "For helpful console commands such as SQL execution and import of files." 311 | }, 312 | "bin": [ 313 | "bin/doctrine-dbal" 314 | ], 315 | "type": "library", 316 | "extra": { 317 | "branch-alias": { 318 | "dev-master": "2.5.x-dev" 319 | } 320 | }, 321 | "autoload": { 322 | "psr-0": { 323 | "Doctrine\\DBAL\\": "lib/" 324 | } 325 | }, 326 | "notification-url": "https://packagist.org/downloads/", 327 | "license": [ 328 | "MIT" 329 | ], 330 | "authors": [ 331 | { 332 | "name": "Roman Borschel", 333 | "email": "roman@code-factory.org" 334 | }, 335 | { 336 | "name": "Benjamin Eberlei", 337 | "email": "kontakt@beberlei.de" 338 | }, 339 | { 340 | "name": "Guilherme Blanco", 341 | "email": "guilhermeblanco@gmail.com" 342 | }, 343 | { 344 | "name": "Jonathan Wage", 345 | "email": "jonwage@gmail.com" 346 | } 347 | ], 348 | "description": "Database Abstraction Layer", 349 | "homepage": "http://www.doctrine-project.org", 350 | "keywords": [ 351 | "database", 352 | "dbal", 353 | "persistence", 354 | "queryobject" 355 | ], 356 | "time": "2016-01-05 22:11:12" 357 | }, 358 | { 359 | "name": "doctrine/doctrine-bundle", 360 | "version": "1.6.1", 361 | "source": { 362 | "type": "git", 363 | "url": "https://github.com/doctrine/DoctrineBundle.git", 364 | "reference": "c4ffef2b2296e9d0179eb0b5248e5ae25c9bba3b" 365 | }, 366 | "dist": { 367 | "type": "zip", 368 | "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/c4ffef2b2296e9d0179eb0b5248e5ae25c9bba3b", 369 | "reference": "c4ffef2b2296e9d0179eb0b5248e5ae25c9bba3b", 370 | "shasum": "" 371 | }, 372 | "require": { 373 | "doctrine/dbal": "~2.3", 374 | "doctrine/doctrine-cache-bundle": "~1.0", 375 | "jdorn/sql-formatter": "~1.1", 376 | "php": ">=5.3.2", 377 | "symfony/console": "~2.3|~3.0", 378 | "symfony/doctrine-bridge": "~2.2|~3.0", 379 | "symfony/framework-bundle": "~2.3|~3.0" 380 | }, 381 | "require-dev": { 382 | "doctrine/orm": "~2.3", 383 | "phpunit/phpunit": "~4", 384 | "satooshi/php-coveralls": "~0.6.1", 385 | "symfony/validator": "~2.2|~3.0", 386 | "symfony/yaml": "~2.2|~3.0", 387 | "twig/twig": "~1.10" 388 | }, 389 | "suggest": { 390 | "doctrine/orm": "The Doctrine ORM integration is optional in the bundle.", 391 | "symfony/web-profiler-bundle": "to use the data collector" 392 | }, 393 | "type": "symfony-bundle", 394 | "extra": { 395 | "branch-alias": { 396 | "dev-master": "1.6.x-dev" 397 | } 398 | }, 399 | "autoload": { 400 | "psr-4": { 401 | "Doctrine\\Bundle\\DoctrineBundle\\": "" 402 | } 403 | }, 404 | "notification-url": "https://packagist.org/downloads/", 405 | "license": [ 406 | "MIT" 407 | ], 408 | "authors": [ 409 | { 410 | "name": "Symfony Community", 411 | "homepage": "http://symfony.com/contributors" 412 | }, 413 | { 414 | "name": "Benjamin Eberlei", 415 | "email": "kontakt@beberlei.de" 416 | }, 417 | { 418 | "name": "Doctrine Project", 419 | "homepage": "http://www.doctrine-project.org/" 420 | }, 421 | { 422 | "name": "Fabien Potencier", 423 | "email": "fabien@symfony.com" 424 | } 425 | ], 426 | "description": "Symfony DoctrineBundle", 427 | "homepage": "http://www.doctrine-project.org", 428 | "keywords": [ 429 | "database", 430 | "dbal", 431 | "orm", 432 | "persistence" 433 | ], 434 | "time": "2015-11-16 17:11:46" 435 | }, 436 | { 437 | "name": "doctrine/doctrine-cache-bundle", 438 | "version": "1.2.2", 439 | "source": { 440 | "type": "git", 441 | "url": "https://github.com/doctrine/DoctrineCacheBundle.git", 442 | "reference": "030ff41ef1db66370b36467086bfb817a661fe6a" 443 | }, 444 | "dist": { 445 | "type": "zip", 446 | "url": "https://api.github.com/repos/doctrine/DoctrineCacheBundle/zipball/030ff41ef1db66370b36467086bfb817a661fe6a", 447 | "reference": "030ff41ef1db66370b36467086bfb817a661fe6a", 448 | "shasum": "" 449 | }, 450 | "require": { 451 | "doctrine/cache": "^1.4.2", 452 | "doctrine/inflector": "~1.0", 453 | "php": ">=5.3.2", 454 | "symfony/doctrine-bridge": "~2.2|~3.0" 455 | }, 456 | "require-dev": { 457 | "instaclick/coding-standard": "~1.1", 458 | "instaclick/object-calisthenics-sniffs": "dev-master", 459 | "instaclick/symfony2-coding-standard": "dev-remaster", 460 | "phpunit/phpunit": "~4", 461 | "satooshi/php-coveralls": "~0.6.1", 462 | "squizlabs/php_codesniffer": "~1.5", 463 | "symfony/console": "~2.2|~3.0", 464 | "symfony/finder": "~2.2|~3.0", 465 | "symfony/framework-bundle": "~2.2|~3.0", 466 | "symfony/phpunit-bridge": "~2.7|~3.0", 467 | "symfony/security-acl": "~2.3|~3.0", 468 | "symfony/validator": "~2.2|~3.0", 469 | "symfony/yaml": "~2.2|~3.0" 470 | }, 471 | "suggest": { 472 | "symfony/security-acl": "For using this bundle to cache ACLs" 473 | }, 474 | "type": "symfony-bundle", 475 | "extra": { 476 | "branch-alias": { 477 | "dev-master": "1.2.x-dev" 478 | } 479 | }, 480 | "autoload": { 481 | "psr-4": { 482 | "Doctrine\\Bundle\\DoctrineCacheBundle\\": "" 483 | } 484 | }, 485 | "notification-url": "https://packagist.org/downloads/", 486 | "license": [ 487 | "MIT" 488 | ], 489 | "authors": [ 490 | { 491 | "name": "Symfony Community", 492 | "homepage": "http://symfony.com/contributors" 493 | }, 494 | { 495 | "name": "Benjamin Eberlei", 496 | "email": "kontakt@beberlei.de" 497 | }, 498 | { 499 | "name": "Fabio B. Silva", 500 | "email": "fabio.bat.silva@gmail.com" 501 | }, 502 | { 503 | "name": "Guilherme Blanco", 504 | "email": "guilhermeblanco@hotmail.com" 505 | }, 506 | { 507 | "name": "Doctrine Project", 508 | "homepage": "http://www.doctrine-project.org/" 509 | }, 510 | { 511 | "name": "Fabien Potencier", 512 | "email": "fabien@symfony.com" 513 | } 514 | ], 515 | "description": "Symfony Bundle for Doctrine Cache", 516 | "homepage": "http://www.doctrine-project.org", 517 | "keywords": [ 518 | "cache", 519 | "caching" 520 | ], 521 | "time": "2015-11-27 04:59:07" 522 | }, 523 | { 524 | "name": "doctrine/inflector", 525 | "version": "v1.1.0", 526 | "source": { 527 | "type": "git", 528 | "url": "https://github.com/doctrine/inflector.git", 529 | "reference": "90b2128806bfde671b6952ab8bea493942c1fdae" 530 | }, 531 | "dist": { 532 | "type": "zip", 533 | "url": "https://api.github.com/repos/doctrine/inflector/zipball/90b2128806bfde671b6952ab8bea493942c1fdae", 534 | "reference": "90b2128806bfde671b6952ab8bea493942c1fdae", 535 | "shasum": "" 536 | }, 537 | "require": { 538 | "php": ">=5.3.2" 539 | }, 540 | "require-dev": { 541 | "phpunit/phpunit": "4.*" 542 | }, 543 | "type": "library", 544 | "extra": { 545 | "branch-alias": { 546 | "dev-master": "1.1.x-dev" 547 | } 548 | }, 549 | "autoload": { 550 | "psr-0": { 551 | "Doctrine\\Common\\Inflector\\": "lib/" 552 | } 553 | }, 554 | "notification-url": "https://packagist.org/downloads/", 555 | "license": [ 556 | "MIT" 557 | ], 558 | "authors": [ 559 | { 560 | "name": "Roman Borschel", 561 | "email": "roman@code-factory.org" 562 | }, 563 | { 564 | "name": "Benjamin Eberlei", 565 | "email": "kontakt@beberlei.de" 566 | }, 567 | { 568 | "name": "Guilherme Blanco", 569 | "email": "guilhermeblanco@gmail.com" 570 | }, 571 | { 572 | "name": "Jonathan Wage", 573 | "email": "jonwage@gmail.com" 574 | }, 575 | { 576 | "name": "Johannes Schmitt", 577 | "email": "schmittjoh@gmail.com" 578 | } 579 | ], 580 | "description": "Common String Manipulations with regard to casing and singular/plural rules.", 581 | "homepage": "http://www.doctrine-project.org", 582 | "keywords": [ 583 | "inflection", 584 | "pluralize", 585 | "singularize", 586 | "string" 587 | ], 588 | "time": "2015-11-06 14:35:42" 589 | }, 590 | { 591 | "name": "doctrine/instantiator", 592 | "version": "1.0.5", 593 | "source": { 594 | "type": "git", 595 | "url": "https://github.com/doctrine/instantiator.git", 596 | "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d" 597 | }, 598 | "dist": { 599 | "type": "zip", 600 | "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d", 601 | "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d", 602 | "shasum": "" 603 | }, 604 | "require": { 605 | "php": ">=5.3,<8.0-DEV" 606 | }, 607 | "require-dev": { 608 | "athletic/athletic": "~0.1.8", 609 | "ext-pdo": "*", 610 | "ext-phar": "*", 611 | "phpunit/phpunit": "~4.0", 612 | "squizlabs/php_codesniffer": "~2.0" 613 | }, 614 | "type": "library", 615 | "extra": { 616 | "branch-alias": { 617 | "dev-master": "1.0.x-dev" 618 | } 619 | }, 620 | "autoload": { 621 | "psr-4": { 622 | "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" 623 | } 624 | }, 625 | "notification-url": "https://packagist.org/downloads/", 626 | "license": [ 627 | "MIT" 628 | ], 629 | "authors": [ 630 | { 631 | "name": "Marco Pivetta", 632 | "email": "ocramius@gmail.com", 633 | "homepage": "http://ocramius.github.com/" 634 | } 635 | ], 636 | "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", 637 | "homepage": "https://github.com/doctrine/instantiator", 638 | "keywords": [ 639 | "constructor", 640 | "instantiate" 641 | ], 642 | "time": "2015-06-14 21:17:01" 643 | }, 644 | { 645 | "name": "doctrine/lexer", 646 | "version": "v1.0.1", 647 | "source": { 648 | "type": "git", 649 | "url": "https://github.com/doctrine/lexer.git", 650 | "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c" 651 | }, 652 | "dist": { 653 | "type": "zip", 654 | "url": "https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c", 655 | "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c", 656 | "shasum": "" 657 | }, 658 | "require": { 659 | "php": ">=5.3.2" 660 | }, 661 | "type": "library", 662 | "extra": { 663 | "branch-alias": { 664 | "dev-master": "1.0.x-dev" 665 | } 666 | }, 667 | "autoload": { 668 | "psr-0": { 669 | "Doctrine\\Common\\Lexer\\": "lib/" 670 | } 671 | }, 672 | "notification-url": "https://packagist.org/downloads/", 673 | "license": [ 674 | "MIT" 675 | ], 676 | "authors": [ 677 | { 678 | "name": "Roman Borschel", 679 | "email": "roman@code-factory.org" 680 | }, 681 | { 682 | "name": "Guilherme Blanco", 683 | "email": "guilhermeblanco@gmail.com" 684 | }, 685 | { 686 | "name": "Johannes Schmitt", 687 | "email": "schmittjoh@gmail.com" 688 | } 689 | ], 690 | "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.", 691 | "homepage": "http://www.doctrine-project.org", 692 | "keywords": [ 693 | "lexer", 694 | "parser" 695 | ], 696 | "time": "2014-09-09 13:34:57" 697 | }, 698 | { 699 | "name": "doctrine/orm", 700 | "version": "v2.5.4", 701 | "source": { 702 | "type": "git", 703 | "url": "https://github.com/doctrine/doctrine2.git", 704 | "reference": "bc4ddbfb0114cb33438cc811c9a740d8aa304aab" 705 | }, 706 | "dist": { 707 | "type": "zip", 708 | "url": "https://api.github.com/repos/doctrine/doctrine2/zipball/bc4ddbfb0114cb33438cc811c9a740d8aa304aab", 709 | "reference": "bc4ddbfb0114cb33438cc811c9a740d8aa304aab", 710 | "shasum": "" 711 | }, 712 | "require": { 713 | "doctrine/cache": "~1.4", 714 | "doctrine/collections": "~1.2", 715 | "doctrine/common": ">=2.5-dev,<2.7-dev", 716 | "doctrine/dbal": ">=2.5-dev,<2.6-dev", 717 | "doctrine/instantiator": "~1.0.1", 718 | "ext-pdo": "*", 719 | "php": ">=5.4", 720 | "symfony/console": "~2.5|~3.0" 721 | }, 722 | "require-dev": { 723 | "phpunit/phpunit": "~4.0", 724 | "symfony/yaml": "~2.3|~3.0" 725 | }, 726 | "suggest": { 727 | "symfony/yaml": "If you want to use YAML Metadata Mapping Driver" 728 | }, 729 | "bin": [ 730 | "bin/doctrine", 731 | "bin/doctrine.php" 732 | ], 733 | "type": "library", 734 | "extra": { 735 | "branch-alias": { 736 | "dev-master": "2.6.x-dev" 737 | } 738 | }, 739 | "autoload": { 740 | "psr-0": { 741 | "Doctrine\\ORM\\": "lib/" 742 | } 743 | }, 744 | "notification-url": "https://packagist.org/downloads/", 745 | "license": [ 746 | "MIT" 747 | ], 748 | "authors": [ 749 | { 750 | "name": "Roman Borschel", 751 | "email": "roman@code-factory.org" 752 | }, 753 | { 754 | "name": "Benjamin Eberlei", 755 | "email": "kontakt@beberlei.de" 756 | }, 757 | { 758 | "name": "Guilherme Blanco", 759 | "email": "guilhermeblanco@gmail.com" 760 | }, 761 | { 762 | "name": "Jonathan Wage", 763 | "email": "jonwage@gmail.com" 764 | } 765 | ], 766 | "description": "Object-Relational-Mapper for PHP", 767 | "homepage": "http://www.doctrine-project.org", 768 | "keywords": [ 769 | "database", 770 | "orm" 771 | ], 772 | "time": "2016-01-05 21:34:58" 773 | }, 774 | { 775 | "name": "incenteev/composer-parameter-handler", 776 | "version": "v2.1.2", 777 | "source": { 778 | "type": "git", 779 | "url": "https://github.com/Incenteev/ParameterHandler.git", 780 | "reference": "d7ce7f06136109e81d1cb9d57066c4d4a99cf1cc" 781 | }, 782 | "dist": { 783 | "type": "zip", 784 | "url": "https://api.github.com/repos/Incenteev/ParameterHandler/zipball/d7ce7f06136109e81d1cb9d57066c4d4a99cf1cc", 785 | "reference": "d7ce7f06136109e81d1cb9d57066c4d4a99cf1cc", 786 | "shasum": "" 787 | }, 788 | "require": { 789 | "php": ">=5.3.3", 790 | "symfony/yaml": "~2.3|~3.0" 791 | }, 792 | "require-dev": { 793 | "composer/composer": "1.0.*@dev", 794 | "phpspec/prophecy-phpunit": "~1.0", 795 | "symfony/filesystem": "~2.2" 796 | }, 797 | "type": "library", 798 | "extra": { 799 | "branch-alias": { 800 | "dev-master": "2.1.x-dev" 801 | } 802 | }, 803 | "autoload": { 804 | "psr-4": { 805 | "Incenteev\\ParameterHandler\\": "" 806 | } 807 | }, 808 | "notification-url": "https://packagist.org/downloads/", 809 | "license": [ 810 | "MIT" 811 | ], 812 | "authors": [ 813 | { 814 | "name": "Christophe Coevoet", 815 | "email": "stof@notk.org" 816 | } 817 | ], 818 | "description": "Composer script handling your ignored parameter file", 819 | "homepage": "https://github.com/Incenteev/ParameterHandler", 820 | "keywords": [ 821 | "parameters management" 822 | ], 823 | "time": "2015-11-10 17:04:01" 824 | }, 825 | { 826 | "name": "jdorn/sql-formatter", 827 | "version": "v1.2.17", 828 | "source": { 829 | "type": "git", 830 | "url": "https://github.com/jdorn/sql-formatter.git", 831 | "reference": "64990d96e0959dff8e059dfcdc1af130728d92bc" 832 | }, 833 | "dist": { 834 | "type": "zip", 835 | "url": "https://api.github.com/repos/jdorn/sql-formatter/zipball/64990d96e0959dff8e059dfcdc1af130728d92bc", 836 | "reference": "64990d96e0959dff8e059dfcdc1af130728d92bc", 837 | "shasum": "" 838 | }, 839 | "require": { 840 | "php": ">=5.2.4" 841 | }, 842 | "require-dev": { 843 | "phpunit/phpunit": "3.7.*" 844 | }, 845 | "type": "library", 846 | "extra": { 847 | "branch-alias": { 848 | "dev-master": "1.3.x-dev" 849 | } 850 | }, 851 | "autoload": { 852 | "classmap": [ 853 | "lib" 854 | ] 855 | }, 856 | "notification-url": "https://packagist.org/downloads/", 857 | "license": [ 858 | "MIT" 859 | ], 860 | "authors": [ 861 | { 862 | "name": "Jeremy Dorn", 863 | "email": "jeremy@jeremydorn.com", 864 | "homepage": "http://jeremydorn.com/" 865 | } 866 | ], 867 | "description": "a PHP SQL highlighting library", 868 | "homepage": "https://github.com/jdorn/sql-formatter/", 869 | "keywords": [ 870 | "highlight", 871 | "sql" 872 | ], 873 | "time": "2014-01-12 16:20:24" 874 | }, 875 | { 876 | "name": "monolog/monolog", 877 | "version": "1.17.2", 878 | "source": { 879 | "type": "git", 880 | "url": "https://github.com/Seldaek/monolog.git", 881 | "reference": "bee7f0dc9c3e0b69a6039697533dca1e845c8c24" 882 | }, 883 | "dist": { 884 | "type": "zip", 885 | "url": "https://api.github.com/repos/Seldaek/monolog/zipball/bee7f0dc9c3e0b69a6039697533dca1e845c8c24", 886 | "reference": "bee7f0dc9c3e0b69a6039697533dca1e845c8c24", 887 | "shasum": "" 888 | }, 889 | "require": { 890 | "php": ">=5.3.0", 891 | "psr/log": "~1.0" 892 | }, 893 | "provide": { 894 | "psr/log-implementation": "1.0.0" 895 | }, 896 | "require-dev": { 897 | "aws/aws-sdk-php": "^2.4.9", 898 | "doctrine/couchdb": "~1.0@dev", 899 | "graylog2/gelf-php": "~1.0", 900 | "jakub-onderka/php-parallel-lint": "0.9", 901 | "php-console/php-console": "^3.1.3", 902 | "phpunit/phpunit": "~4.5", 903 | "phpunit/phpunit-mock-objects": "2.3.0", 904 | "raven/raven": "^0.13", 905 | "ruflin/elastica": ">=0.90 <3.0", 906 | "swiftmailer/swiftmailer": "~5.3", 907 | "videlalvaro/php-amqplib": "~2.4" 908 | }, 909 | "suggest": { 910 | "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", 911 | "doctrine/couchdb": "Allow sending log messages to a CouchDB server", 912 | "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", 913 | "ext-mongo": "Allow sending log messages to a MongoDB server", 914 | "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", 915 | "php-console/php-console": "Allow sending log messages to Google Chrome", 916 | "raven/raven": "Allow sending log messages to a Sentry server", 917 | "rollbar/rollbar": "Allow sending log messages to Rollbar", 918 | "ruflin/elastica": "Allow sending log messages to an Elastic Search server", 919 | "videlalvaro/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib" 920 | }, 921 | "type": "library", 922 | "extra": { 923 | "branch-alias": { 924 | "dev-master": "1.16.x-dev" 925 | } 926 | }, 927 | "autoload": { 928 | "psr-4": { 929 | "Monolog\\": "src/Monolog" 930 | } 931 | }, 932 | "notification-url": "https://packagist.org/downloads/", 933 | "license": [ 934 | "MIT" 935 | ], 936 | "authors": [ 937 | { 938 | "name": "Jordi Boggiano", 939 | "email": "j.boggiano@seld.be", 940 | "homepage": "http://seld.be" 941 | } 942 | ], 943 | "description": "Sends your logs to files, sockets, inboxes, databases and various web services", 944 | "homepage": "http://github.com/Seldaek/monolog", 945 | "keywords": [ 946 | "log", 947 | "logging", 948 | "psr-3" 949 | ], 950 | "time": "2015-10-14 12:51:02" 951 | }, 952 | { 953 | "name": "paragonie/random_compat", 954 | "version": "1.1.5", 955 | "source": { 956 | "type": "git", 957 | "url": "https://github.com/paragonie/random_compat.git", 958 | "reference": "dd8998b7c846f6909f4e7a5f67fabebfc412a4f7" 959 | }, 960 | "dist": { 961 | "type": "zip", 962 | "url": "https://api.github.com/repos/paragonie/random_compat/zipball/dd8998b7c846f6909f4e7a5f67fabebfc412a4f7", 963 | "reference": "dd8998b7c846f6909f4e7a5f67fabebfc412a4f7", 964 | "shasum": "" 965 | }, 966 | "require": { 967 | "php": ">=5.2.0" 968 | }, 969 | "require-dev": { 970 | "phpunit/phpunit": "4.*|5.*" 971 | }, 972 | "suggest": { 973 | "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." 974 | }, 975 | "type": "library", 976 | "autoload": { 977 | "files": [ 978 | "lib/random.php" 979 | ] 980 | }, 981 | "notification-url": "https://packagist.org/downloads/", 982 | "license": [ 983 | "MIT" 984 | ], 985 | "authors": [ 986 | { 987 | "name": "Paragon Initiative Enterprises", 988 | "email": "security@paragonie.com", 989 | "homepage": "https://paragonie.com" 990 | } 991 | ], 992 | "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", 993 | "keywords": [ 994 | "csprng", 995 | "pseudorandom", 996 | "random" 997 | ], 998 | "time": "2016-01-06 13:31:20" 999 | }, 1000 | { 1001 | "name": "psr/log", 1002 | "version": "1.0.0", 1003 | "source": { 1004 | "type": "git", 1005 | "url": "https://github.com/php-fig/log.git", 1006 | "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b" 1007 | }, 1008 | "dist": { 1009 | "type": "zip", 1010 | "url": "https://api.github.com/repos/php-fig/log/zipball/fe0936ee26643249e916849d48e3a51d5f5e278b", 1011 | "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b", 1012 | "shasum": "" 1013 | }, 1014 | "type": "library", 1015 | "autoload": { 1016 | "psr-0": { 1017 | "Psr\\Log\\": "" 1018 | } 1019 | }, 1020 | "notification-url": "https://packagist.org/downloads/", 1021 | "license": [ 1022 | "MIT" 1023 | ], 1024 | "authors": [ 1025 | { 1026 | "name": "PHP-FIG", 1027 | "homepage": "http://www.php-fig.org/" 1028 | } 1029 | ], 1030 | "description": "Common interface for logging libraries", 1031 | "keywords": [ 1032 | "log", 1033 | "psr", 1034 | "psr-3" 1035 | ], 1036 | "time": "2012-12-21 11:40:51" 1037 | }, 1038 | { 1039 | "name": "sensio/distribution-bundle", 1040 | "version": "v5.0.3", 1041 | "source": { 1042 | "type": "git", 1043 | "url": "https://github.com/sensiolabs/SensioDistributionBundle.git", 1044 | "reference": "419c1824af940e2be0f833aca2327e1181a6b503" 1045 | }, 1046 | "dist": { 1047 | "type": "zip", 1048 | "url": "https://api.github.com/repos/sensiolabs/SensioDistributionBundle/zipball/419c1824af940e2be0f833aca2327e1181a6b503", 1049 | "reference": "419c1824af940e2be0f833aca2327e1181a6b503", 1050 | "shasum": "" 1051 | }, 1052 | "require": { 1053 | "php": ">=5.3.9", 1054 | "sensiolabs/security-checker": "~3.0", 1055 | "symfony/class-loader": "~2.3|~3.0", 1056 | "symfony/config": "~2.3|~3.0", 1057 | "symfony/dependency-injection": "~2.3|~3.0", 1058 | "symfony/filesystem": "~2.3|~3.0", 1059 | "symfony/http-kernel": "~2.3|~3.0", 1060 | "symfony/process": "~2.3|~3.0" 1061 | }, 1062 | "type": "symfony-bundle", 1063 | "extra": { 1064 | "branch-alias": { 1065 | "dev-master": "5.0.x-dev" 1066 | } 1067 | }, 1068 | "autoload": { 1069 | "psr-4": { 1070 | "Sensio\\Bundle\\DistributionBundle\\": "" 1071 | } 1072 | }, 1073 | "notification-url": "https://packagist.org/downloads/", 1074 | "license": [ 1075 | "MIT" 1076 | ], 1077 | "authors": [ 1078 | { 1079 | "name": "Fabien Potencier", 1080 | "email": "fabien@symfony.com" 1081 | } 1082 | ], 1083 | "description": "Base bundle for Symfony Distributions", 1084 | "keywords": [ 1085 | "configuration", 1086 | "distribution" 1087 | ], 1088 | "time": "2015-12-18 17:44:11" 1089 | }, 1090 | { 1091 | "name": "sensio/framework-extra-bundle", 1092 | "version": "v3.0.12", 1093 | "source": { 1094 | "type": "git", 1095 | "url": "https://github.com/sensiolabs/SensioFrameworkExtraBundle.git", 1096 | "reference": "3e8936fe13aa4086644977d334d8fcd275f50357" 1097 | }, 1098 | "dist": { 1099 | "type": "zip", 1100 | "url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/3e8936fe13aa4086644977d334d8fcd275f50357", 1101 | "reference": "3e8936fe13aa4086644977d334d8fcd275f50357", 1102 | "shasum": "" 1103 | }, 1104 | "require": { 1105 | "doctrine/common": "~2.2", 1106 | "symfony/framework-bundle": "~2.3|~3.0" 1107 | }, 1108 | "require-dev": { 1109 | "symfony/expression-language": "~2.4|~3.0", 1110 | "symfony/security-bundle": "~2.4|~3.0" 1111 | }, 1112 | "suggest": { 1113 | "symfony/expression-language": "", 1114 | "symfony/psr-http-message-bridge": "To use the PSR-7 converters", 1115 | "symfony/security-bundle": "" 1116 | }, 1117 | "type": "symfony-bundle", 1118 | "extra": { 1119 | "branch-alias": { 1120 | "dev-master": "3.0.x-dev" 1121 | } 1122 | }, 1123 | "autoload": { 1124 | "psr-4": { 1125 | "Sensio\\Bundle\\FrameworkExtraBundle\\": "" 1126 | } 1127 | }, 1128 | "notification-url": "https://packagist.org/downloads/", 1129 | "license": [ 1130 | "MIT" 1131 | ], 1132 | "authors": [ 1133 | { 1134 | "name": "Fabien Potencier", 1135 | "email": "fabien@symfony.com" 1136 | } 1137 | ], 1138 | "description": "This bundle provides a way to configure your controllers with annotations", 1139 | "keywords": [ 1140 | "annotations", 1141 | "controllers" 1142 | ], 1143 | "time": "2015-12-18 17:39:27" 1144 | }, 1145 | { 1146 | "name": "sensiolabs/security-checker", 1147 | "version": "v3.0.2", 1148 | "source": { 1149 | "type": "git", 1150 | "url": "https://github.com/sensiolabs/security-checker.git", 1151 | "reference": "21696b0daa731064c23cfb694c60a2584a7b6e93" 1152 | }, 1153 | "dist": { 1154 | "type": "zip", 1155 | "url": "https://api.github.com/repos/sensiolabs/security-checker/zipball/21696b0daa731064c23cfb694c60a2584a7b6e93", 1156 | "reference": "21696b0daa731064c23cfb694c60a2584a7b6e93", 1157 | "shasum": "" 1158 | }, 1159 | "require": { 1160 | "symfony/console": "~2.0|~3.0" 1161 | }, 1162 | "bin": [ 1163 | "security-checker" 1164 | ], 1165 | "type": "library", 1166 | "extra": { 1167 | "branch-alias": { 1168 | "dev-master": "3.0-dev" 1169 | } 1170 | }, 1171 | "autoload": { 1172 | "psr-0": { 1173 | "SensioLabs\\Security": "" 1174 | } 1175 | }, 1176 | "notification-url": "https://packagist.org/downloads/", 1177 | "license": [ 1178 | "MIT" 1179 | ], 1180 | "authors": [ 1181 | { 1182 | "name": "Fabien Potencier", 1183 | "email": "fabien.potencier@gmail.com" 1184 | } 1185 | ], 1186 | "description": "A security checker for your composer.lock", 1187 | "time": "2015-11-07 08:07:40" 1188 | }, 1189 | { 1190 | "name": "swiftmailer/swiftmailer", 1191 | "version": "v5.4.1", 1192 | "source": { 1193 | "type": "git", 1194 | "url": "https://github.com/swiftmailer/swiftmailer.git", 1195 | "reference": "0697e6aa65c83edf97bb0f23d8763f94e3f11421" 1196 | }, 1197 | "dist": { 1198 | "type": "zip", 1199 | "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/0697e6aa65c83edf97bb0f23d8763f94e3f11421", 1200 | "reference": "0697e6aa65c83edf97bb0f23d8763f94e3f11421", 1201 | "shasum": "" 1202 | }, 1203 | "require": { 1204 | "php": ">=5.3.3" 1205 | }, 1206 | "require-dev": { 1207 | "mockery/mockery": "~0.9.1,<0.9.4" 1208 | }, 1209 | "type": "library", 1210 | "extra": { 1211 | "branch-alias": { 1212 | "dev-master": "5.4-dev" 1213 | } 1214 | }, 1215 | "autoload": { 1216 | "files": [ 1217 | "lib/swift_required.php" 1218 | ] 1219 | }, 1220 | "notification-url": "https://packagist.org/downloads/", 1221 | "license": [ 1222 | "MIT" 1223 | ], 1224 | "authors": [ 1225 | { 1226 | "name": "Chris Corbyn" 1227 | }, 1228 | { 1229 | "name": "Fabien Potencier", 1230 | "email": "fabien@symfony.com" 1231 | } 1232 | ], 1233 | "description": "Swiftmailer, free feature-rich PHP mailer", 1234 | "homepage": "http://swiftmailer.org", 1235 | "keywords": [ 1236 | "email", 1237 | "mail", 1238 | "mailer" 1239 | ], 1240 | "time": "2015-06-06 14:19:39" 1241 | }, 1242 | { 1243 | "name": "symfony/monolog-bundle", 1244 | "version": "v2.8.2", 1245 | "source": { 1246 | "type": "git", 1247 | "url": "https://github.com/symfony/monolog-bundle.git", 1248 | "reference": "84785c4d44801c4dd82829fa2e1820cacfe2c46f" 1249 | }, 1250 | "dist": { 1251 | "type": "zip", 1252 | "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/84785c4d44801c4dd82829fa2e1820cacfe2c46f", 1253 | "reference": "84785c4d44801c4dd82829fa2e1820cacfe2c46f", 1254 | "shasum": "" 1255 | }, 1256 | "require": { 1257 | "monolog/monolog": "~1.8", 1258 | "php": ">=5.3.2", 1259 | "symfony/config": "~2.3|~3.0", 1260 | "symfony/dependency-injection": "~2.3|~3.0", 1261 | "symfony/http-kernel": "~2.3|~3.0", 1262 | "symfony/monolog-bridge": "~2.3|~3.0" 1263 | }, 1264 | "require-dev": { 1265 | "symfony/console": "~2.3|~3.0", 1266 | "symfony/yaml": "~2.3|~3.0" 1267 | }, 1268 | "type": "symfony-bundle", 1269 | "extra": { 1270 | "branch-alias": { 1271 | "dev-master": "2.8.x-dev" 1272 | } 1273 | }, 1274 | "autoload": { 1275 | "psr-4": { 1276 | "Symfony\\Bundle\\MonologBundle\\": "" 1277 | } 1278 | }, 1279 | "notification-url": "https://packagist.org/downloads/", 1280 | "license": [ 1281 | "MIT" 1282 | ], 1283 | "authors": [ 1284 | { 1285 | "name": "Symfony Community", 1286 | "homepage": "http://symfony.com/contributors" 1287 | }, 1288 | { 1289 | "name": "Fabien Potencier", 1290 | "email": "fabien@symfony.com" 1291 | } 1292 | ], 1293 | "description": "Symfony MonologBundle", 1294 | "homepage": "http://symfony.com", 1295 | "keywords": [ 1296 | "log", 1297 | "logging" 1298 | ], 1299 | "time": "2015-11-17 10:02:29" 1300 | }, 1301 | { 1302 | "name": "symfony/polyfill-intl-icu", 1303 | "version": "v1.0.1", 1304 | "source": { 1305 | "type": "git", 1306 | "url": "https://github.com/symfony/polyfill-intl-icu.git", 1307 | "reference": "2deb44160e1c886241c06602b12b98779f728177" 1308 | }, 1309 | "dist": { 1310 | "type": "zip", 1311 | "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/2deb44160e1c886241c06602b12b98779f728177", 1312 | "reference": "2deb44160e1c886241c06602b12b98779f728177", 1313 | "shasum": "" 1314 | }, 1315 | "require": { 1316 | "php": ">=5.3.3", 1317 | "symfony/intl": "~2.3|~3.0" 1318 | }, 1319 | "type": "library", 1320 | "extra": { 1321 | "branch-alias": { 1322 | "dev-master": "1.0-dev" 1323 | } 1324 | }, 1325 | "autoload": { 1326 | "files": [ 1327 | "bootstrap.php" 1328 | ] 1329 | }, 1330 | "notification-url": "https://packagist.org/downloads/", 1331 | "license": [ 1332 | "MIT" 1333 | ], 1334 | "authors": [ 1335 | { 1336 | "name": "Nicolas Grekas", 1337 | "email": "p@tchwork.com" 1338 | }, 1339 | { 1340 | "name": "Symfony Community", 1341 | "homepage": "https://symfony.com/contributors" 1342 | } 1343 | ], 1344 | "description": "Symfony polyfill for intl's ICU-related data and classes", 1345 | "homepage": "https://symfony.com", 1346 | "keywords": [ 1347 | "compatibility", 1348 | "icu", 1349 | "intl", 1350 | "polyfill", 1351 | "portable", 1352 | "shim" 1353 | ], 1354 | "time": "2015-11-04 20:28:58" 1355 | }, 1356 | { 1357 | "name": "symfony/polyfill-mbstring", 1358 | "version": "v1.0.1", 1359 | "source": { 1360 | "type": "git", 1361 | "url": "https://github.com/symfony/polyfill-mbstring.git", 1362 | "reference": "49ff736bd5d41f45240cec77b44967d76e0c3d25" 1363 | }, 1364 | "dist": { 1365 | "type": "zip", 1366 | "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/49ff736bd5d41f45240cec77b44967d76e0c3d25", 1367 | "reference": "49ff736bd5d41f45240cec77b44967d76e0c3d25", 1368 | "shasum": "" 1369 | }, 1370 | "require": { 1371 | "php": ">=5.3.3" 1372 | }, 1373 | "suggest": { 1374 | "ext-mbstring": "For best performance" 1375 | }, 1376 | "type": "library", 1377 | "extra": { 1378 | "branch-alias": { 1379 | "dev-master": "1.0-dev" 1380 | } 1381 | }, 1382 | "autoload": { 1383 | "psr-4": { 1384 | "Symfony\\Polyfill\\Mbstring\\": "" 1385 | }, 1386 | "files": [ 1387 | "bootstrap.php" 1388 | ] 1389 | }, 1390 | "notification-url": "https://packagist.org/downloads/", 1391 | "license": [ 1392 | "MIT" 1393 | ], 1394 | "authors": [ 1395 | { 1396 | "name": "Nicolas Grekas", 1397 | "email": "p@tchwork.com" 1398 | }, 1399 | { 1400 | "name": "Symfony Community", 1401 | "homepage": "https://symfony.com/contributors" 1402 | } 1403 | ], 1404 | "description": "Symfony polyfill for the Mbstring extension", 1405 | "homepage": "https://symfony.com", 1406 | "keywords": [ 1407 | "compatibility", 1408 | "mbstring", 1409 | "polyfill", 1410 | "portable", 1411 | "shim" 1412 | ], 1413 | "time": "2015-11-20 09:19:13" 1414 | }, 1415 | { 1416 | "name": "symfony/polyfill-php56", 1417 | "version": "v1.0.1", 1418 | "source": { 1419 | "type": "git", 1420 | "url": "https://github.com/symfony/polyfill-php56.git", 1421 | "reference": "e2e77609a9e2328eb370fbb0e0d8b2000ebb488f" 1422 | }, 1423 | "dist": { 1424 | "type": "zip", 1425 | "url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/e2e77609a9e2328eb370fbb0e0d8b2000ebb488f", 1426 | "reference": "e2e77609a9e2328eb370fbb0e0d8b2000ebb488f", 1427 | "shasum": "" 1428 | }, 1429 | "require": { 1430 | "php": ">=5.3.3", 1431 | "symfony/polyfill-util": "~1.0" 1432 | }, 1433 | "type": "library", 1434 | "extra": { 1435 | "branch-alias": { 1436 | "dev-master": "1.0-dev" 1437 | } 1438 | }, 1439 | "autoload": { 1440 | "psr-4": { 1441 | "Symfony\\Polyfill\\Php56\\": "" 1442 | }, 1443 | "files": [ 1444 | "bootstrap.php" 1445 | ] 1446 | }, 1447 | "notification-url": "https://packagist.org/downloads/", 1448 | "license": [ 1449 | "MIT" 1450 | ], 1451 | "authors": [ 1452 | { 1453 | "name": "Nicolas Grekas", 1454 | "email": "p@tchwork.com" 1455 | }, 1456 | { 1457 | "name": "Symfony Community", 1458 | "homepage": "https://symfony.com/contributors" 1459 | } 1460 | ], 1461 | "description": "Symfony polyfill backporting some PHP 5.6+ features to lower PHP versions", 1462 | "homepage": "https://symfony.com", 1463 | "keywords": [ 1464 | "compatibility", 1465 | "polyfill", 1466 | "portable", 1467 | "shim" 1468 | ], 1469 | "time": "2015-12-18 15:10:25" 1470 | }, 1471 | { 1472 | "name": "symfony/polyfill-php70", 1473 | "version": "v1.0.1", 1474 | "source": { 1475 | "type": "git", 1476 | "url": "https://github.com/symfony/polyfill-php70.git", 1477 | "reference": "7f7f3c9c2b9f17722e0cd64fdb4f957330c53146" 1478 | }, 1479 | "dist": { 1480 | "type": "zip", 1481 | "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/7f7f3c9c2b9f17722e0cd64fdb4f957330c53146", 1482 | "reference": "7f7f3c9c2b9f17722e0cd64fdb4f957330c53146", 1483 | "shasum": "" 1484 | }, 1485 | "require": { 1486 | "paragonie/random_compat": "~1.0", 1487 | "php": ">=5.3.3" 1488 | }, 1489 | "type": "library", 1490 | "extra": { 1491 | "branch-alias": { 1492 | "dev-master": "1.0-dev" 1493 | } 1494 | }, 1495 | "autoload": { 1496 | "psr-4": { 1497 | "Symfony\\Polyfill\\Php70\\": "" 1498 | }, 1499 | "files": [ 1500 | "bootstrap.php" 1501 | ], 1502 | "classmap": [ 1503 | "Resources/stubs" 1504 | ] 1505 | }, 1506 | "notification-url": "https://packagist.org/downloads/", 1507 | "license": [ 1508 | "MIT" 1509 | ], 1510 | "authors": [ 1511 | { 1512 | "name": "Nicolas Grekas", 1513 | "email": "p@tchwork.com" 1514 | }, 1515 | { 1516 | "name": "Symfony Community", 1517 | "homepage": "https://symfony.com/contributors" 1518 | } 1519 | ], 1520 | "description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions", 1521 | "homepage": "https://symfony.com", 1522 | "keywords": [ 1523 | "compatibility", 1524 | "polyfill", 1525 | "portable", 1526 | "shim" 1527 | ], 1528 | "time": "2015-11-04 20:28:58" 1529 | }, 1530 | { 1531 | "name": "symfony/polyfill-util", 1532 | "version": "v1.0.1", 1533 | "source": { 1534 | "type": "git", 1535 | "url": "https://github.com/symfony/polyfill-util.git", 1536 | "reference": "4271c55cbc0a77b2641f861b978123e46b3da969" 1537 | }, 1538 | "dist": { 1539 | "type": "zip", 1540 | "url": "https://api.github.com/repos/symfony/polyfill-util/zipball/4271c55cbc0a77b2641f861b978123e46b3da969", 1541 | "reference": "4271c55cbc0a77b2641f861b978123e46b3da969", 1542 | "shasum": "" 1543 | }, 1544 | "require": { 1545 | "php": ">=5.3.3" 1546 | }, 1547 | "type": "library", 1548 | "extra": { 1549 | "branch-alias": { 1550 | "dev-master": "1.0-dev" 1551 | } 1552 | }, 1553 | "autoload": { 1554 | "psr-4": { 1555 | "Symfony\\Polyfill\\Util\\": "" 1556 | } 1557 | }, 1558 | "notification-url": "https://packagist.org/downloads/", 1559 | "license": [ 1560 | "MIT" 1561 | ], 1562 | "authors": [ 1563 | { 1564 | "name": "Nicolas Grekas", 1565 | "email": "p@tchwork.com" 1566 | }, 1567 | { 1568 | "name": "Symfony Community", 1569 | "homepage": "https://symfony.com/contributors" 1570 | } 1571 | ], 1572 | "description": "Symfony utilities for portability of PHP codes", 1573 | "homepage": "https://symfony.com", 1574 | "keywords": [ 1575 | "compat", 1576 | "compatibility", 1577 | "polyfill", 1578 | "shim" 1579 | ], 1580 | "time": "2015-11-04 20:28:58" 1581 | }, 1582 | { 1583 | "name": "symfony/swiftmailer-bundle", 1584 | "version": "v2.3.11", 1585 | "source": { 1586 | "type": "git", 1587 | "url": "https://github.com/symfony/swiftmailer-bundle.git", 1588 | "reference": "5e1a90f28213231ceee19c953bbebc5b5b95c690" 1589 | }, 1590 | "dist": { 1591 | "type": "zip", 1592 | "url": "https://api.github.com/repos/symfony/swiftmailer-bundle/zipball/5e1a90f28213231ceee19c953bbebc5b5b95c690", 1593 | "reference": "5e1a90f28213231ceee19c953bbebc5b5b95c690", 1594 | "shasum": "" 1595 | }, 1596 | "require": { 1597 | "php": ">=5.3.2", 1598 | "swiftmailer/swiftmailer": ">=4.2.0,~5.0", 1599 | "symfony/config": "~2.3|~3.0", 1600 | "symfony/dependency-injection": "~2.3|~3.0", 1601 | "symfony/http-kernel": "~2.3|~3.0", 1602 | "symfony/yaml": "~2.3|~3.0" 1603 | }, 1604 | "require-dev": { 1605 | "symfony/phpunit-bridge": "~2.7|~3.0" 1606 | }, 1607 | "suggest": { 1608 | "psr/log": "Allows logging" 1609 | }, 1610 | "type": "symfony-bundle", 1611 | "extra": { 1612 | "branch-alias": { 1613 | "dev-master": "2.3-dev" 1614 | } 1615 | }, 1616 | "autoload": { 1617 | "psr-4": { 1618 | "Symfony\\Bundle\\SwiftmailerBundle\\": "" 1619 | } 1620 | }, 1621 | "notification-url": "https://packagist.org/downloads/", 1622 | "license": [ 1623 | "MIT" 1624 | ], 1625 | "authors": [ 1626 | { 1627 | "name": "Symfony Community", 1628 | "homepage": "http://symfony.com/contributors" 1629 | }, 1630 | { 1631 | "name": "Fabien Potencier", 1632 | "email": "fabien@symfony.com" 1633 | } 1634 | ], 1635 | "description": "Symfony SwiftmailerBundle", 1636 | "homepage": "http://symfony.com", 1637 | "time": "2016-01-15 16:41:20" 1638 | }, 1639 | { 1640 | "name": "symfony/symfony", 1641 | "version": "v3.0.1", 1642 | "source": { 1643 | "type": "git", 1644 | "url": "https://github.com/symfony/symfony.git", 1645 | "reference": "979d7323716fec847508eac3e62d59b117612a6e" 1646 | }, 1647 | "dist": { 1648 | "type": "zip", 1649 | "url": "https://api.github.com/repos/symfony/symfony/zipball/979d7323716fec847508eac3e62d59b117612a6e", 1650 | "reference": "979d7323716fec847508eac3e62d59b117612a6e", 1651 | "shasum": "" 1652 | }, 1653 | "require": { 1654 | "doctrine/common": "~2.4", 1655 | "php": ">=5.5.9", 1656 | "psr/log": "~1.0", 1657 | "symfony/polyfill-intl-icu": "~1.0", 1658 | "symfony/polyfill-mbstring": "~1.0", 1659 | "symfony/polyfill-php56": "~1.0", 1660 | "symfony/polyfill-php70": "~1.0", 1661 | "symfony/polyfill-util": "~1.0", 1662 | "twig/twig": "~1.23|~2.0" 1663 | }, 1664 | "conflict": { 1665 | "phpdocumentor/reflection": "<1.0.7" 1666 | }, 1667 | "replace": { 1668 | "symfony/asset": "self.version", 1669 | "symfony/browser-kit": "self.version", 1670 | "symfony/class-loader": "self.version", 1671 | "symfony/config": "self.version", 1672 | "symfony/console": "self.version", 1673 | "symfony/css-selector": "self.version", 1674 | "symfony/debug": "self.version", 1675 | "symfony/debug-bundle": "self.version", 1676 | "symfony/dependency-injection": "self.version", 1677 | "symfony/doctrine-bridge": "self.version", 1678 | "symfony/dom-crawler": "self.version", 1679 | "symfony/event-dispatcher": "self.version", 1680 | "symfony/expression-language": "self.version", 1681 | "symfony/filesystem": "self.version", 1682 | "symfony/finder": "self.version", 1683 | "symfony/form": "self.version", 1684 | "symfony/framework-bundle": "self.version", 1685 | "symfony/http-foundation": "self.version", 1686 | "symfony/http-kernel": "self.version", 1687 | "symfony/intl": "self.version", 1688 | "symfony/ldap": "self.version", 1689 | "symfony/monolog-bridge": "self.version", 1690 | "symfony/options-resolver": "self.version", 1691 | "symfony/process": "self.version", 1692 | "symfony/property-access": "self.version", 1693 | "symfony/property-info": "self.version", 1694 | "symfony/proxy-manager-bridge": "self.version", 1695 | "symfony/routing": "self.version", 1696 | "symfony/security": "self.version", 1697 | "symfony/security-bundle": "self.version", 1698 | "symfony/security-core": "self.version", 1699 | "symfony/security-csrf": "self.version", 1700 | "symfony/security-guard": "self.version", 1701 | "symfony/security-http": "self.version", 1702 | "symfony/serializer": "self.version", 1703 | "symfony/stopwatch": "self.version", 1704 | "symfony/templating": "self.version", 1705 | "symfony/translation": "self.version", 1706 | "symfony/twig-bridge": "self.version", 1707 | "symfony/twig-bundle": "self.version", 1708 | "symfony/validator": "self.version", 1709 | "symfony/var-dumper": "self.version", 1710 | "symfony/web-profiler-bundle": "self.version", 1711 | "symfony/yaml": "self.version" 1712 | }, 1713 | "require-dev": { 1714 | "doctrine/data-fixtures": "1.0.*", 1715 | "doctrine/dbal": "~2.4", 1716 | "doctrine/doctrine-bundle": "~1.4", 1717 | "doctrine/orm": "~2.4,>=2.4.5", 1718 | "egulias/email-validator": "~1.2", 1719 | "monolog/monolog": "~1.11", 1720 | "ocramius/proxy-manager": "~0.4|~1.0", 1721 | "phpdocumentor/reflection": "^1.0.7", 1722 | "symfony/security-acl": "~2.8|~3.0" 1723 | }, 1724 | "type": "library", 1725 | "extra": { 1726 | "branch-alias": { 1727 | "dev-master": "3.0-dev" 1728 | } 1729 | }, 1730 | "autoload": { 1731 | "psr-4": { 1732 | "Symfony\\Bridge\\Doctrine\\": "src/Symfony/Bridge/Doctrine/", 1733 | "Symfony\\Bridge\\Monolog\\": "src/Symfony/Bridge/Monolog/", 1734 | "Symfony\\Bridge\\ProxyManager\\": "src/Symfony/Bridge/ProxyManager/", 1735 | "Symfony\\Bridge\\Swiftmailer\\": "src/Symfony/Bridge/Swiftmailer/", 1736 | "Symfony\\Bridge\\Twig\\": "src/Symfony/Bridge/Twig/", 1737 | "Symfony\\Bundle\\": "src/Symfony/Bundle/", 1738 | "Symfony\\Component\\": "src/Symfony/Component/" 1739 | }, 1740 | "classmap": [ 1741 | "src/Symfony/Component/Intl/Resources/stubs" 1742 | ], 1743 | "exclude-from-classmap": [ 1744 | "**/Tests/" 1745 | ] 1746 | }, 1747 | "notification-url": "https://packagist.org/downloads/", 1748 | "license": [ 1749 | "MIT" 1750 | ], 1751 | "authors": [ 1752 | { 1753 | "name": "Fabien Potencier", 1754 | "email": "fabien@symfony.com" 1755 | }, 1756 | { 1757 | "name": "Symfony Community", 1758 | "homepage": "https://symfony.com/contributors" 1759 | } 1760 | ], 1761 | "description": "The Symfony PHP framework", 1762 | "homepage": "https://symfony.com", 1763 | "keywords": [ 1764 | "framework" 1765 | ], 1766 | "time": "2015-12-26 16:49:48" 1767 | }, 1768 | { 1769 | "name": "twig/twig", 1770 | "version": "v1.23.3", 1771 | "source": { 1772 | "type": "git", 1773 | "url": "https://github.com/twigphp/Twig.git", 1774 | "reference": "ae53fc2c312fdee63773b75cb570304f85388b08" 1775 | }, 1776 | "dist": { 1777 | "type": "zip", 1778 | "url": "https://api.github.com/repos/twigphp/Twig/zipball/ae53fc2c312fdee63773b75cb570304f85388b08", 1779 | "reference": "ae53fc2c312fdee63773b75cb570304f85388b08", 1780 | "shasum": "" 1781 | }, 1782 | "require": { 1783 | "php": ">=5.2.7" 1784 | }, 1785 | "require-dev": { 1786 | "symfony/debug": "~2.7", 1787 | "symfony/phpunit-bridge": "~2.7" 1788 | }, 1789 | "type": "library", 1790 | "extra": { 1791 | "branch-alias": { 1792 | "dev-master": "1.23-dev" 1793 | } 1794 | }, 1795 | "autoload": { 1796 | "psr-0": { 1797 | "Twig_": "lib/" 1798 | } 1799 | }, 1800 | "notification-url": "https://packagist.org/downloads/", 1801 | "license": [ 1802 | "BSD-3-Clause" 1803 | ], 1804 | "authors": [ 1805 | { 1806 | "name": "Fabien Potencier", 1807 | "email": "fabien@symfony.com", 1808 | "homepage": "http://fabien.potencier.org", 1809 | "role": "Lead Developer" 1810 | }, 1811 | { 1812 | "name": "Armin Ronacher", 1813 | "email": "armin.ronacher@active-4.com", 1814 | "role": "Project Founder" 1815 | }, 1816 | { 1817 | "name": "Twig Team", 1818 | "homepage": "http://twig.sensiolabs.org/contributors", 1819 | "role": "Contributors" 1820 | } 1821 | ], 1822 | "description": "Twig, the flexible, fast, and secure template language for PHP", 1823 | "homepage": "http://twig.sensiolabs.org", 1824 | "keywords": [ 1825 | "templating" 1826 | ], 1827 | "time": "2016-01-11 14:02:19" 1828 | } 1829 | ], 1830 | "packages-dev": [ 1831 | { 1832 | "name": "sensio/generator-bundle", 1833 | "version": "v3.0.5", 1834 | "source": { 1835 | "type": "git", 1836 | "url": "https://github.com/sensiolabs/SensioGeneratorBundle.git", 1837 | "reference": "5274eafa251359087230bade2ff35dd6cec2e530" 1838 | }, 1839 | "dist": { 1840 | "type": "zip", 1841 | "url": "https://api.github.com/repos/sensiolabs/SensioGeneratorBundle/zipball/5274eafa251359087230bade2ff35dd6cec2e530", 1842 | "reference": "5274eafa251359087230bade2ff35dd6cec2e530", 1843 | "shasum": "" 1844 | }, 1845 | "require": { 1846 | "symfony/console": "~2.7|~3.0", 1847 | "symfony/framework-bundle": "~2.7|~3.0", 1848 | "symfony/process": "~2.7|~3.0", 1849 | "symfony/yaml": "~2.7|~3.0" 1850 | }, 1851 | "require-dev": { 1852 | "doctrine/orm": "~2.4", 1853 | "symfony/doctrine-bridge": "~2.7|~3.0", 1854 | "twig/twig": "~1.18" 1855 | }, 1856 | "type": "symfony-bundle", 1857 | "extra": { 1858 | "branch-alias": { 1859 | "dev-master": "3.0.x-dev" 1860 | } 1861 | }, 1862 | "autoload": { 1863 | "psr-4": { 1864 | "Sensio\\Bundle\\GeneratorBundle\\": "" 1865 | }, 1866 | "exclude-from-classmap": [ 1867 | "/Tests/" 1868 | ] 1869 | }, 1870 | "notification-url": "https://packagist.org/downloads/", 1871 | "license": [ 1872 | "MIT" 1873 | ], 1874 | "authors": [ 1875 | { 1876 | "name": "Fabien Potencier", 1877 | "email": "fabien@symfony.com" 1878 | } 1879 | ], 1880 | "description": "This bundle generates code for you", 1881 | "time": "2016-01-05 16:30:36" 1882 | }, 1883 | { 1884 | "name": "symfony/phpunit-bridge", 1885 | "version": "v2.8.2", 1886 | "source": { 1887 | "type": "git", 1888 | "url": "https://github.com/symfony/phpunit-bridge.git", 1889 | "reference": "855dc0e829fad123966347612b4183e307338c11" 1890 | }, 1891 | "dist": { 1892 | "type": "zip", 1893 | "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/855dc0e829fad123966347612b4183e307338c11", 1894 | "reference": "855dc0e829fad123966347612b4183e307338c11", 1895 | "shasum": "" 1896 | }, 1897 | "require": { 1898 | "php": ">=5.3.3" 1899 | }, 1900 | "suggest": { 1901 | "symfony/debug": "For tracking deprecated interfaces usages at runtime with DebugClassLoader" 1902 | }, 1903 | "type": "symfony-bridge", 1904 | "extra": { 1905 | "branch-alias": { 1906 | "dev-master": "2.8-dev" 1907 | } 1908 | }, 1909 | "autoload": { 1910 | "files": [ 1911 | "bootstrap.php" 1912 | ], 1913 | "psr-4": { 1914 | "Symfony\\Bridge\\PhpUnit\\": "" 1915 | }, 1916 | "exclude-from-classmap": [ 1917 | "/Tests/" 1918 | ] 1919 | }, 1920 | "notification-url": "https://packagist.org/downloads/", 1921 | "license": [ 1922 | "MIT" 1923 | ], 1924 | "authors": [ 1925 | { 1926 | "name": "Nicolas Grekas", 1927 | "email": "p@tchwork.com" 1928 | }, 1929 | { 1930 | "name": "Symfony Community", 1931 | "homepage": "https://symfony.com/contributors" 1932 | } 1933 | ], 1934 | "description": "Symfony PHPUnit Bridge", 1935 | "homepage": "https://symfony.com", 1936 | "time": "2016-01-06 09:59:23" 1937 | } 1938 | ], 1939 | "aliases": [], 1940 | "minimum-stability": "stable", 1941 | "stability-flags": [], 1942 | "prefer-stable": false, 1943 | "prefer-lowest": false, 1944 | "platform": { 1945 | "php": ">=5.5.9" 1946 | }, 1947 | "platform-dev": [] 1948 | } 1949 | -------------------------------------------------------------------------------- /phpunit.xml.dist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | tests 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | src 27 | 28 | src/*Bundle/Resources 29 | src/*/*Bundle/Resources 30 | src/*/Bundle/*Bundle/Resources 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /src/.htaccess: -------------------------------------------------------------------------------- 1 | 2 | Require all denied 3 | 4 | 5 | Order deny,allow 6 | Deny from all 7 | 8 | -------------------------------------------------------------------------------- /src/AppBundle/AppBundle.php: -------------------------------------------------------------------------------- 1 | render('default/index.html.twig', array( 18 | 'base_dir' => realpath($this->container->getParameter('kernel.root_dir').'/..'), 19 | )); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/OC/PlatformBundle/Controller/DefaultController.php: -------------------------------------------------------------------------------- 1 | render('OCPlatformBundle:Default:index.html.twig'); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/OC/PlatformBundle/DependencyInjection/Configuration.php: -------------------------------------------------------------------------------- 1 | root('oc_platform'); 22 | 23 | // Here you should define the parameters that are allowed to 24 | // configure your bundle. See the documentation linked above for 25 | // more information on that topic. 26 | 27 | return $treeBuilder; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/OC/PlatformBundle/DependencyInjection/OCPlatformExtension.php: -------------------------------------------------------------------------------- 1 | processConfiguration($configuration, $configs); 24 | 25 | $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); 26 | $loader->load('services.yml'); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/OC/PlatformBundle/OCPlatformBundle.php: -------------------------------------------------------------------------------- 1 | 4 | 5 | Hello World! 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/OC/PlatformBundle/Tests/Controller/DefaultControllerTest.php: -------------------------------------------------------------------------------- 1 | request('GET', '/'); 14 | 15 | $this->assertContains('Hello World', $client->getResponse()->getContent()); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /tests/AppBundle/Controller/DefaultControllerTest.php: -------------------------------------------------------------------------------- 1 | request('GET', '/'); 14 | 15 | $this->assertEquals(200, $client->getResponse()->getStatusCode()); 16 | $this->assertContains('Welcome to Symfony', $crawler->filter('#container h1')->text()); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /var/cache/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/winzou/mooc-symfony/34f9de3e20653eab884a2d60b93d7da4bb3d334a/var/cache/.gitkeep -------------------------------------------------------------------------------- /var/logs/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/winzou/mooc-symfony/34f9de3e20653eab884a2d60b93d7da4bb3d334a/var/logs/.gitkeep -------------------------------------------------------------------------------- /var/sessions/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/winzou/mooc-symfony/34f9de3e20653eab884a2d60b93d7da4bb3d334a/var/sessions/.gitkeep -------------------------------------------------------------------------------- /web/.htaccess: -------------------------------------------------------------------------------- 1 | # Use the front controller as index file. It serves as a fallback solution when 2 | # every other rewrite/redirect fails (e.g. in an aliased environment without 3 | # mod_rewrite). Additionally, this reduces the matching process for the 4 | # start page (path "/") because otherwise Apache will apply the rewriting rules 5 | # to each configured DirectoryIndex file (e.g. index.php, index.html, index.pl). 6 | DirectoryIndex app.php 7 | 8 | # By default, Apache does not evaluate symbolic links if you did not enable this 9 | # feature in your server configuration. Uncomment the following line if you 10 | # install assets as symlinks or if you experience problems related to symlinks 11 | # when compiling LESS/Sass/CoffeScript assets. 12 | # Options FollowSymlinks 13 | 14 | # Disabling MultiViews prevents unwanted negotiation, e.g. "/app" should not resolve 15 | # to the front controller "/app.php" but be rewritten to "/app.php/app". 16 | 17 | Options -MultiViews 18 | 19 | 20 | 21 | RewriteEngine On 22 | 23 | # Determine the RewriteBase automatically and set it as environment variable. 24 | # If you are using Apache aliases to do mass virtual hosting or installed the 25 | # project in a subdirectory, the base path will be prepended to allow proper 26 | # resolution of the app.php file and to redirect to the correct URI. It will 27 | # work in environments without path prefix as well, providing a safe, one-size 28 | # fits all solution. But as you do not need it in this case, you can comment 29 | # the following 2 lines to eliminate the overhead. 30 | RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$ 31 | RewriteRule ^(.*) - [E=BASE:%1] 32 | 33 | # Sets the HTTP_AUTHORIZATION header removed by Apache 34 | RewriteCond %{HTTP:Authorization} . 35 | RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 36 | 37 | # Redirect to URI without front controller to prevent duplicate content 38 | # (with and without `/app.php`). Only do this redirect on the initial 39 | # rewrite by Apache and not on subsequent cycles. Otherwise we would get an 40 | # endless redirect loop (request -> rewrite to front controller -> 41 | # redirect -> request -> ...). 42 | # So in case you get a "too many redirects" error or you always get redirected 43 | # to the start page because your Apache does not expose the REDIRECT_STATUS 44 | # environment variable, you have 2 choices: 45 | # - disable this feature by commenting the following 2 lines or 46 | # - use Apache >= 2.3.9 and replace all L flags by END flags and remove the 47 | # following RewriteCond (best solution) 48 | RewriteCond %{ENV:REDIRECT_STATUS} ^$ 49 | RewriteRule ^app\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L] 50 | 51 | # If the requested filename exists, simply serve it. 52 | # We only want to let Apache serve files and not directories. 53 | RewriteCond %{REQUEST_FILENAME} -f 54 | RewriteRule ^ - [L] 55 | 56 | # Rewrite all other queries to the front controller. 57 | RewriteRule ^ %{ENV:BASE}/app.php [L] 58 | 59 | 60 | 61 | 62 | # When mod_rewrite is not available, we instruct a temporary redirect of 63 | # the start page to the front controller explicitly so that the website 64 | # and the generated links can still be used. 65 | RedirectMatch 302 ^/$ /app.php/ 66 | # RedirectTemp cannot be used instead 67 | 68 | 69 | -------------------------------------------------------------------------------- /web/app.php: -------------------------------------------------------------------------------- 1 | unregister(); 18 | $apcLoader->register(true); 19 | */ 20 | 21 | //require_once __DIR__.'/../app/AppCache.php'; 22 | 23 | $kernel = new AppKernel('prod', false); 24 | $kernel->loadClassCache(); 25 | //$kernel = new AppCache($kernel); 26 | 27 | // When using the HttpCache, you need to call the method in your front controller instead of relying on the configuration parameter 28 | //Request::enableHttpMethodParameterOverride(); 29 | $request = Request::createFromGlobals(); 30 | $response = $kernel->handle($request); 31 | $response->send(); 32 | $kernel->terminate($request, $response); 33 | -------------------------------------------------------------------------------- /web/app_dev.php: -------------------------------------------------------------------------------- 1 | loadClassCache(); 29 | $request = Request::createFromGlobals(); 30 | $response = $kernel->handle($request); 31 | $response->send(); 32 | $kernel->terminate($request, $response); 33 | -------------------------------------------------------------------------------- /web/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/winzou/mooc-symfony/34f9de3e20653eab884a2d60b93d7da4bb3d334a/web/apple-touch-icon.png -------------------------------------------------------------------------------- /web/config.php: -------------------------------------------------------------------------------- 1 | getFailedRequirements(); 30 | $minorProblems = $symfonyRequirements->getFailedRecommendations(); 31 | 32 | ?> 33 | 34 | 35 | 36 | 37 | 38 | Symfony Configuration Checker 39 | 40 | 41 | 118 | 119 | 120 |
121 |
122 | 125 | 126 | 146 |
147 | 148 |
149 |
150 |
151 |

Configuration Checker

152 |

153 | This script analyzes your system to check whether is 154 | ready to run Symfony applications. 155 |

156 | 157 | 158 |

Major problems

159 |

Major problems have been detected and must be fixed before continuing:

160 |
    161 | 162 |
  1. getHelpHtml() ?>
  2. 163 | 164 |
165 | 166 | 167 | 168 |

Recommendations

169 |

170 | Additionally, toTo enhance your Symfony experience, 171 | it’s recommended that you fix the following: 172 |

173 |
    174 | 175 |
  1. getHelpHtml() ?>
  2. 176 | 177 |
178 | 179 | 180 | hasPhpIniConfigIssue()): ?> 181 |

* 182 | getPhpIniConfigPath()): ?> 183 | Changes to the php.ini file must be done in "getPhpIniConfigPath() ?>". 184 | 185 | To change settings, create a "php.ini". 186 | 187 |

188 | 189 | 190 | 191 |

All checks passed successfully. Your system is ready to run Symfony applications.

192 | 193 | 194 | 199 |
200 |
201 |
202 |
Symfony Standard Edition
203 |
204 | 205 | 206 | -------------------------------------------------------------------------------- /web/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/winzou/mooc-symfony/34f9de3e20653eab884a2d60b93d7da4bb3d334a/web/favicon.ico -------------------------------------------------------------------------------- /web/robots.txt: -------------------------------------------------------------------------------- 1 | # www.robotstxt.org/ 2 | # www.google.com/support/webmasters/bin/answer.py?hl=en&answer=156449 3 | 4 | User-agent: * 5 | --------------------------------------------------------------------------------