├── .editorconfig ├── .gitignore ├── .jshintrc ├── .travis.yml ├── Gemfile ├── Gemfile.lock ├── Gruntfile.js ├── Guardfile ├── LICENSE ├── README.md ├── app ├── app.php ├── deploy_config │ ├── README.md │ ├── config-example.php │ └── sandbox.php └── routing.php ├── composer.json ├── composer.lock ├── package.json ├── php.ini ├── phpmd.xml ├── phpunit.xml.dist ├── src ├── App │ ├── BaseWebTestCase.php │ ├── Controller │ │ └── DefaultController.php │ ├── Silex │ │ └── Application.php │ └── views │ │ ├── index.twig │ │ └── layout.twig └── README.md ├── tests └── src │ └── App │ └── Controller │ └── DefaultControllerTest.php └── web ├── .htaccess ├── css └── styles.css ├── favicon.ico ├── index.php ├── js └── bootstrap.js └── robots.txt /.editorconfig: -------------------------------------------------------------------------------- 1 | ; http://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | indent_style = space 6 | indent_size = 4 7 | end_of_line = lf 8 | charset = utf-8 9 | trim_trailing_whitespace = true 10 | insert_final_newline = true 11 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | app/config.php 2 | 3 | app/cache 4 | app/log 5 | 6 | build 7 | node_modules 8 | vendor 9 | -------------------------------------------------------------------------------- /.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "expr": true, 3 | "curly": true, 4 | "eqeqeq": true, 5 | "immed": true, 6 | "latedef": true, 7 | "newcap": true, 8 | "noarg": true, 9 | "sub": true, 10 | "undef": true, 11 | "boss": true, 12 | "eqnull": true, 13 | "browser": true, 14 | "maxparams": 5, 15 | "maxdepth": 5, 16 | "maxstatements": 25, 17 | "maxcomplexity": 10, 18 | "predef": [ 19 | "module", 20 | "alert", 21 | "confirm" 22 | ] 23 | } 24 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | # Lint: http://lint.travis-ci.org 2 | 3 | notifications: 4 | email: 5 | - gunnar@aptoma.com 6 | 7 | language: php 8 | 9 | php: 10 | - 5.3 11 | - 5.4 12 | 13 | env: 14 | global: 15 | # travis encrypt CODECLIMATE_REPO_TOKEN= 16 | - secure: "edf80QwiEfarXXZHsvupedtjgUYYSwB56su8P4AGAFk060tcPdjlu29rPUAux09UCO6/D7FynBjuaWZj1TYvIuYJm3ih5GUmDvG5iViXvq8VUcI0LbNeth0Jg49xRH+Db21Sx1M+nvWIkQHVOqzDFuFRmVR97mzWLFLF8+BIZU4=" 17 | 18 | cache: 19 | directories: 20 | - vendor 21 | - node_modules 22 | 23 | git: 24 | submodules: false 25 | 26 | before_install: 27 | 28 | install: 29 | - npm install 30 | 31 | before_script: 32 | - phpenv config-add php.ini 33 | - mkdir -p app/log 34 | - mkdir -p app/cache 35 | - mkdir -p build/logs 36 | - rm -rf app/cache/twig/* 37 | - rm -rf app/cache/assetic/* 38 | 39 | script: 40 | - ./node_modules/grunt-cli/bin/grunt travis 41 | 42 | after_script: 43 | - php vendor/bin/coveralls -v 44 | - ./vendor/bin/test-reporter --stdout > codeclimate.json 45 | - "curl -X POST -d @codeclimate.json -H 'Content-Type: application/json' -H 'User-Agent: Code Climate (PHP Test Reporter v1.0.1-dev)' https://codeclimate.com/test_reports" 46 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | # Install Bundler using: 2 | # `gem install bundler` 3 | # 4 | # Then use `bundle install` to install gem dependencies. 5 | # 6 | # Use `--without guard` or `--without capistrano` if you don't want to install all dependencies 7 | 8 | source "https://rubygems.org" 9 | 10 | group :guard do 11 | gem "guard", "~>1.5" 12 | gem "guard-phpunit", "~>0.1.4" 13 | gem "guard-phpmd", "~>0.0.2" 14 | gem "guard-phpcs" 15 | gem "guard-shell", "~>0.5.1" 16 | gem "rb-fsevent", "~>0.9.2" 17 | gem "growl", "~>1.0" 18 | end 19 | 20 | group :capistrano do 21 | gem "capistrano", "~>2.13" 22 | gem "capistrano-ext", "~>1.2" 23 | gem "railsless-deploy", "~>1.0" 24 | gem "colored", "~>1.2" 25 | gem "hipchat", "~> 0.7.0" 26 | end 27 | 28 | group :development do 29 | gem 'rb-readline' 30 | end 31 | -------------------------------------------------------------------------------- /Gemfile.lock: -------------------------------------------------------------------------------- 1 | GEM 2 | remote: https://rubygems.org/ 3 | specs: 4 | capistrano (2.14.1) 5 | highline 6 | net-scp (>= 1.0.0) 7 | net-sftp (>= 2.0.0) 8 | net-ssh (>= 2.0.14) 9 | net-ssh-gateway (>= 1.1.0) 10 | capistrano-ext (1.2.1) 11 | capistrano (>= 1.0.0) 12 | coderay (1.0.8) 13 | colored (1.2) 14 | growl (1.0.3) 15 | guard (1.6.1) 16 | listen (>= 0.6.0) 17 | lumberjack (>= 1.0.2) 18 | pry (>= 0.9.10) 19 | thor (>= 0.14.6) 20 | guard-phpcs (0.0.4) 21 | guard (>= 0.8.8) 22 | guard-phpmd (0.0.2) 23 | guard (>= 0.8.8) 24 | guard-phpunit (0.1.4) 25 | guard (~> 1.1) 26 | guard-shell (0.5.1) 27 | guard (>= 1.1.0) 28 | highline (1.6.15) 29 | hipchat (0.7.0) 30 | httparty 31 | httparty 32 | httparty (0.10.0) 33 | multi_json (~> 1.0) 34 | multi_xml 35 | listen (0.7.2) 36 | lumberjack (1.0.2) 37 | method_source (0.8.1) 38 | multi_json (1.5.0) 39 | multi_xml (0.5.2) 40 | net-scp (1.0.4) 41 | net-ssh (>= 1.99.1) 42 | net-sftp (2.0.5) 43 | net-ssh (>= 2.0.9) 44 | net-ssh (2.6.3) 45 | net-ssh-gateway (1.1.0) 46 | net-ssh (>= 1.99.1) 47 | pry (0.9.11.4) 48 | coderay (~> 1.0.5) 49 | method_source (~> 0.8) 50 | slop (~> 3.4) 51 | railsless-deploy (1.0.2) 52 | rb-fsevent (0.9.3) 53 | rb-readline (0.4.2) 54 | slop (3.4.3) 55 | thor (0.17.0) 56 | 57 | PLATFORMS 58 | ruby 59 | 60 | DEPENDENCIES 61 | capistrano (~> 2.13) 62 | capistrano-ext (~> 1.2) 63 | colored (~> 1.2) 64 | growl (~> 1.0) 65 | guard (~> 1.5) 66 | guard-phpcs 67 | guard-phpmd (~> 0.0.2) 68 | guard-phpunit (~> 0.1.4) 69 | guard-shell (~> 0.5.1) 70 | hipchat (~> 0.7.0) 71 | railsless-deploy (~> 1.0) 72 | rb-fsevent (~> 0.9.2) 73 | rb-readline 74 | -------------------------------------------------------------------------------- /Gruntfile.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Grunt configuration - http://gruntjs.com 3 | */ 4 | 5 | 6 | module.exports = function (grunt) { 7 | 'use strict'; 8 | require('time-grunt')(grunt); 9 | 10 | // Project configuration. 11 | grunt.initConfig({ 12 | pkg: grunt.file.readJSON('package.json'), 13 | 14 | // files to be used (minimatch syntax) - https://github.com/isaacs/minimatch 15 | files: { 16 | jshint: [ 17 | 'Gruntfile.js', 18 | 'web/js/**/*.js' 19 | ] 20 | }, 21 | 22 | dirs: { 23 | phpcs: [ 24 | 'app/*.php', 25 | 'src', 26 | 'tests' 27 | ], 28 | phpmd: [ 29 | 'src', 30 | 'tests' 31 | ] 32 | }, 33 | 34 | // https://github.com/gruntjs/grunt-contrib-jshint 35 | jshint: { 36 | options: { 37 | jshintrc: '.jshintrc' 38 | }, 39 | files: { 40 | src: '<%= files.jshint %>' 41 | } 42 | }, 43 | 44 | // https://github.com/jharding/grunt-exec 45 | exec: { 46 | 47 | 'mac-paths': { 48 | cmd: function (user) { 49 | user = user || '_www'; 50 | return ('mkdir -p app/cache ' + 51 | '&& mkdir -p app/log ' + 52 | '&& sudo chmod +a "' + user + ' allow delete,write,append,file_inherit,directory_inherit" app/cache app/log ' + 53 | '&& sudo chmod +a "`whoami` allow delete,write,append,file_inherit,directory_inherit" app/cache app/log'); 54 | } 55 | }, 56 | 'ubuntu-paths': { 57 | cmd: function (user) { 58 | user = user || 'www-data'; 59 | return ('mkdir -p app/cache ' + 60 | '&& mkdir -p app/log ' + 61 | '&& sudo setfacl -R -m u:'+user+':rwx -m u:`whoami`:rwx app/cache app/log ' + 62 | '&& sudo setfacl -dR -m u:'+user+':rwx -m u:`whoami`:rwx app/cache app/log '); 63 | } 64 | }, 65 | // https://github.com/sebastianbergmann/phpunit/ 66 | 'phpunit': { 67 | cmd: 'vendor/bin/phpunit -c phpunit.xml.dist' 68 | }, 69 | 70 | 'phpunit-ci': { 71 | cmd: 'vendor/bin/phpunit -c phpunit.xml.dist ' + 72 | '--coverage-html build/coverage ' + 73 | '--coverage-clover build/logs/clover.xml ' + 74 | '--log-junit build/logs/junit.xml' 75 | }, 76 | 77 | 'phpunit-travis': { 78 | cmd: 'vendor/bin/phpunit --coverage-clover build/logs/clover.xml' 79 | }, 80 | 81 | // http://www.squizlabs.com/php-codesniffer 82 | 'phpcs': { 83 | cmd: function () { 84 | return 'mkdir -p build/reports && vendor/bin/phpcs --report=full --report=checkstyle --report-checkstyle=build/reports/checkstyle.xml ' + 85 | '--standard=PSR2 --extensions=php ' + grunt.config.data.dirs.phpcs.join(' '); 86 | } 87 | }, 88 | 89 | 'phpcs-travis': { 90 | cmd: function () { 91 | return 'vendor/bin/phpcs --standard=PSR2 --extensions=php ' + grunt.config.data.dirs.phpcs.join(' '); 92 | } 93 | }, 94 | 95 | // http://phpmd.org/documentation/index.html 96 | 'phpmd': { 97 | cmd: function () { 98 | return 'vendor/bin/phpmd ' + grunt.config.data.dirs.phpmd.join(',') + ' text phpmd.xml --suffixes=php'; 99 | } 100 | }, 101 | 102 | 'phpmd-ci': { 103 | cmd: function () { 104 | return 'mkdir -p build/reports && vendor/bin/phpmd ' + grunt.config.data.dirs.phpmd.join(',') + ' xml phpmd.xml --suffixes=php --reportfile build/reports/phpmd.xml'; 105 | } 106 | }, 107 | 108 | 'composer-install': { 109 | cmd: 'composer --dev install' 110 | }, 111 | 112 | 'ci-prepare': { 113 | cmd: 'curl -s https://getcomposer.org/installer | php' + 114 | '&& php composer.phar --dev install' + 115 | '&& rm composer.phar ' + 116 | '&& mkdir -p app/log ' + 117 | '&& mkdir -p app/cache ' + 118 | '&& rm -rf app/cache/*' 119 | }, 120 | 121 | 'npm-install': { 122 | cmd: 'npm install' 123 | }, 124 | 125 | 'bundle-install': { 126 | cmd: 'bundle install' 127 | } 128 | } 129 | } 130 | ) 131 | ; 132 | 133 | // Tasks from NPM 134 | grunt.loadNpmTasks('grunt-exec'); 135 | grunt.loadNpmTasks('grunt-contrib-jshint'); 136 | 137 | // Task aliases 138 | grunt.registerTask('ubuntu-paths', 'Set up log and cache paths on a Mac', 'exec:ubuntu-paths'); 139 | grunt.registerTask('mac-paths', 'Set up log and cache paths on a Mac', 'exec:mac-paths'); 140 | grunt.registerTask('phpunit', 'PHP Unittests', 'exec:phpunit'); 141 | grunt.registerTask('phpunit-ci', 'PHP Unittests for CI', 'exec:phpunit-ci'); 142 | grunt.registerTask('phpcs', 'PHP Codesniffer', 'exec:phpcs'); 143 | grunt.registerTask('phpmd', 'PHP Mess Detector', 'exec:phpmd'); 144 | grunt.registerTask('install', 'Install all project dependencies', ['exec:npm-install', 'exec:composer-install', 'exec:bundle-install']); 145 | grunt.registerTask('default', ['qa']); 146 | grunt.registerTask('qa', ['phpunit', 'phpcs', 'phpmd']); 147 | grunt.registerTask('jenkins', ['exec:ci-prepare', 'phpunit-ci', 'phpcs', 'exec:phpmd-ci']); 148 | grunt.registerTask('travis', ['exec:composer-install', 'exec:phpunit-travis', 'exec:phpcs-travis', 'phpmd']); 149 | } 150 | ; 151 | -------------------------------------------------------------------------------- /Guardfile: -------------------------------------------------------------------------------- 1 | # Guard - https://github.com/guard/guard 2 | # 3 | # Usage: 4 | # bundle exec guard 5 | # --------------------------------------------------------------- 6 | 7 | 8 | ## PHP ## 9 | guard 'phpunit', :tests_path => 'tests', :all_on_start => false, :all_after_pass => false, :cli => '--colors --verbose' do 10 | watch(%r{^(app/.+)\.php}) { |m| "tests/#{m[1]}Test.php" } 11 | watch(%r{^(src/.+)\.php}) { |m| "tests/#{m[1]}Test.php" } 12 | watch(%r{^tests/.*\.php$}) 13 | end 14 | 15 | guard 'phpmd', :rules => 'phpmd.xml' do 16 | watch(%r{^app/\w*\.php$}) 17 | watch(%r{^src/.*\.php$}) 18 | watch(%r{^tests/.*\.php$}) 19 | end 20 | 21 | guard 'phpcs', :standard => 'PSR2' do 22 | watch(%r{^app/\w*\.php$}) 23 | watch(%r{^src/.*\.php$}) 24 | watch(%r{^tests/.*\.php$}) 25 | end 26 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013-2014 Aptoma AS 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is furnished 8 | to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Silex Bootstrap 2 | =============== 3 | [![Build Status](https://travis-ci.org/aptoma/silex-bootstrap.svg)](https://travis-ci.org/aptoma/silex-bootstrap) 4 | [![Coverage Status](https://img.shields.io/coveralls/aptoma/silex-bootstrap.svg)](https://coveralls.io/r/aptoma/silex-bootstrap) 5 | 6 | 7 | This repository provides a starting point for building Silex applications. It 8 | includes: 9 | 10 | - A directory structure 11 | - Stubs and default configuration 12 | - CI/QA config 13 | 14 | This repo is complemented by [aptoma/silex-extras](https://github.com/aptoma/silex-extras), 15 | which contains various helpers, base classes and services. The idea is that you will never 16 | need to do a rebase of Silex Bootstrap, as all significant updates will be handled by Silex 17 | Extras, which you can simply update through Composer. In fact, you should delete the `.git` 18 | directory after downloading the project. 19 | 20 | To start a new project, run: 21 | 22 | $ composer create-project aptoma/silex-bootstrap 23 | 24 | To get started, you probably want to have a look at `app/app.php` to see the 25 | config bootstrap, and then have a look `app/routing.php`, 26 | `src/App/Controller/DefaultController.php` and `src/App/views` for some basic 27 | actions. 28 | 29 | This repo contains a few example files and comments like this one, that should 30 | obviously not remain within the project. When ready, delete everything in this 31 | section, and update the following sections according to your project. 32 | 33 | Project Name 34 | ============ 35 | 36 | Tech Lead: name 37 | 38 | ## Product Description 39 | 40 | ### Purpose 41 | 42 | A clearly defined and documented purpose and lifetime 43 | 44 | ### Technologies 45 | 46 | A description of technologies and components/modules 47 | 48 | ### Integration with other company products 49 | 50 | A description of other company products in use/integrated with 51 | 52 | ### External Dependencies 53 | 54 | A description of external dependencies (both people and systems) 55 | 56 | ### Roadmap 57 | 58 | Roadmap and maintenance plan 59 | 60 | 61 | ## Folder Outline 62 | 63 | app # Config and bootstrap 64 | src # Application code and views 65 | tests # All tests 66 | web # Public doc root. Front controller and assets. 67 | 68 | During installation and CI these folders may also be created: 69 | 70 | build # Reports from various build tasks 71 | node_modules # Dependencies managed by npm 72 | vendor # Dependencies managed by Composer 73 | 74 | By default, logs and cache is written to `app/log` and `app/cache` respectively. 75 | 76 | ## Installation 77 | 78 | Describe how to install 79 | 80 | 81 | ## Development 82 | 83 | Install dependencies (requires [Composer](https://getcomposer.org/download), 84 | [NPM](https://github.com/joyent/node/wiki/Installing-Node.js-via-package- 85 | manager) and [Bundler](http://gembundler.com/) to be installed globally) 86 | 87 | $ composer --dev install 88 | $ npm install 89 | $ bundle install 90 | 91 | You also need to install jshint and grunt-cli globally: 92 | 93 | $ npm install -g jshint@0.9.1 94 | $ npm install -g grunt-cli@0.1.6 95 | 96 | Set up paths for logging and caching: 97 | 98 | $ grunt mac-paths # or ubuntu-paths if you are using ubuntu 99 | # OR if your web server doesn't run as the default _www 100 | $ grunt exec:mac-paths: 101 | # OR grunt exec:ubuntu-paths: 102 | 103 | To watch your project, run `bundle exec guard`; 104 | 105 | ### Permissions 106 | 107 | For local development, you need to setup cache and log dirs: 108 | 109 | mkdir -p app/cache 110 | mkdir -p app/log 111 | 112 | These directories must be writable both by the web server and the command line user. 113 | On a UNIX system, if your web server user is different from your command line user, 114 | you can run the following commands just once in your project to ensure that permissions 115 | will be setup properly. Change www-data to your web server user: 116 | 117 | #### 1. Using ACL on a system that supports chmod +a (Typically MAC OS X) 118 | 119 | Many systems allow you to use the chmod +a command. Try this first, and if you get an error - try the next method: 120 | 121 | $ sudo chmod +a "_www allow delete,write,append,file_inherit,directory_inherit" app/cache app/log 122 | $ sudo chmod +a "`whoami` allow delete,write,append,file_inherit,directory_inherit" app/cache app/log 123 | 124 | #### 2. Using Acl on a system that does not support chmod +a (Typically Ubuntu) 125 | 126 | Some systems don't support chmod +a, but do support another utility called setfacl. 127 | You may need to [enable ACL support](https://help.ubuntu.com/community/FilePermissionsACLs) 128 | on your partition and install setfacl before using it (as is the case with Ubuntu), like so: 129 | 130 | $ sudo setfacl -R -m u:www-data:rwx -m u:`whoami`:rwx app/cache app/logs 131 | $ sudo setfacl -dR -m u:www-data:rwx -m u:`whoami`:rwx app/cache app/logs 132 | 133 | 134 | Describe other stuff needed for local development 135 | 136 | ## Testing 137 | 138 | PHP Tests are powered by PHPUnit. You have several options. 139 | 140 | - Run `phpunit` if PHPUnit is installed globally. 141 | - Run `bin/vendor/phpunit` to run version installed by Composer. This ensures 142 | that you are running a version compatible with the test suite. 143 | - Run `grunt phpunit`, basically just a wrapper for `bin/vendor/phpunit` 144 | - Run `bundle exec guard` to watch files and run tests when source or test files 145 | change 146 | 147 | JavaScript testing is under development. 148 | 149 | ## Contributing 150 | 151 | Describe guidelines for contributing. 152 | 153 | To contribute to _this_ project, simply create a feature branch, do your thing, 154 | and open a pull request. If you do lot's of stuff in your project that you think 155 | should be easily backported to older `silex-bootstrap` based projects, consider 156 | extracting them to separate packages that can be managed by Composer, or add them to 157 | [silex-extras](https://github.com/aptoma/silex-extras). 158 | -------------------------------------------------------------------------------- /app/app.php: -------------------------------------------------------------------------------- 1 | true, 8 | 'timer.start' => $startTime, 9 | 'monolog.name' => 'silex-bootstrap', 10 | 'monolog.level' => \Monolog\Logger::DEBUG, 11 | 'monolog.logfile' => __DIR__ . '/log/app.log', 12 | 'twig.path' => __DIR__ . '/../src/App/views', 13 | 'twig.options' => array( 14 | 'cache' => __DIR__ . '/cache/twig', 15 | ), 16 | ); 17 | 18 | // Apply custom config if available 19 | if (file_exists(__DIR__ . '/config.php')) { 20 | include __DIR__ . '/config.php'; 21 | } 22 | 23 | // Initialize Application 24 | $app = new App\Silex\Application($config); 25 | 26 | /** 27 | * Register controllers as services 28 | * @link http://silex.sensiolabs.org/doc/providers/service_controller.html 29 | **/ 30 | $app['app.default_controller'] = $app->share( 31 | function () use ($app) { 32 | return new \App\Controller\DefaultController($app['twig'], $app['logger']); 33 | } 34 | ); 35 | 36 | // Map routes to controllers 37 | include __DIR__ . '/routing.php'; 38 | 39 | return $app; 40 | -------------------------------------------------------------------------------- /app/deploy_config/README.md: -------------------------------------------------------------------------------- 1 | Deploy Config 2 | ============= 3 | 4 | This folder should contain any config that is specific to various deploys. 5 | Typically, every customer will have certain custom settings, like API urls, 6 | and maybe feature flags. 7 | 8 | During deploy, the customer file will be copied to `app/config.php`. 9 | 10 | You can create your own `app/config.php` to tweak settings for your local 11 | environment. This file is ignored by git. 12 | -------------------------------------------------------------------------------- /app/deploy_config/config-example.php: -------------------------------------------------------------------------------- 1 | get('/', 'app.default_controller:indexAction'); 12 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "aptoma/silex-bootstrap", 3 | "description": "Basic bootstrap for Silex based projects. Use as template for getting started quickly.", 4 | "license": "MIT", 5 | "keywords": ["Silex", "Bootstrap"], 6 | "authors": [ 7 | { 8 | "name": "Gunnar Lium", 9 | "email": "gunnar@aptoma.com" 10 | } 11 | ], 12 | "autoload": { 13 | "psr-0": { 14 | "App": "src/", 15 | "Aptoma": "src/" 16 | } 17 | }, 18 | "require": { 19 | "silex/silex": "~1.1", 20 | "aptoma/silex-extras": "~1.2", 21 | "monolog/monolog": "~1.3", 22 | "symfony/twig-bridge": "~2.3", 23 | "symfony/monolog-bridge": "~2.3", 24 | "symfony/browser-kit": "~2.3", 25 | "symfony/css-selector": "~2.3" 26 | }, 27 | "require-dev": { 28 | "phpunit/phpunit": "~3.7", 29 | "pdepend/pdepend": "~1.1", 30 | "phpmd/phpmd": "~1.4", 31 | "squizlabs/php_codesniffer": "~1.4, <1.5", 32 | "codeclimate/php-test-reporter": "dev-master", 33 | "satooshi/php-coveralls": "~0.6" 34 | }, 35 | "minimum-stability": "stable" 36 | } 37 | -------------------------------------------------------------------------------- /composer.lock: -------------------------------------------------------------------------------- 1 | { 2 | "_readme": [ 3 | "This file locks the dependencies of your project to a known state", 4 | "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", 5 | "This file is @generated automatically" 6 | ], 7 | "hash": "d4ab10c680c3f8dd70fc4ad3c2ac360a", 8 | "packages": [ 9 | { 10 | "name": "aptoma/silex-extras", 11 | "version": "1.2.1", 12 | "source": { 13 | "type": "git", 14 | "url": "https://github.com/aptoma/silex-extras.git", 15 | "reference": "6e1f9f3e0e42a43013a8c6921188443c750b9a27" 16 | }, 17 | "dist": { 18 | "type": "zip", 19 | "url": "https://api.github.com/repos/aptoma/silex-extras/zipball/6e1f9f3e0e42a43013a8c6921188443c750b9a27", 20 | "reference": "6e1f9f3e0e42a43013a8c6921188443c750b9a27", 21 | "shasum": "" 22 | }, 23 | "require": { 24 | "monolog/monolog": "~1.4", 25 | "silex/silex": "~1.0", 26 | "symfony/browser-kit": "~2.2", 27 | "symfony/css-selector": "~2.2", 28 | "symfony/filesystem": "~2.2", 29 | "symfony/finder": "~2.2", 30 | "symfony/monolog-bridge": "~2.2", 31 | "symfony/security": "~2.3" 32 | }, 33 | "require-dev": { 34 | "guzzle/guzzle": "~3.7", 35 | "guzzle/silex-provider": "~1.0", 36 | "phpmd/phpmd": "~1.4", 37 | "phpunit/phpunit": "~3.7", 38 | "squizlabs/php_codesniffer": "~1.4, <1.5", 39 | "twig/twig": "~1.6" 40 | }, 41 | "suggest": { 42 | "doctrine/common": "In order to use Doctrine\\Common\\Cache compatible Memcached", 43 | "ext-ftp": "Allows using Ftp services.", 44 | "guzzle/guzzle": "In order to use Guzzle service provider", 45 | "guzzle/silex-provider": "In order to use Guzzle service provider" 46 | }, 47 | "type": "library", 48 | "autoload": { 49 | "psr-0": { 50 | "Aptoma": "src/" 51 | } 52 | }, 53 | "notification-url": "https://packagist.org/downloads/", 54 | "license": [ 55 | "MIT" 56 | ], 57 | "authors": [ 58 | { 59 | "name": "Gunnar Lium", 60 | "email": "gunnar@aptoma.com", 61 | "homepage": "https://github.com/gunnarlium", 62 | "role": "Developer" 63 | } 64 | ], 65 | "description": "Collection of common stuff for Silex powered applications", 66 | "homepage": "https://github.com/aptoma/silex-extras", 67 | "keywords": [ 68 | "silex" 69 | ], 70 | "time": "2014-02-10 12:46:01" 71 | }, 72 | { 73 | "name": "monolog/monolog", 74 | "version": "1.7.0", 75 | "source": { 76 | "type": "git", 77 | "url": "https://github.com/Seldaek/monolog.git", 78 | "reference": "6225b22de9dcf36546be3a0b2fa8e3d986153f57" 79 | }, 80 | "dist": { 81 | "type": "zip", 82 | "url": "https://api.github.com/repos/Seldaek/monolog/zipball/6225b22de9dcf36546be3a0b2fa8e3d986153f57", 83 | "reference": "6225b22de9dcf36546be3a0b2fa8e3d986153f57", 84 | "shasum": "" 85 | }, 86 | "require": { 87 | "php": ">=5.3.0", 88 | "psr/log": "~1.0" 89 | }, 90 | "require-dev": { 91 | "aws/aws-sdk-php": "~2.4.8", 92 | "doctrine/couchdb": "dev-master", 93 | "mlehner/gelf-php": "1.0.*", 94 | "phpunit/phpunit": "~3.7.0", 95 | "raven/raven": "0.5.*", 96 | "ruflin/elastica": "0.90.*" 97 | }, 98 | "suggest": { 99 | "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", 100 | "doctrine/couchdb": "Allow sending log messages to a CouchDB server", 101 | "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", 102 | "ext-mongo": "Allow sending log messages to a MongoDB server", 103 | "mlehner/gelf-php": "Allow sending log messages to a GrayLog2 server", 104 | "raven/raven": "Allow sending log messages to a Sentry server", 105 | "ruflin/elastica": "Allow sending log messages to an Elastic Search server" 106 | }, 107 | "type": "library", 108 | "extra": { 109 | "branch-alias": { 110 | "dev-master": "1.7.x-dev" 111 | } 112 | }, 113 | "autoload": { 114 | "psr-0": { 115 | "Monolog": "src/" 116 | } 117 | }, 118 | "notification-url": "https://packagist.org/downloads/", 119 | "license": [ 120 | "MIT" 121 | ], 122 | "authors": [ 123 | { 124 | "name": "Jordi Boggiano", 125 | "email": "j.boggiano@seld.be", 126 | "homepage": "http://seld.be", 127 | "role": "Developer" 128 | } 129 | ], 130 | "description": "Sends your logs to files, sockets, inboxes, databases and various web services", 131 | "homepage": "http://github.com/Seldaek/monolog", 132 | "keywords": [ 133 | "log", 134 | "logging", 135 | "psr-3" 136 | ], 137 | "time": "2013-11-14 19:48:31" 138 | }, 139 | { 140 | "name": "pimple/pimple", 141 | "version": "v1.1.1", 142 | "source": { 143 | "type": "git", 144 | "url": "https://github.com/fabpot/Pimple.git", 145 | "reference": "2019c145fe393923f3441b23f29bbdfaa5c58c4d" 146 | }, 147 | "dist": { 148 | "type": "zip", 149 | "url": "https://api.github.com/repos/fabpot/Pimple/zipball/2019c145fe393923f3441b23f29bbdfaa5c58c4d", 150 | "reference": "2019c145fe393923f3441b23f29bbdfaa5c58c4d", 151 | "shasum": "" 152 | }, 153 | "require": { 154 | "php": ">=5.3.0" 155 | }, 156 | "type": "library", 157 | "extra": { 158 | "branch-alias": { 159 | "dev-master": "1.1.x-dev" 160 | } 161 | }, 162 | "autoload": { 163 | "psr-0": { 164 | "Pimple": "lib/" 165 | } 166 | }, 167 | "notification-url": "https://packagist.org/downloads/", 168 | "license": [ 169 | "MIT" 170 | ], 171 | "authors": [ 172 | { 173 | "name": "Fabien Potencier", 174 | "email": "fabien@symfony.com", 175 | "homepage": "http://fabien.potencier.org", 176 | "role": "Lead Developer" 177 | } 178 | ], 179 | "description": "Pimple is a simple Dependency Injection Container for PHP 5.3", 180 | "homepage": "http://pimple.sensiolabs.org", 181 | "keywords": [ 182 | "container", 183 | "dependency injection" 184 | ], 185 | "time": "2013-11-22 08:30:29" 186 | }, 187 | { 188 | "name": "psr/log", 189 | "version": "1.0.0", 190 | "source": { 191 | "type": "git", 192 | "url": "https://github.com/php-fig/log.git", 193 | "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b" 194 | }, 195 | "dist": { 196 | "type": "zip", 197 | "url": "https://api.github.com/repos/php-fig/log/zipball/fe0936ee26643249e916849d48e3a51d5f5e278b", 198 | "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b", 199 | "shasum": "" 200 | }, 201 | "type": "library", 202 | "autoload": { 203 | "psr-0": { 204 | "Psr\\Log\\": "" 205 | } 206 | }, 207 | "notification-url": "https://packagist.org/downloads/", 208 | "license": [ 209 | "MIT" 210 | ], 211 | "authors": [ 212 | { 213 | "name": "PHP-FIG", 214 | "homepage": "http://www.php-fig.org/" 215 | } 216 | ], 217 | "description": "Common interface for logging libraries", 218 | "keywords": [ 219 | "log", 220 | "psr", 221 | "psr-3" 222 | ], 223 | "time": "2012-12-21 11:40:51" 224 | }, 225 | { 226 | "name": "silex/silex", 227 | "version": "v1.1.2", 228 | "source": { 229 | "type": "git", 230 | "url": "https://github.com/silexphp/Silex.git", 231 | "reference": "47cc7d6545450ef8a91f50c04e8c7b3b04fceae9" 232 | }, 233 | "dist": { 234 | "type": "zip", 235 | "url": "https://api.github.com/repos/silexphp/Silex/zipball/47cc7d6545450ef8a91f50c04e8c7b3b04fceae9", 236 | "reference": "47cc7d6545450ef8a91f50c04e8c7b3b04fceae9", 237 | "shasum": "" 238 | }, 239 | "require": { 240 | "php": ">=5.3.3", 241 | "pimple/pimple": "~1.0", 242 | "symfony/event-dispatcher": ">=2.3,<2.5-dev", 243 | "symfony/http-foundation": ">=2.3,<2.5-dev", 244 | "symfony/http-kernel": ">=2.3,<2.5-dev", 245 | "symfony/routing": ">=2.3,<2.5-dev" 246 | }, 247 | "require-dev": { 248 | "doctrine/dbal": ">=2.2.0,<2.4.0-dev", 249 | "monolog/monolog": "~1.4,>=1.4.1", 250 | "phpunit/phpunit": "~3.7", 251 | "swiftmailer/swiftmailer": "5.*", 252 | "symfony/browser-kit": ">=2.3,<2.5-dev", 253 | "symfony/config": ">=2.3,<2.5-dev", 254 | "symfony/css-selector": ">=2.3,<2.5-dev", 255 | "symfony/debug": ">=2.3,<2.5-dev", 256 | "symfony/dom-crawler": ">=2.3,<2.5-dev", 257 | "symfony/finder": ">=2.3,<2.5-dev", 258 | "symfony/form": ">=2.3,<2.5-dev", 259 | "symfony/locale": ">=2.3,<2.5-dev", 260 | "symfony/monolog-bridge": ">=2.3,<2.5-dev", 261 | "symfony/options-resolver": ">=2.3,<2.5-dev", 262 | "symfony/process": ">=2.3,<2.5-dev", 263 | "symfony/security": ">=2.3,<2.5-dev", 264 | "symfony/serializer": ">=2.3,<2.5-dev", 265 | "symfony/translation": ">=2.3,<2.5-dev", 266 | "symfony/twig-bridge": ">=2.3,<2.5-dev", 267 | "symfony/validator": ">=2.3,<2.5-dev", 268 | "twig/twig": ">=1.8.0,<2.0-dev" 269 | }, 270 | "suggest": { 271 | "symfony/browser-kit": ">=2.3,<2.5-dev", 272 | "symfony/css-selector": ">=2.3,<2.5-dev", 273 | "symfony/dom-crawler": ">=2.3,<2.5-dev", 274 | "symfony/form": ">=2.3,<2.5-dev" 275 | }, 276 | "type": "library", 277 | "extra": { 278 | "branch-alias": { 279 | "dev-master": "1.1.x-dev" 280 | } 281 | }, 282 | "autoload": { 283 | "psr-0": { 284 | "Silex": "src/" 285 | } 286 | }, 287 | "notification-url": "https://packagist.org/downloads/", 288 | "license": [ 289 | "MIT" 290 | ], 291 | "authors": [ 292 | { 293 | "name": "Fabien Potencier", 294 | "email": "fabien@symfony.com" 295 | }, 296 | { 297 | "name": "Igor Wiedler", 298 | "email": "igor@wiedler.ch", 299 | "homepage": "http://wiedler.ch/igor/" 300 | } 301 | ], 302 | "description": "The PHP micro-framework based on the Symfony2 Components", 303 | "homepage": "http://silex.sensiolabs.org", 304 | "keywords": [ 305 | "microframework" 306 | ], 307 | "time": "2013-10-30 08:53:26" 308 | }, 309 | { 310 | "name": "symfony/browser-kit", 311 | "version": "v2.4.1", 312 | "target-dir": "Symfony/Component/BrowserKit", 313 | "source": { 314 | "type": "git", 315 | "url": "https://github.com/symfony/BrowserKit.git", 316 | "reference": "0248b2dfc9cd6b259555d232eedfb1283eb496c3" 317 | }, 318 | "dist": { 319 | "type": "zip", 320 | "url": "https://api.github.com/repos/symfony/BrowserKit/zipball/0248b2dfc9cd6b259555d232eedfb1283eb496c3", 321 | "reference": "0248b2dfc9cd6b259555d232eedfb1283eb496c3", 322 | "shasum": "" 323 | }, 324 | "require": { 325 | "php": ">=5.3.3", 326 | "symfony/dom-crawler": "~2.0" 327 | }, 328 | "require-dev": { 329 | "symfony/css-selector": "~2.0", 330 | "symfony/process": "~2.0" 331 | }, 332 | "suggest": { 333 | "symfony/process": "" 334 | }, 335 | "type": "library", 336 | "extra": { 337 | "branch-alias": { 338 | "dev-master": "2.4-dev" 339 | } 340 | }, 341 | "autoload": { 342 | "psr-0": { 343 | "Symfony\\Component\\BrowserKit\\": "" 344 | } 345 | }, 346 | "notification-url": "https://packagist.org/downloads/", 347 | "license": [ 348 | "MIT" 349 | ], 350 | "authors": [ 351 | { 352 | "name": "Fabien Potencier", 353 | "email": "fabien@symfony.com" 354 | }, 355 | { 356 | "name": "Symfony Community", 357 | "homepage": "http://symfony.com/contributors" 358 | } 359 | ], 360 | "description": "Symfony BrowserKit Component", 361 | "homepage": "http://symfony.com", 362 | "time": "2013-12-28 21:39:51" 363 | }, 364 | { 365 | "name": "symfony/css-selector", 366 | "version": "v2.4.1", 367 | "target-dir": "Symfony/Component/CssSelector", 368 | "source": { 369 | "type": "git", 370 | "url": "https://github.com/symfony/CssSelector.git", 371 | "reference": "352552da1f50a79f6a6fa427e4a85ee2ea1945f6" 372 | }, 373 | "dist": { 374 | "type": "zip", 375 | "url": "https://api.github.com/repos/symfony/CssSelector/zipball/352552da1f50a79f6a6fa427e4a85ee2ea1945f6", 376 | "reference": "352552da1f50a79f6a6fa427e4a85ee2ea1945f6", 377 | "shasum": "" 378 | }, 379 | "require": { 380 | "php": ">=5.3.3" 381 | }, 382 | "type": "library", 383 | "extra": { 384 | "branch-alias": { 385 | "dev-master": "2.4-dev" 386 | } 387 | }, 388 | "autoload": { 389 | "psr-0": { 390 | "Symfony\\Component\\CssSelector\\": "" 391 | } 392 | }, 393 | "notification-url": "https://packagist.org/downloads/", 394 | "license": [ 395 | "MIT" 396 | ], 397 | "authors": [ 398 | { 399 | "name": "Fabien Potencier", 400 | "email": "fabien@symfony.com" 401 | }, 402 | { 403 | "name": "Symfony Community", 404 | "homepage": "http://symfony.com/contributors" 405 | }, 406 | { 407 | "name": "Jean-François Simon", 408 | "email": "jeanfrancois.simon@sensiolabs.com" 409 | } 410 | ], 411 | "description": "Symfony CssSelector Component", 412 | "homepage": "http://symfony.com", 413 | "time": "2014-01-01 08:14:50" 414 | }, 415 | { 416 | "name": "symfony/debug", 417 | "version": "v2.4.1", 418 | "target-dir": "Symfony/Component/Debug", 419 | "source": { 420 | "type": "git", 421 | "url": "https://github.com/symfony/Debug.git", 422 | "reference": "74110be5ec681a83fc5bd66dd5fd29fe85fe9c1f" 423 | }, 424 | "dist": { 425 | "type": "zip", 426 | "url": "https://api.github.com/repos/symfony/Debug/zipball/74110be5ec681a83fc5bd66dd5fd29fe85fe9c1f", 427 | "reference": "74110be5ec681a83fc5bd66dd5fd29fe85fe9c1f", 428 | "shasum": "" 429 | }, 430 | "require": { 431 | "php": ">=5.3.3" 432 | }, 433 | "require-dev": { 434 | "symfony/http-foundation": "~2.1", 435 | "symfony/http-kernel": "~2.1" 436 | }, 437 | "suggest": { 438 | "symfony/http-foundation": "", 439 | "symfony/http-kernel": "" 440 | }, 441 | "type": "library", 442 | "extra": { 443 | "branch-alias": { 444 | "dev-master": "2.4-dev" 445 | } 446 | }, 447 | "autoload": { 448 | "psr-0": { 449 | "Symfony\\Component\\Debug\\": "" 450 | } 451 | }, 452 | "notification-url": "https://packagist.org/downloads/", 453 | "license": [ 454 | "MIT" 455 | ], 456 | "authors": [ 457 | { 458 | "name": "Fabien Potencier", 459 | "email": "fabien@symfony.com" 460 | }, 461 | { 462 | "name": "Symfony Community", 463 | "homepage": "http://symfony.com/contributors" 464 | } 465 | ], 466 | "description": "Symfony Debug Component", 467 | "homepage": "http://symfony.com", 468 | "time": "2014-01-01 09:02:49" 469 | }, 470 | { 471 | "name": "symfony/dom-crawler", 472 | "version": "v2.4.1", 473 | "target-dir": "Symfony/Component/DomCrawler", 474 | "source": { 475 | "type": "git", 476 | "url": "https://github.com/symfony/DomCrawler.git", 477 | "reference": "58e85928ad277c67102a41a046160de86df44d55" 478 | }, 479 | "dist": { 480 | "type": "zip", 481 | "url": "https://api.github.com/repos/symfony/DomCrawler/zipball/58e85928ad277c67102a41a046160de86df44d55", 482 | "reference": "58e85928ad277c67102a41a046160de86df44d55", 483 | "shasum": "" 484 | }, 485 | "require": { 486 | "php": ">=5.3.3" 487 | }, 488 | "require-dev": { 489 | "symfony/css-selector": "~2.0" 490 | }, 491 | "suggest": { 492 | "symfony/css-selector": "" 493 | }, 494 | "type": "library", 495 | "extra": { 496 | "branch-alias": { 497 | "dev-master": "2.4-dev" 498 | } 499 | }, 500 | "autoload": { 501 | "psr-0": { 502 | "Symfony\\Component\\DomCrawler\\": "" 503 | } 504 | }, 505 | "notification-url": "https://packagist.org/downloads/", 506 | "license": [ 507 | "MIT" 508 | ], 509 | "authors": [ 510 | { 511 | "name": "Fabien Potencier", 512 | "email": "fabien@symfony.com" 513 | }, 514 | { 515 | "name": "Symfony Community", 516 | "homepage": "http://symfony.com/contributors" 517 | } 518 | ], 519 | "description": "Symfony DomCrawler Component", 520 | "homepage": "http://symfony.com", 521 | "time": "2013-12-29 20:33:52" 522 | }, 523 | { 524 | "name": "symfony/event-dispatcher", 525 | "version": "v2.4.1", 526 | "target-dir": "Symfony/Component/EventDispatcher", 527 | "source": { 528 | "type": "git", 529 | "url": "https://github.com/symfony/EventDispatcher.git", 530 | "reference": "e3ba42f6a70554ed05749e61b829550f6ac33601" 531 | }, 532 | "dist": { 533 | "type": "zip", 534 | "url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/e3ba42f6a70554ed05749e61b829550f6ac33601", 535 | "reference": "e3ba42f6a70554ed05749e61b829550f6ac33601", 536 | "shasum": "" 537 | }, 538 | "require": { 539 | "php": ">=5.3.3" 540 | }, 541 | "require-dev": { 542 | "symfony/dependency-injection": "~2.0" 543 | }, 544 | "suggest": { 545 | "symfony/dependency-injection": "", 546 | "symfony/http-kernel": "" 547 | }, 548 | "type": "library", 549 | "extra": { 550 | "branch-alias": { 551 | "dev-master": "2.4-dev" 552 | } 553 | }, 554 | "autoload": { 555 | "psr-0": { 556 | "Symfony\\Component\\EventDispatcher\\": "" 557 | } 558 | }, 559 | "notification-url": "https://packagist.org/downloads/", 560 | "license": [ 561 | "MIT" 562 | ], 563 | "authors": [ 564 | { 565 | "name": "Fabien Potencier", 566 | "email": "fabien@symfony.com" 567 | }, 568 | { 569 | "name": "Symfony Community", 570 | "homepage": "http://symfony.com/contributors" 571 | } 572 | ], 573 | "description": "Symfony EventDispatcher Component", 574 | "homepage": "http://symfony.com", 575 | "time": "2013-12-28 08:12:03" 576 | }, 577 | { 578 | "name": "symfony/filesystem", 579 | "version": "v2.4.1", 580 | "target-dir": "Symfony/Component/Filesystem", 581 | "source": { 582 | "type": "git", 583 | "url": "https://github.com/symfony/Filesystem.git", 584 | "reference": "b3c3b5a8108b3e5d604dc23241b4ea84a067fc78" 585 | }, 586 | "dist": { 587 | "type": "zip", 588 | "url": "https://api.github.com/repos/symfony/Filesystem/zipball/b3c3b5a8108b3e5d604dc23241b4ea84a067fc78", 589 | "reference": "b3c3b5a8108b3e5d604dc23241b4ea84a067fc78", 590 | "shasum": "" 591 | }, 592 | "require": { 593 | "php": ">=5.3.3" 594 | }, 595 | "type": "library", 596 | "extra": { 597 | "branch-alias": { 598 | "dev-master": "2.4-dev" 599 | } 600 | }, 601 | "autoload": { 602 | "psr-0": { 603 | "Symfony\\Component\\Filesystem\\": "" 604 | } 605 | }, 606 | "notification-url": "https://packagist.org/downloads/", 607 | "license": [ 608 | "MIT" 609 | ], 610 | "authors": [ 611 | { 612 | "name": "Fabien Potencier", 613 | "email": "fabien@symfony.com" 614 | }, 615 | { 616 | "name": "Symfony Community", 617 | "homepage": "http://symfony.com/contributors" 618 | } 619 | ], 620 | "description": "Symfony Filesystem Component", 621 | "homepage": "http://symfony.com", 622 | "time": "2013-12-31 13:43:26" 623 | }, 624 | { 625 | "name": "symfony/finder", 626 | "version": "v2.4.1", 627 | "target-dir": "Symfony/Component/Finder", 628 | "source": { 629 | "type": "git", 630 | "url": "https://github.com/symfony/Finder.git", 631 | "reference": "6904345cf2b3bbab1f6d6e4ce1724cb99df9f00a" 632 | }, 633 | "dist": { 634 | "type": "zip", 635 | "url": "https://api.github.com/repos/symfony/Finder/zipball/6904345cf2b3bbab1f6d6e4ce1724cb99df9f00a", 636 | "reference": "6904345cf2b3bbab1f6d6e4ce1724cb99df9f00a", 637 | "shasum": "" 638 | }, 639 | "require": { 640 | "php": ">=5.3.3" 641 | }, 642 | "type": "library", 643 | "extra": { 644 | "branch-alias": { 645 | "dev-master": "2.4-dev" 646 | } 647 | }, 648 | "autoload": { 649 | "psr-0": { 650 | "Symfony\\Component\\Finder\\": "" 651 | } 652 | }, 653 | "notification-url": "https://packagist.org/downloads/", 654 | "license": [ 655 | "MIT" 656 | ], 657 | "authors": [ 658 | { 659 | "name": "Fabien Potencier", 660 | "email": "fabien@symfony.com" 661 | }, 662 | { 663 | "name": "Symfony Community", 664 | "homepage": "http://symfony.com/contributors" 665 | } 666 | ], 667 | "description": "Symfony Finder Component", 668 | "homepage": "http://symfony.com", 669 | "time": "2014-01-01 08:14:50" 670 | }, 671 | { 672 | "name": "symfony/http-foundation", 673 | "version": "v2.4.1", 674 | "target-dir": "Symfony/Component/HttpFoundation", 675 | "source": { 676 | "type": "git", 677 | "url": "https://github.com/symfony/HttpFoundation.git", 678 | "reference": "6c6b8a7bcd7e2cc920cd6acace563fdbf121d844" 679 | }, 680 | "dist": { 681 | "type": "zip", 682 | "url": "https://api.github.com/repos/symfony/HttpFoundation/zipball/6c6b8a7bcd7e2cc920cd6acace563fdbf121d844", 683 | "reference": "6c6b8a7bcd7e2cc920cd6acace563fdbf121d844", 684 | "shasum": "" 685 | }, 686 | "require": { 687 | "php": ">=5.3.3" 688 | }, 689 | "type": "library", 690 | "extra": { 691 | "branch-alias": { 692 | "dev-master": "2.4-dev" 693 | } 694 | }, 695 | "autoload": { 696 | "psr-0": { 697 | "Symfony\\Component\\HttpFoundation\\": "" 698 | }, 699 | "classmap": [ 700 | "Symfony/Component/HttpFoundation/Resources/stubs" 701 | ] 702 | }, 703 | "notification-url": "https://packagist.org/downloads/", 704 | "license": [ 705 | "MIT" 706 | ], 707 | "authors": [ 708 | { 709 | "name": "Fabien Potencier", 710 | "email": "fabien@symfony.com" 711 | }, 712 | { 713 | "name": "Symfony Community", 714 | "homepage": "http://symfony.com/contributors" 715 | } 716 | ], 717 | "description": "Symfony HttpFoundation Component", 718 | "homepage": "http://symfony.com", 719 | "time": "2014-01-05 02:10:50" 720 | }, 721 | { 722 | "name": "symfony/http-kernel", 723 | "version": "v2.4.1", 724 | "target-dir": "Symfony/Component/HttpKernel", 725 | "source": { 726 | "type": "git", 727 | "url": "https://github.com/symfony/HttpKernel.git", 728 | "reference": "0605eedeb52c4d3a3144128d8336395a57be60d4" 729 | }, 730 | "dist": { 731 | "type": "zip", 732 | "url": "https://api.github.com/repos/symfony/HttpKernel/zipball/0605eedeb52c4d3a3144128d8336395a57be60d4", 733 | "reference": "0605eedeb52c4d3a3144128d8336395a57be60d4", 734 | "shasum": "" 735 | }, 736 | "require": { 737 | "php": ">=5.3.3", 738 | "psr/log": "~1.0", 739 | "symfony/debug": "~2.3", 740 | "symfony/event-dispatcher": "~2.1", 741 | "symfony/http-foundation": "~2.4" 742 | }, 743 | "require-dev": { 744 | "symfony/browser-kit": "~2.2", 745 | "symfony/class-loader": "~2.1", 746 | "symfony/config": "~2.0", 747 | "symfony/console": "~2.2", 748 | "symfony/dependency-injection": "~2.0", 749 | "symfony/finder": "~2.0", 750 | "symfony/process": "~2.0", 751 | "symfony/routing": "~2.2", 752 | "symfony/stopwatch": "~2.2", 753 | "symfony/templating": "~2.2" 754 | }, 755 | "suggest": { 756 | "symfony/browser-kit": "", 757 | "symfony/class-loader": "", 758 | "symfony/config": "", 759 | "symfony/console": "", 760 | "symfony/dependency-injection": "", 761 | "symfony/finder": "" 762 | }, 763 | "type": "library", 764 | "extra": { 765 | "branch-alias": { 766 | "dev-master": "2.4-dev" 767 | } 768 | }, 769 | "autoload": { 770 | "psr-0": { 771 | "Symfony\\Component\\HttpKernel\\": "" 772 | } 773 | }, 774 | "notification-url": "https://packagist.org/downloads/", 775 | "license": [ 776 | "MIT" 777 | ], 778 | "authors": [ 779 | { 780 | "name": "Fabien Potencier", 781 | "email": "fabien@symfony.com" 782 | }, 783 | { 784 | "name": "Symfony Community", 785 | "homepage": "http://symfony.com/contributors" 786 | } 787 | ], 788 | "description": "Symfony HttpKernel Component", 789 | "homepage": "http://symfony.com", 790 | "time": "2014-01-05 02:12:11" 791 | }, 792 | { 793 | "name": "symfony/monolog-bridge", 794 | "version": "v2.4.1", 795 | "target-dir": "Symfony/Bridge/Monolog", 796 | "source": { 797 | "type": "git", 798 | "url": "https://github.com/symfony/MonologBridge.git", 799 | "reference": "40c3e5f919d2042e73e60d024686bfdb48916f42" 800 | }, 801 | "dist": { 802 | "type": "zip", 803 | "url": "https://api.github.com/repos/symfony/MonologBridge/zipball/40c3e5f919d2042e73e60d024686bfdb48916f42", 804 | "reference": "40c3e5f919d2042e73e60d024686bfdb48916f42", 805 | "shasum": "" 806 | }, 807 | "require": { 808 | "monolog/monolog": "~1.3", 809 | "php": ">=5.3.3" 810 | }, 811 | "require-dev": { 812 | "symfony/console": "~2.3", 813 | "symfony/event-dispatcher": "~2.2", 814 | "symfony/http-kernel": "~2.2" 815 | }, 816 | "suggest": { 817 | "symfony/console": "For the possibility to show log messages in console commands depending on verbosity settings. You need version ~2.3 of the console for it.", 818 | "symfony/event-dispatcher": "Needed when using log messages in console commands", 819 | "symfony/http-kernel": "For using the debugging handlers together with the response life cycle of the HTTP kernel." 820 | }, 821 | "type": "symfony-bridge", 822 | "extra": { 823 | "branch-alias": { 824 | "dev-master": "2.4-dev" 825 | } 826 | }, 827 | "autoload": { 828 | "psr-0": { 829 | "Symfony\\Bridge\\Monolog\\": "" 830 | } 831 | }, 832 | "notification-url": "https://packagist.org/downloads/", 833 | "license": [ 834 | "MIT" 835 | ], 836 | "authors": [ 837 | { 838 | "name": "Fabien Potencier", 839 | "email": "fabien@symfony.com" 840 | }, 841 | { 842 | "name": "Symfony Community", 843 | "homepage": "http://symfony.com/contributors" 844 | } 845 | ], 846 | "description": "Symfony Monolog Bridge", 847 | "homepage": "http://symfony.com", 848 | "time": "2013-12-03 10:22:45" 849 | }, 850 | { 851 | "name": "symfony/routing", 852 | "version": "v2.4.1", 853 | "target-dir": "Symfony/Component/Routing", 854 | "source": { 855 | "type": "git", 856 | "url": "https://github.com/symfony/Routing.git", 857 | "reference": "4abfb500aab8be458c9e3a227ea56b190584f78a" 858 | }, 859 | "dist": { 860 | "type": "zip", 861 | "url": "https://api.github.com/repos/symfony/Routing/zipball/4abfb500aab8be458c9e3a227ea56b190584f78a", 862 | "reference": "4abfb500aab8be458c9e3a227ea56b190584f78a", 863 | "shasum": "" 864 | }, 865 | "require": { 866 | "php": ">=5.3.3" 867 | }, 868 | "require-dev": { 869 | "doctrine/annotations": "~1.0", 870 | "psr/log": "~1.0", 871 | "symfony/config": "~2.2", 872 | "symfony/expression-language": "~2.4", 873 | "symfony/yaml": "~2.0" 874 | }, 875 | "suggest": { 876 | "doctrine/annotations": "For using the annotation loader", 877 | "symfony/config": "For using the all-in-one router or any loader", 878 | "symfony/expression-language": "For using expression matching", 879 | "symfony/yaml": "For using the YAML loader" 880 | }, 881 | "type": "library", 882 | "extra": { 883 | "branch-alias": { 884 | "dev-master": "2.4-dev" 885 | } 886 | }, 887 | "autoload": { 888 | "psr-0": { 889 | "Symfony\\Component\\Routing\\": "" 890 | } 891 | }, 892 | "notification-url": "https://packagist.org/downloads/", 893 | "license": [ 894 | "MIT" 895 | ], 896 | "authors": [ 897 | { 898 | "name": "Fabien Potencier", 899 | "email": "fabien@symfony.com" 900 | }, 901 | { 902 | "name": "Symfony Community", 903 | "homepage": "http://symfony.com/contributors" 904 | } 905 | ], 906 | "description": "Symfony Routing Component", 907 | "homepage": "http://symfony.com", 908 | "keywords": [ 909 | "router", 910 | "routing", 911 | "uri", 912 | "url" 913 | ], 914 | "time": "2014-01-05 02:10:50" 915 | }, 916 | { 917 | "name": "symfony/security", 918 | "version": "v2.4.1", 919 | "target-dir": "Symfony/Component/Security", 920 | "source": { 921 | "type": "git", 922 | "url": "https://github.com/symfony/Security.git", 923 | "reference": "b1021ae160f5425986dea2b62d3f14a0bbbf448a" 924 | }, 925 | "dist": { 926 | "type": "zip", 927 | "url": "https://api.github.com/repos/symfony/Security/zipball/b1021ae160f5425986dea2b62d3f14a0bbbf448a", 928 | "reference": "b1021ae160f5425986dea2b62d3f14a0bbbf448a", 929 | "shasum": "" 930 | }, 931 | "require": { 932 | "php": ">=5.3.3", 933 | "symfony/event-dispatcher": "~2.1", 934 | "symfony/http-foundation": "~2.1", 935 | "symfony/http-kernel": "~2.4" 936 | }, 937 | "replace": { 938 | "symfony/security-acl": "self.version", 939 | "symfony/security-core": "self.version", 940 | "symfony/security-csrf": "self.version", 941 | "symfony/security-http": "self.version" 942 | }, 943 | "require-dev": { 944 | "doctrine/common": "~2.2", 945 | "doctrine/dbal": "~2.2", 946 | "ircmaxell/password-compat": "1.0.*", 947 | "psr/log": "~1.0", 948 | "symfony/expression-language": "~2.4", 949 | "symfony/routing": "~2.2", 950 | "symfony/validator": "~2.2" 951 | }, 952 | "suggest": { 953 | "doctrine/dbal": "For using the built-in ACL implementation", 954 | "ircmaxell/password-compat": "For using the BCrypt password encoder in PHP <5.5", 955 | "symfony/class-loader": "For using the ACL generateSql script", 956 | "symfony/expression-language": "For using the expression voter", 957 | "symfony/finder": "For using the ACL generateSql script", 958 | "symfony/routing": "For using the HttpUtils class to create sub-requests, redirect the user, and match URLs", 959 | "symfony/validator": "For using the user password constraint" 960 | }, 961 | "type": "library", 962 | "extra": { 963 | "branch-alias": { 964 | "dev-master": "2.4-dev" 965 | } 966 | }, 967 | "autoload": { 968 | "psr-0": { 969 | "Symfony\\Component\\Security\\": "" 970 | } 971 | }, 972 | "notification-url": "https://packagist.org/downloads/", 973 | "license": [ 974 | "MIT" 975 | ], 976 | "authors": [ 977 | { 978 | "name": "Fabien Potencier", 979 | "email": "fabien@symfony.com" 980 | }, 981 | { 982 | "name": "Symfony Community", 983 | "homepage": "http://symfony.com/contributors" 984 | } 985 | ], 986 | "description": "Symfony Security Component", 987 | "homepage": "http://symfony.com", 988 | "time": "2014-01-01 08:14:50" 989 | }, 990 | { 991 | "name": "symfony/twig-bridge", 992 | "version": "v2.4.1", 993 | "target-dir": "Symfony/Bridge/Twig", 994 | "source": { 995 | "type": "git", 996 | "url": "https://github.com/symfony/TwigBridge.git", 997 | "reference": "4eb35ba0f8f06dfe6fc20d3660a27f233d7b2c87" 998 | }, 999 | "dist": { 1000 | "type": "zip", 1001 | "url": "https://api.github.com/repos/symfony/TwigBridge/zipball/4eb35ba0f8f06dfe6fc20d3660a27f233d7b2c87", 1002 | "reference": "4eb35ba0f8f06dfe6fc20d3660a27f233d7b2c87", 1003 | "shasum": "" 1004 | }, 1005 | "require": { 1006 | "php": ">=5.3.3", 1007 | "symfony/security-csrf": "~2.4", 1008 | "twig/twig": "~1.11" 1009 | }, 1010 | "require-dev": { 1011 | "symfony/form": "~2.2", 1012 | "symfony/http-kernel": "~2.2", 1013 | "symfony/routing": "~2.2", 1014 | "symfony/security": "~2.4", 1015 | "symfony/stopwatch": "~2.2", 1016 | "symfony/templating": "~2.1", 1017 | "symfony/translation": "~2.2", 1018 | "symfony/yaml": "~2.0" 1019 | }, 1020 | "suggest": { 1021 | "symfony/form": "For using the FormExtension", 1022 | "symfony/http-kernel": "For using the HttpKernelExtension", 1023 | "symfony/routing": "For using the RoutingExtension", 1024 | "symfony/security": "For using the SecurityExtension", 1025 | "symfony/stopwatch": "For using the StopwatchExtension", 1026 | "symfony/templating": "For using the TwigEngine", 1027 | "symfony/translation": "For using the TranslationExtension", 1028 | "symfony/yaml": "For using the YamlExtension" 1029 | }, 1030 | "type": "symfony-bridge", 1031 | "extra": { 1032 | "branch-alias": { 1033 | "dev-master": "2.4-dev" 1034 | } 1035 | }, 1036 | "autoload": { 1037 | "psr-0": { 1038 | "Symfony\\Bridge\\Twig\\": "" 1039 | } 1040 | }, 1041 | "notification-url": "https://packagist.org/downloads/", 1042 | "license": [ 1043 | "MIT" 1044 | ], 1045 | "authors": [ 1046 | { 1047 | "name": "Fabien Potencier", 1048 | "email": "fabien@symfony.com" 1049 | }, 1050 | { 1051 | "name": "Symfony Community", 1052 | "homepage": "http://symfony.com/contributors" 1053 | } 1054 | ], 1055 | "description": "Symfony Twig Bridge", 1056 | "homepage": "http://symfony.com", 1057 | "time": "2013-12-31 13:43:26" 1058 | }, 1059 | { 1060 | "name": "twig/twig", 1061 | "version": "v1.15.0", 1062 | "source": { 1063 | "type": "git", 1064 | "url": "https://github.com/fabpot/Twig.git", 1065 | "reference": "85e4ff98000157ff753d934b9f13659a953f5666" 1066 | }, 1067 | "dist": { 1068 | "type": "zip", 1069 | "url": "https://api.github.com/repos/fabpot/Twig/zipball/85e4ff98000157ff753d934b9f13659a953f5666", 1070 | "reference": "85e4ff98000157ff753d934b9f13659a953f5666", 1071 | "shasum": "" 1072 | }, 1073 | "require": { 1074 | "php": ">=5.2.4" 1075 | }, 1076 | "type": "library", 1077 | "extra": { 1078 | "branch-alias": { 1079 | "dev-master": "1.15-dev" 1080 | } 1081 | }, 1082 | "autoload": { 1083 | "psr-0": { 1084 | "Twig_": "lib/" 1085 | } 1086 | }, 1087 | "notification-url": "https://packagist.org/downloads/", 1088 | "license": [ 1089 | "BSD-3-Clause" 1090 | ], 1091 | "authors": [ 1092 | { 1093 | "name": "Fabien Potencier", 1094 | "email": "fabien@symfony.com", 1095 | "homepage": "http://fabien.potencier.org", 1096 | "role": "Lead Developer" 1097 | }, 1098 | { 1099 | "name": "Armin Ronacher", 1100 | "email": "armin.ronacher@active-4.com", 1101 | "role": "Project Founder" 1102 | } 1103 | ], 1104 | "description": "Twig, the flexible, fast, and secure template language for PHP", 1105 | "homepage": "http://twig.sensiolabs.org", 1106 | "keywords": [ 1107 | "templating" 1108 | ], 1109 | "time": "2013-12-06 07:47:10" 1110 | } 1111 | ], 1112 | "packages-dev": [ 1113 | { 1114 | "name": "codeclimate/php-test-reporter", 1115 | "version": "dev-master", 1116 | "source": { 1117 | "type": "git", 1118 | "url": "https://github.com/codeclimate/php-test-reporter.git", 1119 | "reference": "8ed24ff30f3663ecf40f1c12d6c97eb56c69e646" 1120 | }, 1121 | "dist": { 1122 | "type": "zip", 1123 | "url": "https://api.github.com/repos/codeclimate/php-test-reporter/zipball/8ed24ff30f3663ecf40f1c12d6c97eb56c69e646", 1124 | "reference": "8ed24ff30f3663ecf40f1c12d6c97eb56c69e646", 1125 | "shasum": "" 1126 | }, 1127 | "require": { 1128 | "ext-curl": "*", 1129 | "php": ">=5.3", 1130 | "satooshi/php-coveralls": "0.6.*", 1131 | "symfony/console": ">=2.0" 1132 | }, 1133 | "require-dev": { 1134 | "phpunit/phpunit": "3.7.*@stable" 1135 | }, 1136 | "bin": [ 1137 | "composer/bin/test-reporter" 1138 | ], 1139 | "type": "library", 1140 | "extra": { 1141 | "branch-alias": { 1142 | "dev-master": "0.1.x-dev" 1143 | } 1144 | }, 1145 | "autoload": { 1146 | "psr-0": { 1147 | "CodeClimate\\Component": "src/", 1148 | "CodeClimate\\Bundle": "src/" 1149 | } 1150 | }, 1151 | "notification-url": "https://packagist.org/downloads/", 1152 | "license": [ 1153 | "MIT" 1154 | ], 1155 | "authors": [ 1156 | { 1157 | "name": "Code Climate", 1158 | "email": "hello@codeclimate.com", 1159 | "homepage": "https://codeclimate.com" 1160 | } 1161 | ], 1162 | "description": "PHP client for reporting test coverage to Code Climate", 1163 | "homepage": "https://github.com/codeclimate/php-test-reporter", 1164 | "keywords": [ 1165 | "codeclimate", 1166 | "coverage" 1167 | ], 1168 | "time": "2014-07-23 13:42:41" 1169 | }, 1170 | { 1171 | "name": "guzzle/guzzle", 1172 | "version": "v3.9.1", 1173 | "source": { 1174 | "type": "git", 1175 | "url": "https://github.com/guzzle/guzzle3.git", 1176 | "reference": "92d9934f2fca1da15178c91239576ae26e505e60" 1177 | }, 1178 | "dist": { 1179 | "type": "zip", 1180 | "url": "https://api.github.com/repos/guzzle/guzzle3/zipball/92d9934f2fca1da15178c91239576ae26e505e60", 1181 | "reference": "92d9934f2fca1da15178c91239576ae26e505e60", 1182 | "shasum": "" 1183 | }, 1184 | "require": { 1185 | "ext-curl": "*", 1186 | "php": ">=5.3.3", 1187 | "symfony/event-dispatcher": "~2.1" 1188 | }, 1189 | "replace": { 1190 | "guzzle/batch": "self.version", 1191 | "guzzle/cache": "self.version", 1192 | "guzzle/common": "self.version", 1193 | "guzzle/http": "self.version", 1194 | "guzzle/inflection": "self.version", 1195 | "guzzle/iterator": "self.version", 1196 | "guzzle/log": "self.version", 1197 | "guzzle/parser": "self.version", 1198 | "guzzle/plugin": "self.version", 1199 | "guzzle/plugin-async": "self.version", 1200 | "guzzle/plugin-backoff": "self.version", 1201 | "guzzle/plugin-cache": "self.version", 1202 | "guzzle/plugin-cookie": "self.version", 1203 | "guzzle/plugin-curlauth": "self.version", 1204 | "guzzle/plugin-error-response": "self.version", 1205 | "guzzle/plugin-history": "self.version", 1206 | "guzzle/plugin-log": "self.version", 1207 | "guzzle/plugin-md5": "self.version", 1208 | "guzzle/plugin-mock": "self.version", 1209 | "guzzle/plugin-oauth": "self.version", 1210 | "guzzle/service": "self.version", 1211 | "guzzle/stream": "self.version" 1212 | }, 1213 | "require-dev": { 1214 | "doctrine/cache": "~1.3", 1215 | "monolog/monolog": "~1.0", 1216 | "phpunit/phpunit": "3.7.*", 1217 | "psr/log": "~1.0", 1218 | "symfony/class-loader": "~2.1", 1219 | "zendframework/zend-cache": "2.*,<2.3", 1220 | "zendframework/zend-log": "2.*,<2.3" 1221 | }, 1222 | "type": "library", 1223 | "extra": { 1224 | "branch-alias": { 1225 | "dev-master": "3.8-dev" 1226 | } 1227 | }, 1228 | "autoload": { 1229 | "psr-0": { 1230 | "Guzzle": "src/", 1231 | "Guzzle\\Tests": "tests/" 1232 | } 1233 | }, 1234 | "notification-url": "https://packagist.org/downloads/", 1235 | "license": [ 1236 | "MIT" 1237 | ], 1238 | "authors": [ 1239 | { 1240 | "name": "Michael Dowling", 1241 | "email": "mtdowling@gmail.com", 1242 | "homepage": "https://github.com/mtdowling" 1243 | }, 1244 | { 1245 | "name": "Guzzle Community", 1246 | "homepage": "https://github.com/guzzle/guzzle/contributors" 1247 | } 1248 | ], 1249 | "description": "Guzzle is a PHP HTTP client library and framework for building RESTful web service clients", 1250 | "homepage": "http://guzzlephp.org/", 1251 | "keywords": [ 1252 | "client", 1253 | "curl", 1254 | "framework", 1255 | "http", 1256 | "http client", 1257 | "rest", 1258 | "web service" 1259 | ], 1260 | "time": "2014-05-07 17:04:22" 1261 | }, 1262 | { 1263 | "name": "pdepend/pdepend", 1264 | "version": "1.1.3", 1265 | "source": { 1266 | "type": "git", 1267 | "url": "https://github.com/pdepend/pdepend.git", 1268 | "reference": "1537f19d62d7b30c13ac173270106df7c6b9c459" 1269 | }, 1270 | "dist": { 1271 | "type": "zip", 1272 | "url": "https://api.github.com/repos/pdepend/pdepend/zipball/1537f19d62d7b30c13ac173270106df7c6b9c459", 1273 | "reference": "1537f19d62d7b30c13ac173270106df7c6b9c459", 1274 | "shasum": "" 1275 | }, 1276 | "require": { 1277 | "php": ">=5.2.3" 1278 | }, 1279 | "bin": [ 1280 | "src/bin/pdepend" 1281 | ], 1282 | "type": "library", 1283 | "autoload": { 1284 | "psr-0": { 1285 | "PHP_": "src/main/php/" 1286 | } 1287 | }, 1288 | "notification-url": "https://packagist.org/downloads/", 1289 | "license": [ 1290 | "BSD-3-Clause" 1291 | ], 1292 | "description": "Official version of pdepend to be handled with Composer", 1293 | "time": "2013-12-04 17:46:00" 1294 | }, 1295 | { 1296 | "name": "phpmd/phpmd", 1297 | "version": "1.5.0", 1298 | "source": { 1299 | "type": "git", 1300 | "url": "https://github.com/phpmd/phpmd.git", 1301 | "reference": "692b7b1b64518091b2b1bea91b489dbb13598c07" 1302 | }, 1303 | "dist": { 1304 | "type": "zip", 1305 | "url": "https://api.github.com/repos/phpmd/phpmd/zipball/692b7b1b64518091b2b1bea91b489dbb13598c07", 1306 | "reference": "692b7b1b64518091b2b1bea91b489dbb13598c07", 1307 | "shasum": "" 1308 | }, 1309 | "require": { 1310 | "pdepend/pdepend": ">=1.1.1", 1311 | "php": ">=5.3.0" 1312 | }, 1313 | "bin": [ 1314 | "src/bin/phpmd" 1315 | ], 1316 | "type": "library", 1317 | "notification-url": "https://packagist.org/downloads/", 1318 | "include-path": [ 1319 | "../../pdepend/pdepend/src/main/php", 1320 | "src/main/php" 1321 | ], 1322 | "description": "Official version of PHPMD handled with Composer.", 1323 | "time": "2013-07-26 14:47:02" 1324 | }, 1325 | { 1326 | "name": "phpunit/php-code-coverage", 1327 | "version": "1.2.15", 1328 | "source": { 1329 | "type": "git", 1330 | "url": "https://github.com/sebastianbergmann/php-code-coverage.git", 1331 | "reference": "6ba4ed2895d538a039d5d5866edc4ec0424c7852" 1332 | }, 1333 | "dist": { 1334 | "type": "zip", 1335 | "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/6ba4ed2895d538a039d5d5866edc4ec0424c7852", 1336 | "reference": "6ba4ed2895d538a039d5d5866edc4ec0424c7852", 1337 | "shasum": "" 1338 | }, 1339 | "require": { 1340 | "php": ">=5.3.3", 1341 | "phpunit/php-file-iterator": ">=1.3.0@stable", 1342 | "phpunit/php-text-template": ">=1.2.0@stable", 1343 | "phpunit/php-token-stream": ">=1.1.3@stable" 1344 | }, 1345 | "require-dev": { 1346 | "phpunit/phpunit": "3.7.*@dev" 1347 | }, 1348 | "suggest": { 1349 | "ext-dom": "*", 1350 | "ext-xdebug": ">=2.0.5" 1351 | }, 1352 | "type": "library", 1353 | "extra": { 1354 | "branch-alias": { 1355 | "dev-master": "1.2.x-dev" 1356 | } 1357 | }, 1358 | "autoload": { 1359 | "classmap": [ 1360 | "PHP/" 1361 | ] 1362 | }, 1363 | "notification-url": "https://packagist.org/downloads/", 1364 | "include-path": [ 1365 | "" 1366 | ], 1367 | "license": [ 1368 | "BSD-3-Clause" 1369 | ], 1370 | "authors": [ 1371 | { 1372 | "name": "Sebastian Bergmann", 1373 | "email": "sb@sebastian-bergmann.de", 1374 | "role": "lead" 1375 | } 1376 | ], 1377 | "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", 1378 | "homepage": "https://github.com/sebastianbergmann/php-code-coverage", 1379 | "keywords": [ 1380 | "coverage", 1381 | "testing", 1382 | "xunit" 1383 | ], 1384 | "time": "2014-02-03 07:44:47" 1385 | }, 1386 | { 1387 | "name": "phpunit/php-file-iterator", 1388 | "version": "1.3.4", 1389 | "source": { 1390 | "type": "git", 1391 | "url": "https://github.com/sebastianbergmann/php-file-iterator.git", 1392 | "reference": "acd690379117b042d1c8af1fafd61bde001bf6bb" 1393 | }, 1394 | "dist": { 1395 | "type": "zip", 1396 | "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/acd690379117b042d1c8af1fafd61bde001bf6bb", 1397 | "reference": "acd690379117b042d1c8af1fafd61bde001bf6bb", 1398 | "shasum": "" 1399 | }, 1400 | "require": { 1401 | "php": ">=5.3.3" 1402 | }, 1403 | "type": "library", 1404 | "autoload": { 1405 | "classmap": [ 1406 | "File/" 1407 | ] 1408 | }, 1409 | "notification-url": "https://packagist.org/downloads/", 1410 | "include-path": [ 1411 | "" 1412 | ], 1413 | "license": [ 1414 | "BSD-3-Clause" 1415 | ], 1416 | "authors": [ 1417 | { 1418 | "name": "Sebastian Bergmann", 1419 | "email": "sb@sebastian-bergmann.de", 1420 | "role": "lead" 1421 | } 1422 | ], 1423 | "description": "FilterIterator implementation that filters files based on a list of suffixes.", 1424 | "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", 1425 | "keywords": [ 1426 | "filesystem", 1427 | "iterator" 1428 | ], 1429 | "time": "2013-10-10 15:34:57" 1430 | }, 1431 | { 1432 | "name": "phpunit/php-text-template", 1433 | "version": "1.2.0", 1434 | "source": { 1435 | "type": "git", 1436 | "url": "https://github.com/sebastianbergmann/php-text-template.git", 1437 | "reference": "206dfefc0ffe9cebf65c413e3d0e809c82fbf00a" 1438 | }, 1439 | "dist": { 1440 | "type": "zip", 1441 | "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/206dfefc0ffe9cebf65c413e3d0e809c82fbf00a", 1442 | "reference": "206dfefc0ffe9cebf65c413e3d0e809c82fbf00a", 1443 | "shasum": "" 1444 | }, 1445 | "require": { 1446 | "php": ">=5.3.3" 1447 | }, 1448 | "type": "library", 1449 | "autoload": { 1450 | "classmap": [ 1451 | "Text/" 1452 | ] 1453 | }, 1454 | "notification-url": "https://packagist.org/downloads/", 1455 | "include-path": [ 1456 | "" 1457 | ], 1458 | "license": [ 1459 | "BSD-3-Clause" 1460 | ], 1461 | "authors": [ 1462 | { 1463 | "name": "Sebastian Bergmann", 1464 | "email": "sb@sebastian-bergmann.de", 1465 | "role": "lead" 1466 | } 1467 | ], 1468 | "description": "Simple template engine.", 1469 | "homepage": "https://github.com/sebastianbergmann/php-text-template/", 1470 | "keywords": [ 1471 | "template" 1472 | ], 1473 | "time": "2014-01-30 17:20:04" 1474 | }, 1475 | { 1476 | "name": "phpunit/php-timer", 1477 | "version": "1.0.5", 1478 | "source": { 1479 | "type": "git", 1480 | "url": "https://github.com/sebastianbergmann/php-timer.git", 1481 | "reference": "19689d4354b295ee3d8c54b4f42c3efb69cbc17c" 1482 | }, 1483 | "dist": { 1484 | "type": "zip", 1485 | "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/19689d4354b295ee3d8c54b4f42c3efb69cbc17c", 1486 | "reference": "19689d4354b295ee3d8c54b4f42c3efb69cbc17c", 1487 | "shasum": "" 1488 | }, 1489 | "require": { 1490 | "php": ">=5.3.3" 1491 | }, 1492 | "type": "library", 1493 | "autoload": { 1494 | "classmap": [ 1495 | "PHP/" 1496 | ] 1497 | }, 1498 | "notification-url": "https://packagist.org/downloads/", 1499 | "include-path": [ 1500 | "" 1501 | ], 1502 | "license": [ 1503 | "BSD-3-Clause" 1504 | ], 1505 | "authors": [ 1506 | { 1507 | "name": "Sebastian Bergmann", 1508 | "email": "sb@sebastian-bergmann.de", 1509 | "role": "lead" 1510 | } 1511 | ], 1512 | "description": "Utility class for timing", 1513 | "homepage": "https://github.com/sebastianbergmann/php-timer/", 1514 | "keywords": [ 1515 | "timer" 1516 | ], 1517 | "time": "2013-08-02 07:42:54" 1518 | }, 1519 | { 1520 | "name": "phpunit/php-token-stream", 1521 | "version": "1.2.1", 1522 | "source": { 1523 | "type": "git", 1524 | "url": "https://github.com/sebastianbergmann/php-token-stream.git", 1525 | "reference": "5220af2a7929aa35cf663d97c89ad3d50cf5fa3e" 1526 | }, 1527 | "dist": { 1528 | "type": "zip", 1529 | "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/5220af2a7929aa35cf663d97c89ad3d50cf5fa3e", 1530 | "reference": "5220af2a7929aa35cf663d97c89ad3d50cf5fa3e", 1531 | "shasum": "" 1532 | }, 1533 | "require": { 1534 | "ext-tokenizer": "*", 1535 | "php": ">=5.3.3" 1536 | }, 1537 | "type": "library", 1538 | "extra": { 1539 | "branch-alias": { 1540 | "dev-master": "1.2-dev" 1541 | } 1542 | }, 1543 | "autoload": { 1544 | "classmap": [ 1545 | "PHP/" 1546 | ] 1547 | }, 1548 | "notification-url": "https://packagist.org/downloads/", 1549 | "include-path": [ 1550 | "" 1551 | ], 1552 | "license": [ 1553 | "BSD-3-Clause" 1554 | ], 1555 | "authors": [ 1556 | { 1557 | "name": "Sebastian Bergmann", 1558 | "email": "sb@sebastian-bergmann.de", 1559 | "role": "lead" 1560 | } 1561 | ], 1562 | "description": "Wrapper around PHP's tokenizer extension.", 1563 | "homepage": "https://github.com/sebastianbergmann/php-token-stream/", 1564 | "keywords": [ 1565 | "tokenizer" 1566 | ], 1567 | "time": "2013-09-13 04:58:23" 1568 | }, 1569 | { 1570 | "name": "phpunit/phpunit", 1571 | "version": "3.7.31", 1572 | "source": { 1573 | "type": "git", 1574 | "url": "https://github.com/sebastianbergmann/phpunit.git", 1575 | "reference": "d24e9877331039582497052cc3c4d9f465b88210" 1576 | }, 1577 | "dist": { 1578 | "type": "zip", 1579 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/d24e9877331039582497052cc3c4d9f465b88210", 1580 | "reference": "d24e9877331039582497052cc3c4d9f465b88210", 1581 | "shasum": "" 1582 | }, 1583 | "require": { 1584 | "ext-dom": "*", 1585 | "ext-pcre": "*", 1586 | "ext-reflection": "*", 1587 | "ext-spl": "*", 1588 | "php": ">=5.3.3", 1589 | "phpunit/php-code-coverage": "~1.2.1", 1590 | "phpunit/php-file-iterator": ">=1.3.1", 1591 | "phpunit/php-text-template": ">=1.1.1", 1592 | "phpunit/php-timer": ">=1.0.4", 1593 | "phpunit/phpunit-mock-objects": "~1.2.0", 1594 | "symfony/yaml": "~2.0" 1595 | }, 1596 | "require-dev": { 1597 | "pear-pear/pear": "1.9.4" 1598 | }, 1599 | "suggest": { 1600 | "ext-json": "*", 1601 | "ext-simplexml": "*", 1602 | "ext-tokenizer": "*", 1603 | "phpunit/php-invoker": ">=1.1.0,<1.2.0" 1604 | }, 1605 | "bin": [ 1606 | "composer/bin/phpunit" 1607 | ], 1608 | "type": "library", 1609 | "extra": { 1610 | "branch-alias": { 1611 | "dev-master": "3.7.x-dev" 1612 | } 1613 | }, 1614 | "autoload": { 1615 | "classmap": [ 1616 | "PHPUnit/" 1617 | ] 1618 | }, 1619 | "notification-url": "https://packagist.org/downloads/", 1620 | "include-path": [ 1621 | "", 1622 | "../../symfony/yaml/" 1623 | ], 1624 | "license": [ 1625 | "BSD-3-Clause" 1626 | ], 1627 | "authors": [ 1628 | { 1629 | "name": "Sebastian Bergmann", 1630 | "email": "sebastian@phpunit.de", 1631 | "role": "lead" 1632 | } 1633 | ], 1634 | "description": "The PHP Unit Testing framework.", 1635 | "homepage": "http://www.phpunit.de/", 1636 | "keywords": [ 1637 | "phpunit", 1638 | "testing", 1639 | "xunit" 1640 | ], 1641 | "time": "2014-02-03 07:46:27" 1642 | }, 1643 | { 1644 | "name": "phpunit/phpunit-mock-objects", 1645 | "version": "1.2.3", 1646 | "source": { 1647 | "type": "git", 1648 | "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", 1649 | "reference": "5794e3c5c5ba0fb037b11d8151add2a07fa82875" 1650 | }, 1651 | "dist": { 1652 | "type": "zip", 1653 | "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/5794e3c5c5ba0fb037b11d8151add2a07fa82875", 1654 | "reference": "5794e3c5c5ba0fb037b11d8151add2a07fa82875", 1655 | "shasum": "" 1656 | }, 1657 | "require": { 1658 | "php": ">=5.3.3", 1659 | "phpunit/php-text-template": ">=1.1.1@stable" 1660 | }, 1661 | "suggest": { 1662 | "ext-soap": "*" 1663 | }, 1664 | "type": "library", 1665 | "autoload": { 1666 | "classmap": [ 1667 | "PHPUnit/" 1668 | ] 1669 | }, 1670 | "notification-url": "https://packagist.org/downloads/", 1671 | "include-path": [ 1672 | "" 1673 | ], 1674 | "license": [ 1675 | "BSD-3-Clause" 1676 | ], 1677 | "authors": [ 1678 | { 1679 | "name": "Sebastian Bergmann", 1680 | "email": "sb@sebastian-bergmann.de", 1681 | "role": "lead" 1682 | } 1683 | ], 1684 | "description": "Mock Object library for PHPUnit", 1685 | "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", 1686 | "keywords": [ 1687 | "mock", 1688 | "xunit" 1689 | ], 1690 | "time": "2013-01-13 10:24:48" 1691 | }, 1692 | { 1693 | "name": "satooshi/php-coveralls", 1694 | "version": "v0.6.1", 1695 | "source": { 1696 | "type": "git", 1697 | "url": "https://github.com/satooshi/php-coveralls.git", 1698 | "reference": "dd0df95bd37a7cf5c5c50304dfe260ffe4b50760" 1699 | }, 1700 | "dist": { 1701 | "type": "zip", 1702 | "url": "https://api.github.com/repos/satooshi/php-coveralls/zipball/dd0df95bd37a7cf5c5c50304dfe260ffe4b50760", 1703 | "reference": "dd0df95bd37a7cf5c5c50304dfe260ffe4b50760", 1704 | "shasum": "" 1705 | }, 1706 | "require": { 1707 | "ext-curl": "*", 1708 | "ext-json": "*", 1709 | "ext-simplexml": "*", 1710 | "guzzle/guzzle": ">=3.0", 1711 | "php": ">=5.3", 1712 | "psr/log": "1.0.0", 1713 | "symfony/config": ">=2.0", 1714 | "symfony/console": ">=2.0", 1715 | "symfony/stopwatch": ">=2.2", 1716 | "symfony/yaml": ">=2.0" 1717 | }, 1718 | "require-dev": { 1719 | "apigen/apigen": "2.8.*@stable", 1720 | "pdepend/pdepend": "dev-master", 1721 | "phpmd/phpmd": "dev-master", 1722 | "phpunit/php-invoker": ">=1.1.0,<1.2.0", 1723 | "phpunit/phpunit": "3.7.*@stable", 1724 | "sebastian/finder-facade": "dev-master", 1725 | "sebastian/phpcpd": "1.4.*@stable", 1726 | "squizlabs/php_codesniffer": "1.4.*@stable", 1727 | "theseer/fdomdocument": "dev-master" 1728 | }, 1729 | "bin": [ 1730 | "composer/bin/coveralls" 1731 | ], 1732 | "type": "library", 1733 | "autoload": { 1734 | "psr-0": { 1735 | "Contrib\\Component": "src/", 1736 | "Contrib\\Bundle": "src/" 1737 | } 1738 | }, 1739 | "notification-url": "https://packagist.org/downloads/", 1740 | "license": [ 1741 | "MIT" 1742 | ], 1743 | "authors": [ 1744 | { 1745 | "name": "Kitamura Satoshi", 1746 | "email": "with.no.parachute@gmail.com", 1747 | "homepage": "https://www.facebook.com/satooshi.jp" 1748 | } 1749 | ], 1750 | "description": "PHP client library for Coveralls API", 1751 | "homepage": "https://github.com/satooshi/php-coveralls", 1752 | "keywords": [ 1753 | "ci", 1754 | "coverage", 1755 | "github", 1756 | "test" 1757 | ], 1758 | "time": "2013-05-04 08:07:33" 1759 | }, 1760 | { 1761 | "name": "squizlabs/php_codesniffer", 1762 | "version": "1.4.8", 1763 | "source": { 1764 | "type": "git", 1765 | "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", 1766 | "reference": "d26daa8096ad2c8758677f0352597f8cda4722e0" 1767 | }, 1768 | "dist": { 1769 | "type": "zip", 1770 | "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/d26daa8096ad2c8758677f0352597f8cda4722e0", 1771 | "reference": "d26daa8096ad2c8758677f0352597f8cda4722e0", 1772 | "shasum": "" 1773 | }, 1774 | "require": { 1775 | "ext-tokenizer": "*", 1776 | "php": ">=5.1.2" 1777 | }, 1778 | "suggest": { 1779 | "phpunit/php-timer": "dev-master" 1780 | }, 1781 | "bin": [ 1782 | "scripts/phpcs" 1783 | ], 1784 | "type": "library", 1785 | "autoload": { 1786 | "classmap": [ 1787 | "CodeSniffer.php", 1788 | "CodeSniffer/CLI.php", 1789 | "CodeSniffer/Exception.php", 1790 | "CodeSniffer/File.php", 1791 | "CodeSniffer/MultiFileSniff.php", 1792 | "CodeSniffer/Report.php", 1793 | "CodeSniffer/Reporting.php", 1794 | "CodeSniffer/Sniff.php", 1795 | "CodeSniffer/Tokens.php", 1796 | "CodeSniffer/Reports/", 1797 | "CodeSniffer/CommentParser/", 1798 | "CodeSniffer/Tokenizers/", 1799 | "CodeSniffer/DocGenerators/", 1800 | "CodeSniffer/Standards/AbstractPatternSniff.php", 1801 | "CodeSniffer/Standards/AbstractScopeSniff.php", 1802 | "CodeSniffer/Standards/AbstractVariableSniff.php", 1803 | "CodeSniffer/Standards/IncorrectPatternException.php", 1804 | "CodeSniffer/Standards/Generic/Sniffs/", 1805 | "CodeSniffer/Standards/MySource/Sniffs/", 1806 | "CodeSniffer/Standards/PEAR/Sniffs/", 1807 | "CodeSniffer/Standards/PSR1/Sniffs/", 1808 | "CodeSniffer/Standards/PSR2/Sniffs/", 1809 | "CodeSniffer/Standards/Squiz/Sniffs/", 1810 | "CodeSniffer/Standards/Zend/Sniffs/" 1811 | ] 1812 | }, 1813 | "notification-url": "https://packagist.org/downloads/", 1814 | "license": [ 1815 | "BSD-3-Clause" 1816 | ], 1817 | "authors": [ 1818 | { 1819 | "name": "Greg Sherwood", 1820 | "role": "lead" 1821 | } 1822 | ], 1823 | "description": "PHP_CodeSniffer tokenises PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", 1824 | "homepage": "http://www.squizlabs.com/php-codesniffer", 1825 | "keywords": [ 1826 | "phpcs", 1827 | "standards" 1828 | ], 1829 | "time": "2013-11-25 22:07:04" 1830 | }, 1831 | { 1832 | "name": "symfony/config", 1833 | "version": "v2.5.2", 1834 | "target-dir": "Symfony/Component/Config", 1835 | "source": { 1836 | "type": "git", 1837 | "url": "https://github.com/symfony/Config.git", 1838 | "reference": "a31aa8029bcc0b5b85578328050aa70d052e177b" 1839 | }, 1840 | "dist": { 1841 | "type": "zip", 1842 | "url": "https://api.github.com/repos/symfony/Config/zipball/a31aa8029bcc0b5b85578328050aa70d052e177b", 1843 | "reference": "a31aa8029bcc0b5b85578328050aa70d052e177b", 1844 | "shasum": "" 1845 | }, 1846 | "require": { 1847 | "php": ">=5.3.3", 1848 | "symfony/filesystem": "~2.3" 1849 | }, 1850 | "type": "library", 1851 | "extra": { 1852 | "branch-alias": { 1853 | "dev-master": "2.5-dev" 1854 | } 1855 | }, 1856 | "autoload": { 1857 | "psr-0": { 1858 | "Symfony\\Component\\Config\\": "" 1859 | } 1860 | }, 1861 | "notification-url": "https://packagist.org/downloads/", 1862 | "license": [ 1863 | "MIT" 1864 | ], 1865 | "authors": [ 1866 | { 1867 | "name": "Fabien Potencier", 1868 | "email": "fabien@symfony.com", 1869 | "homepage": "http://fabien.potencier.org", 1870 | "role": "Lead Developer" 1871 | }, 1872 | { 1873 | "name": "Symfony Community", 1874 | "homepage": "http://symfony.com/contributors" 1875 | } 1876 | ], 1877 | "description": "Symfony Config Component", 1878 | "homepage": "http://symfony.com", 1879 | "time": "2014-07-09 09:05:48" 1880 | }, 1881 | { 1882 | "name": "symfony/console", 1883 | "version": "v2.5.2", 1884 | "target-dir": "Symfony/Component/Console", 1885 | "source": { 1886 | "type": "git", 1887 | "url": "https://github.com/symfony/Console.git", 1888 | "reference": "386fa63407805959bd2c5fe540294721ad4224c8" 1889 | }, 1890 | "dist": { 1891 | "type": "zip", 1892 | "url": "https://api.github.com/repos/symfony/Console/zipball/386fa63407805959bd2c5fe540294721ad4224c8", 1893 | "reference": "386fa63407805959bd2c5fe540294721ad4224c8", 1894 | "shasum": "" 1895 | }, 1896 | "require": { 1897 | "php": ">=5.3.3" 1898 | }, 1899 | "require-dev": { 1900 | "psr/log": "~1.0", 1901 | "symfony/event-dispatcher": "~2.1" 1902 | }, 1903 | "suggest": { 1904 | "psr/log": "For using the console logger", 1905 | "symfony/event-dispatcher": "" 1906 | }, 1907 | "type": "library", 1908 | "extra": { 1909 | "branch-alias": { 1910 | "dev-master": "2.5-dev" 1911 | } 1912 | }, 1913 | "autoload": { 1914 | "psr-0": { 1915 | "Symfony\\Component\\Console\\": "" 1916 | } 1917 | }, 1918 | "notification-url": "https://packagist.org/downloads/", 1919 | "license": [ 1920 | "MIT" 1921 | ], 1922 | "authors": [ 1923 | { 1924 | "name": "Fabien Potencier", 1925 | "email": "fabien@symfony.com", 1926 | "homepage": "http://fabien.potencier.org", 1927 | "role": "Lead Developer" 1928 | }, 1929 | { 1930 | "name": "Symfony Community", 1931 | "homepage": "http://symfony.com/contributors" 1932 | } 1933 | ], 1934 | "description": "Symfony Console Component", 1935 | "homepage": "http://symfony.com", 1936 | "time": "2014-07-15 14:15:12" 1937 | }, 1938 | { 1939 | "name": "symfony/stopwatch", 1940 | "version": "v2.5.2", 1941 | "target-dir": "Symfony/Component/Stopwatch", 1942 | "source": { 1943 | "type": "git", 1944 | "url": "https://github.com/symfony/Stopwatch.git", 1945 | "reference": "13cb004db921ec40d41689f471e3667037a8087e" 1946 | }, 1947 | "dist": { 1948 | "type": "zip", 1949 | "url": "https://api.github.com/repos/symfony/Stopwatch/zipball/13cb004db921ec40d41689f471e3667037a8087e", 1950 | "reference": "13cb004db921ec40d41689f471e3667037a8087e", 1951 | "shasum": "" 1952 | }, 1953 | "require": { 1954 | "php": ">=5.3.3" 1955 | }, 1956 | "type": "library", 1957 | "extra": { 1958 | "branch-alias": { 1959 | "dev-master": "2.5-dev" 1960 | } 1961 | }, 1962 | "autoload": { 1963 | "psr-0": { 1964 | "Symfony\\Component\\Stopwatch\\": "" 1965 | } 1966 | }, 1967 | "notification-url": "https://packagist.org/downloads/", 1968 | "license": [ 1969 | "MIT" 1970 | ], 1971 | "authors": [ 1972 | { 1973 | "name": "Fabien Potencier", 1974 | "email": "fabien@symfony.com", 1975 | "homepage": "http://fabien.potencier.org", 1976 | "role": "Lead Developer" 1977 | }, 1978 | { 1979 | "name": "Symfony Community", 1980 | "homepage": "http://symfony.com/contributors" 1981 | } 1982 | ], 1983 | "description": "Symfony Stopwatch Component", 1984 | "homepage": "http://symfony.com", 1985 | "time": "2014-07-09 09:05:48" 1986 | }, 1987 | { 1988 | "name": "symfony/yaml", 1989 | "version": "v2.4.1", 1990 | "target-dir": "Symfony/Component/Yaml", 1991 | "source": { 1992 | "type": "git", 1993 | "url": "https://github.com/symfony/Yaml.git", 1994 | "reference": "4e1a237fc48145fae114b96458d799746ad89aa0" 1995 | }, 1996 | "dist": { 1997 | "type": "zip", 1998 | "url": "https://api.github.com/repos/symfony/Yaml/zipball/4e1a237fc48145fae114b96458d799746ad89aa0", 1999 | "reference": "4e1a237fc48145fae114b96458d799746ad89aa0", 2000 | "shasum": "" 2001 | }, 2002 | "require": { 2003 | "php": ">=5.3.3" 2004 | }, 2005 | "type": "library", 2006 | "extra": { 2007 | "branch-alias": { 2008 | "dev-master": "2.4-dev" 2009 | } 2010 | }, 2011 | "autoload": { 2012 | "psr-0": { 2013 | "Symfony\\Component\\Yaml\\": "" 2014 | } 2015 | }, 2016 | "notification-url": "https://packagist.org/downloads/", 2017 | "license": [ 2018 | "MIT" 2019 | ], 2020 | "authors": [ 2021 | { 2022 | "name": "Fabien Potencier", 2023 | "email": "fabien@symfony.com" 2024 | }, 2025 | { 2026 | "name": "Symfony Community", 2027 | "homepage": "http://symfony.com/contributors" 2028 | } 2029 | ], 2030 | "description": "Symfony Yaml Component", 2031 | "homepage": "http://symfony.com", 2032 | "time": "2013-12-28 08:12:03" 2033 | } 2034 | ], 2035 | "aliases": [ 2036 | 2037 | ], 2038 | "minimum-stability": "stable", 2039 | "stability-flags": { 2040 | "codeclimate/php-test-reporter": 20 2041 | }, 2042 | "platform": [ 2043 | 2044 | ], 2045 | "platform-dev": [ 2046 | 2047 | ] 2048 | } 2049 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "silex-bootstrap", 3 | "repository": "https://github.com/aptoma/silex-bootstrap.git", 4 | "version": "0.0.1", 5 | "engines": { 6 | "node": ">=0.8.0" 7 | }, 8 | "devDependencies": { 9 | "grunt": "~0.4.0", 10 | "grunt-cli": "~0.1", 11 | "grunt-contrib-jshint": "~0.8", 12 | "grunt-exec": "~0.4", 13 | "time-grunt": "^0.4.0" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /php.ini: -------------------------------------------------------------------------------- 1 | extension="memcached.so" 2 | extension="apc.so" 3 | -------------------------------------------------------------------------------- /phpmd.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | Aptoma PHP Mess detector rules 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /phpunit.xml.dist: -------------------------------------------------------------------------------- 1 | 2 | 13 | 14 | 15 | ./tests/ 16 | 17 | 18 | 19 | 20 | vendor 21 | tools 22 | tests 23 | 24 | 25 | src 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /src/App/BaseWebTestCase.php: -------------------------------------------------------------------------------- 1 | pathToAppBootstrap = __DIR__.'/../../app/app.php'; 10 | parent::setUp(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/App/Controller/DefaultController.php: -------------------------------------------------------------------------------- 1 | 19 | */ 20 | class DefaultController 21 | { 22 | 23 | /** 24 | * @var \Twig_Environment 25 | */ 26 | private $twig; 27 | 28 | /** 29 | * @var LoggerInterface 30 | */ 31 | private $logger; 32 | 33 | public function __construct(\Twig_Environment $twig, LoggerInterface $logger) 34 | { 35 | $this->twig = $twig; 36 | $this->logger = $logger; 37 | } 38 | 39 | public function indexAction() 40 | { 41 | $this->logger->debug('Executing DefaultController::indexAction'); 42 | 43 | return $this->twig->render('index.twig'); 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /src/App/Silex/Application.php: -------------------------------------------------------------------------------- 1 | registerLogger($this); 19 | $this->registerTwig($this); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/App/views/index.twig: -------------------------------------------------------------------------------- 1 | {% extends 'layout.twig' %} 2 | {% block title %}DefaultController::index{% endblock %} 3 | 4 | {% block content %} 5 |

Silex Bootstrap

6 |

You have successfully bootstrapped Silex. Now get to work!

7 | {% endblock %} 8 | -------------------------------------------------------------------------------- /src/App/views/layout.twig: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Silex Bootstrap - {% block title %}No Title{% endblock %} 6 | 7 | {% block head %}{% endblock %} 8 | 9 | 10 | 11 | {% block content %}{% endblock %} 12 | 13 | {% block closing_scripts %}{% endblock %} 14 | 15 | 16 | -------------------------------------------------------------------------------- /src/README.md: -------------------------------------------------------------------------------- 1 | src folder 2 | ========= 3 | 4 | The `src` folder is where your custom developed PHP code lives. 5 | It is so far undecided whether JavaScript source files should live here, too. 6 | 7 | This folder contains two folders by default: 8 | 9 | - App, for application specific code 10 | - Aptoma, for generic code 11 | 12 | In theory, stuff in the `Aptoma` folder should have no dependencies to stuff in 13 | the `App` folder, and should be suited for extraction into separate components. 14 | It's perfectly OK to subclass stuff from `Aptoma` in `App`, in order to provide 15 | application specific functionality or defaults. 16 | 17 | Any 3rd party libraries should be managed by Composer, and will end up in the 18 | `../vendor` folder. 19 | -------------------------------------------------------------------------------- /tests/src/App/Controller/DefaultControllerTest.php: -------------------------------------------------------------------------------- 1 | createClient(); 12 | $crawler = $client->request('GET', '/'); 13 | $this->assertEquals(200, $client->getResponse()->getStatusCode()); 14 | $this->assertEquals('Silex Bootstrap', $crawler->filter('h1')->text()); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /web/.htaccess: -------------------------------------------------------------------------------- 1 | Options +FollowSymLinks 2 | Options -MultiViews 3 | 4 | RewriteEngine On 5 | RewriteCond %{REQUEST_FILENAME} !-f 6 | RewriteRule ^ index.php [L] 7 | -------------------------------------------------------------------------------- /web/css/styles.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-size: 18px; 3 | font-family: sans-serif; 4 | } 5 | -------------------------------------------------------------------------------- /web/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aptoma/silex-bootstrap/8635300438275efcc4de0ea2cdc2be46f72fbab9/web/favicon.ico -------------------------------------------------------------------------------- /web/index.php: -------------------------------------------------------------------------------- 1 | run(); 12 | } else { 13 | echo 'Failed to initialize application.'; 14 | } 15 | -------------------------------------------------------------------------------- /web/js/bootstrap.js: -------------------------------------------------------------------------------- 1 | /*global */ 2 | 3 | // This file bootstraps the js. How this should work is undecided. 4 | -------------------------------------------------------------------------------- /web/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: / 3 | --------------------------------------------------------------------------------