diff --git a/README.md b/README.md index 67d510c..df6eabf 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Website for printable building kits + # Website for printable building kits A Symfony project ## Install @@ -29,8 +29,8 @@ For full requirements see Symfony 3.2 [docs](http://symfony.com/doc/3.2/referenc #### Database 1. Set application parameters in *app/config/parameters.yml* -2. Generate empty database by running command `$ php bin/console doctrine:database:create` -3. Create database tables by running command `$ bin/console doctrine:schema:create` +2. Generate an empty database by running command (if it does not yet exist) `$ php bin/console doctrine:database:create` +3. Run doctrine migrations by running command`$ bin/console doctrine:migrations:migrate` 3. Load LDraw models into database by running commad `$ php bin/console app:load:models [--all] [--file=FILE] [--update]` 4. Load Rebrickable data into database by running command `$ php bin/console app:load:rebrickable` 5. Load relations between LDraw models and Rebrickable parts by running command `$ php bin/console app:load:relation` \ No newline at end of file diff --git a/app/AppKernel.php b/app/AppKernel.php index 302254e..58eae5d 100644 --- a/app/AppKernel.php +++ b/app/AppKernel.php @@ -14,6 +14,7 @@ class AppKernel extends Kernel new Symfony\Bundle\MonologBundle\MonologBundle(), new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(), new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(), + new Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle(), new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(), new AppBundle\AppBundle(), new Knp\Bundle\MenuBundle\KnpMenuBundle(), diff --git a/app/DoctrineMigrations/Version20170423104850.php b/app/DoctrineMigrations/Version20170423104850.php new file mode 100644 index 0000000..fba1dd6 --- /dev/null +++ b/app/DoctrineMigrations/Version20170423104850.php @@ -0,0 +1,98 @@ +abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.'); + + $this->addSql('CREATE TABLE color (id INT NOT NULL, rgb VARCHAR(6) NOT NULL, transparent TINYINT(1) NOT NULL, name VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB'); + $this->addSql('CREATE TABLE ldraw_alias (id VARCHAR(255) NOT NULL, model_id VARCHAR(255) DEFAULT NULL, UNIQUE INDEX UNIQ_D8089261BF396750 (id), INDEX IDX_D80892617975B7E7 (model_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB'); + $this->addSql('CREATE TABLE ldraw_author (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(255) DEFAULT NULL, UNIQUE INDEX UNIQ_7041BAA25E237E06 (name), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB'); + $this->addSql('CREATE TABLE ldraw_category (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(255) DEFAULT NULL, UNIQUE INDEX UNIQ_3AE257765E237E06 (name), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB'); + $this->addSql('CREATE TABLE ldraw_keyword (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(255) DEFAULT NULL, UNIQUE INDEX UNIQ_F739171F5E237E06 (name), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB'); + $this->addSql('CREATE TABLE ldraw_model (id VARCHAR(255) NOT NULL, category_id INT DEFAULT NULL, author_id INT DEFAULT NULL, name VARCHAR(255) DEFAULT NULL, path VARCHAR(255) DEFAULT NULL, modified DATETIME DEFAULT NULL, UNIQUE INDEX UNIQ_EEF18B2CBF396750 (id), INDEX IDX_EEF18B2C12469DE2 (category_id), INDEX IDX_EEF18B2CF675F31B (author_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB'); + $this->addSql('CREATE TABLE model_keyword (model_id VARCHAR(255) NOT NULL, keyword_id INT NOT NULL, INDEX IDX_3A0018CA7975B7E7 (model_id), INDEX IDX_3A0018CA115D4552 (keyword_id), PRIMARY KEY(model_id, keyword_id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB'); + $this->addSql('CREATE TABLE ldraw_subpart (parent_id VARCHAR(255) NOT NULL, subpart_id VARCHAR(255) NOT NULL, color_id INT NOT NULL, count INT NOT NULL, INDEX IDX_3D106469727ACA70 (parent_id), INDEX IDX_3D106469781E323 (subpart_id), INDEX IDX_3D1064697ADA1FB5 (color_id), PRIMARY KEY(parent_id, subpart_id, color_id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB'); + $this->addSql('CREATE TABLE rebrickable_category (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB'); + $this->addSql('CREATE TABLE rebrickable_inventory (id INT AUTO_INCREMENT NOT NULL, set_id VARCHAR(255) DEFAULT NULL, version INT NOT NULL, INDEX IDX_A88A6D6810FB0D18 (set_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB'); + $this->addSql('CREATE TABLE rebrickable_inventory_parts (color_id INT NOT NULL, spare TINYINT(1) NOT NULL, part_id VARCHAR(255) NOT NULL, inventory_id INT NOT NULL, quantity INT NOT NULL, INDEX IDX_33F22F2E7ADA1FB5 (color_id), INDEX IDX_33F22F2E4CE34BEC (part_id), INDEX IDX_33F22F2E9EEA759 (inventory_id), PRIMARY KEY(color_id, spare, part_id, inventory_id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB'); + $this->addSql('CREATE TABLE rebrickable_inventory_sets (inventory_id INT NOT NULL, set_id VARCHAR(255) NOT NULL, quantity INT NOT NULL, INDEX IDX_23DA8E2F9EEA759 (inventory_id), INDEX IDX_23DA8E2F10FB0D18 (set_id), PRIMARY KEY(inventory_id, set_id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB'); + $this->addSql('CREATE TABLE rebrickable_part (id VARCHAR(255) NOT NULL, category_id INT DEFAULT NULL, model_id VARCHAR(255) DEFAULT NULL, name VARCHAR(255) DEFAULT NULL, UNIQUE INDEX UNIQ_38E480B2BF396750 (id), INDEX IDX_38E480B212469DE2 (category_id), INDEX IDX_38E480B27975B7E7 (model_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB'); + $this->addSql('CREATE TABLE rebrickable_set (id VARCHAR(255) NOT NULL, theme_id INT DEFAULT NULL, year INT DEFAULT NULL, num_parts INT DEFAULT NULL, name VARCHAR(255) DEFAULT NULL, UNIQUE INDEX UNIQ_BC61D898BF396750 (id), INDEX IDX_BC61D89859027487 (theme_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB'); + $this->addSql('CREATE TABLE rebrickable_theme (id INT AUTO_INCREMENT NOT NULL, parent_id INT DEFAULT NULL, name VARCHAR(255) DEFAULT NULL, INDEX IDX_C06CB9DD727ACA70 (parent_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB'); + $this->addSql('ALTER TABLE ldraw_alias ADD CONSTRAINT FK_D80892617975B7E7 FOREIGN KEY (model_id) REFERENCES ldraw_model (id)'); + $this->addSql('ALTER TABLE ldraw_model ADD CONSTRAINT FK_EEF18B2C12469DE2 FOREIGN KEY (category_id) REFERENCES ldraw_category (id)'); + $this->addSql('ALTER TABLE ldraw_model ADD CONSTRAINT FK_EEF18B2CF675F31B FOREIGN KEY (author_id) REFERENCES ldraw_author (id)'); + $this->addSql('ALTER TABLE model_keyword ADD CONSTRAINT FK_3A0018CA7975B7E7 FOREIGN KEY (model_id) REFERENCES ldraw_model (id) ON DELETE CASCADE'); + $this->addSql('ALTER TABLE model_keyword ADD CONSTRAINT FK_3A0018CA115D4552 FOREIGN KEY (keyword_id) REFERENCES ldraw_keyword (id) ON DELETE CASCADE'); + $this->addSql('ALTER TABLE ldraw_subpart ADD CONSTRAINT FK_3D106469727ACA70 FOREIGN KEY (parent_id) REFERENCES ldraw_model (id)'); + $this->addSql('ALTER TABLE ldraw_subpart ADD CONSTRAINT FK_3D106469781E323 FOREIGN KEY (subpart_id) REFERENCES ldraw_model (id)'); + $this->addSql('ALTER TABLE ldraw_subpart ADD CONSTRAINT FK_3D1064697ADA1FB5 FOREIGN KEY (color_id) REFERENCES color (id)'); + $this->addSql('ALTER TABLE rebrickable_inventory ADD CONSTRAINT FK_A88A6D6810FB0D18 FOREIGN KEY (set_id) REFERENCES rebrickable_set (id)'); + $this->addSql('ALTER TABLE rebrickable_inventory_parts ADD CONSTRAINT FK_33F22F2E7ADA1FB5 FOREIGN KEY (color_id) REFERENCES color (id)'); + $this->addSql('ALTER TABLE rebrickable_inventory_parts ADD CONSTRAINT FK_33F22F2E4CE34BEC FOREIGN KEY (part_id) REFERENCES rebrickable_part (id)'); + $this->addSql('ALTER TABLE rebrickable_inventory_parts ADD CONSTRAINT FK_33F22F2E9EEA759 FOREIGN KEY (inventory_id) REFERENCES rebrickable_inventory (id)'); + $this->addSql('ALTER TABLE rebrickable_inventory_sets ADD CONSTRAINT FK_23DA8E2F9EEA759 FOREIGN KEY (inventory_id) REFERENCES rebrickable_inventory (id)'); + $this->addSql('ALTER TABLE rebrickable_inventory_sets ADD CONSTRAINT FK_23DA8E2F10FB0D18 FOREIGN KEY (set_id) REFERENCES rebrickable_set (id)'); + $this->addSql('ALTER TABLE rebrickable_part ADD CONSTRAINT FK_38E480B212469DE2 FOREIGN KEY (category_id) REFERENCES rebrickable_category (id)'); + $this->addSql('ALTER TABLE rebrickable_part ADD CONSTRAINT FK_38E480B27975B7E7 FOREIGN KEY (model_id) REFERENCES ldraw_model (id)'); + $this->addSql('ALTER TABLE rebrickable_set ADD CONSTRAINT FK_BC61D89859027487 FOREIGN KEY (theme_id) REFERENCES rebrickable_theme (id)'); + $this->addSql('ALTER TABLE rebrickable_theme ADD CONSTRAINT FK_C06CB9DD727ACA70 FOREIGN KEY (parent_id) REFERENCES rebrickable_theme (id) ON DELETE SET NULL'); + } + + /** + * @param Schema $schema + */ + public function down(Schema $schema) + { + // this down() migration is auto-generated, please modify it to your needs + $this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.'); + + $this->addSql('ALTER TABLE ldraw_subpart DROP FOREIGN KEY FK_3D1064697ADA1FB5'); + $this->addSql('ALTER TABLE rebrickable_inventory_parts DROP FOREIGN KEY FK_33F22F2E7ADA1FB5'); + $this->addSql('ALTER TABLE ldraw_model DROP FOREIGN KEY FK_EEF18B2CF675F31B'); + $this->addSql('ALTER TABLE ldraw_model DROP FOREIGN KEY FK_EEF18B2C12469DE2'); + $this->addSql('ALTER TABLE model_keyword DROP FOREIGN KEY FK_3A0018CA115D4552'); + $this->addSql('ALTER TABLE ldraw_alias DROP FOREIGN KEY FK_D80892617975B7E7'); + $this->addSql('ALTER TABLE model_keyword DROP FOREIGN KEY FK_3A0018CA7975B7E7'); + $this->addSql('ALTER TABLE ldraw_subpart DROP FOREIGN KEY FK_3D106469727ACA70'); + $this->addSql('ALTER TABLE ldraw_subpart DROP FOREIGN KEY FK_3D106469781E323'); + $this->addSql('ALTER TABLE rebrickable_part DROP FOREIGN KEY FK_38E480B27975B7E7'); + $this->addSql('ALTER TABLE rebrickable_part DROP FOREIGN KEY FK_38E480B212469DE2'); + $this->addSql('ALTER TABLE rebrickable_inventory_parts DROP FOREIGN KEY FK_33F22F2E9EEA759'); + $this->addSql('ALTER TABLE rebrickable_inventory_sets DROP FOREIGN KEY FK_23DA8E2F9EEA759'); + $this->addSql('ALTER TABLE rebrickable_inventory_parts DROP FOREIGN KEY FK_33F22F2E4CE34BEC'); + $this->addSql('ALTER TABLE rebrickable_inventory DROP FOREIGN KEY FK_A88A6D6810FB0D18'); + $this->addSql('ALTER TABLE rebrickable_inventory_sets DROP FOREIGN KEY FK_23DA8E2F10FB0D18'); + $this->addSql('ALTER TABLE rebrickable_set DROP FOREIGN KEY FK_BC61D89859027487'); + $this->addSql('ALTER TABLE rebrickable_theme DROP FOREIGN KEY FK_C06CB9DD727ACA70'); + $this->addSql('DROP TABLE color'); + $this->addSql('DROP TABLE ldraw_alias'); + $this->addSql('DROP TABLE ldraw_author'); + $this->addSql('DROP TABLE ldraw_category'); + $this->addSql('DROP TABLE ldraw_keyword'); + $this->addSql('DROP TABLE ldraw_model'); + $this->addSql('DROP TABLE model_keyword'); + $this->addSql('DROP TABLE ldraw_subpart'); + $this->addSql('DROP TABLE rebrickable_category'); + $this->addSql('DROP TABLE rebrickable_inventory'); + $this->addSql('DROP TABLE rebrickable_inventory_parts'); + $this->addSql('DROP TABLE rebrickable_inventory_sets'); + $this->addSql('DROP TABLE rebrickable_part'); + $this->addSql('DROP TABLE rebrickable_set'); + $this->addSql('DROP TABLE rebrickable_theme'); + } +} diff --git a/app/config/config.yml b/app/config/config.yml index ab7ca80..ab68bba 100644 --- a/app/config/config.yml +++ b/app/config/config.yml @@ -65,6 +65,12 @@ doctrine: naming_strategy: doctrine.orm.naming_strategy.underscore auto_mapping: true +doctrine_migrations: + dir_name: "%kernel.root_dir%/DoctrineMigrations" + namespace: Application\Migrations + table_name: migration_versions + name: Application Migrations + ## Swiftmailer Configuration #swiftmailer: # transport: "%mailer_transport%" diff --git a/composer.json b/composer.json index 2a7f64b..24ebd1e 100644 --- a/composer.json +++ b/composer.json @@ -16,6 +16,7 @@ "doctrine/orm": "^2.5", "doctrine/doctrine-bundle": "^1.6", "doctrine/doctrine-cache-bundle": "^1.2", + "doctrine/doctrine-migrations-bundle": "^1.0", "symfony/swiftmailer-bundle": "^2.3", "symfony/monolog-bundle": "^2.8", "symfony/polyfill-apcu": "^1.0", diff --git a/composer.lock b/composer.lock index 185359a..16f252a 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "content-hash": "6a70240b303126447c6fc3c6f75bf6ff", + "content-hash": "3a905d4672661093643cd94176a46740", "packages": [ { "name": "composer/ca-bundle", @@ -582,6 +582,67 @@ ], "time": "2016-01-26T17:28:51+00:00" }, + { + "name": "doctrine/doctrine-migrations-bundle", + "version": "v1.2.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/DoctrineMigrationsBundle.git", + "reference": "6276139e0b913a4e5120fc36bb5b0eae8ac549bc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/6276139e0b913a4e5120fc36bb5b0eae8ac549bc", + "reference": "6276139e0b913a4e5120fc36bb5b0eae8ac549bc", + "shasum": "" + }, + "require": { + "doctrine/doctrine-bundle": "~1.0", + "doctrine/migrations": "^1.1", + "php": ">=5.4.0", + "symfony/framework-bundle": "~2.3|~3.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.8" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "1.2-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Bundle\\MigrationsBundle\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Symfony Community", + "homepage": "http://symfony.com/contributors" + }, + { + "name": "Doctrine Project", + "homepage": "http://www.doctrine-project.org" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + } + ], + "description": "Symfony DoctrineMigrationsBundle", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "dbal", + "migrations", + "schema" + ], + "time": "2016-12-05T18:36:37+00:00" + }, { "name": "doctrine/inflector", "version": "v1.1.0", @@ -757,6 +818,80 @@ ], "time": "2014-09-09T13:34:57+00:00" }, + { + "name": "doctrine/migrations", + "version": "v1.5.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/migrations.git", + "reference": "c81147c0f2938a6566594455367e095150547f72" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/migrations/zipball/c81147c0f2938a6566594455367e095150547f72", + "reference": "c81147c0f2938a6566594455367e095150547f72", + "shasum": "" + }, + "require": { + "doctrine/dbal": "~2.2", + "ocramius/proxy-manager": "^1.0|^2.0", + "php": "^5.5|^7.0", + "symfony/console": "~2.3|~3.0", + "symfony/yaml": "~2.3|~3.0" + }, + "require-dev": { + "doctrine/coding-standard": "dev-master", + "doctrine/orm": "2.*", + "jdorn/sql-formatter": "~1.1", + "johnkary/phpunit-speedtrap": "~1.0@dev", + "mikey179/vfsstream": "^1.6", + "mockery/mockery": "^0.9.4", + "phpunit/phpunit": "~4.7", + "satooshi/php-coveralls": "^1.0" + }, + "suggest": { + "jdorn/sql-formatter": "Allows to generate formatted SQL with the diff command." + }, + "bin": [ + "bin/doctrine-migrations" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "v1.6.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\DBAL\\Migrations\\": "lib/Doctrine/DBAL/Migrations" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1" + ], + "authors": [ + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Michael Simonson", + "email": "contact@mikesimonson.com" + } + ], + "description": "Database Schema migrations using Doctrine DBAL", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "database", + "migrations" + ], + "time": "2016-12-25T22:54:00+00:00" + }, { "name": "doctrine/orm", "version": "v2.5.6", @@ -1169,94 +1304,6 @@ ], "time": "2014-01-12T16:20:24+00:00" }, - { - "name": "knplabs/gaufrette", - "version": "v0.3.1", - "source": { - "type": "git", - "url": "https://github.com/KnpLabs/Gaufrette.git", - "reference": "771ad16f4b2e7f9d35f44b201956e83c6fbf5dde" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/KnpLabs/Gaufrette/zipball/771ad16f4b2e7f9d35f44b201956e83c6fbf5dde", - "reference": "771ad16f4b2e7f9d35f44b201956e83c6fbf5dde", - "shasum": "" - }, - "require": { - "php": ">=5.4" - }, - "conflict": { - "microsoft/windowsazure": "<0.4.3" - }, - "require-dev": { - "amazonwebservices/aws-sdk-for-php": "1.5.*", - "aws/aws-sdk-php": "^2.4.12", - "doctrine/dbal": ">=2.3", - "dropbox-php/dropbox-php": "*", - "google/apiclient": "~1.1.3", - "herzult/php-ssh": "*", - "league/flysystem": "~1.0", - "mikey179/vfsstream": "~1.2.0", - "phpseclib/phpseclib": "^2.0", - "phpspec/phpspec": "~2.4", - "phpunit/phpunit": "3.7.*", - "rackspace/php-opencloud": "^1.9.2" - }, - "suggest": { - "amazonwebservices/aws-sdk-for-php": "to use the legacy Amazon S3 adapters", - "aws/aws-sdk-php": "to use the Amazon S3 adapter", - "doctrine/dbal": "to use the Doctrine DBAL adapter", - "dropbox-php/dropbox-php": "to use the Dropbox adapter", - "ext-apc": "to use the APC adapter", - "ext-curl": "*", - "ext-fileinfo": "This extension is used to automatically detect the content-type of a file in the AwsS3, OpenCloud, AzureBlogStorage and GoogleCloudStorage adapters", - "ext-mbstring": "*", - "ext-mongo": "*", - "ext-zip": "to use the Zip adapter", - "google/apiclient": "to use GoogleCloudStorage adapter", - "herzult/php-ssh": "to use SFtp adapter", - "knplabs/knp-gaufrette-bundle": "to use with Symfony2", - "league/flysystem": "to use Flysystem adapters", - "microsoft/windowsazure": "to use Microsoft Azure Blob Storage adapter", - "phpseclib/phpseclib": "to use PhpseclibSftp adapter", - "rackspace/php-opencloud": "to use Opencloud adapter" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "0.4.x-dev" - } - }, - "autoload": { - "psr-0": { - "Gaufrette": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "The contributors", - "homepage": "http://github.com/knplabs/Gaufrette/contributors" - }, - { - "name": "KnpLabs Team", - "homepage": "http://knplabs.com" - } - ], - "description": "PHP5 library that provides a filesystem abstraction layer", - "homepage": "http://knplabs.com", - "keywords": [ - "abstraction", - "file", - "filesystem", - "media" - ], - "time": "2017-03-20T01:23:34+00:00" - }, { "name": "knplabs/knp-components", "version": "1.3.4", @@ -1328,64 +1375,6 @@ ], "time": "2016-12-06T18:10:24+00:00" }, - { - "name": "knplabs/knp-gaufrette-bundle", - "version": "v0.4.0", - "source": { - "type": "git", - "url": "https://github.com/KnpLabs/KnpGaufretteBundle.git", - "reference": "06d91a8a575773cd0361c1246c9c499b6bdd5d68" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/KnpLabs/KnpGaufretteBundle/zipball/06d91a8a575773cd0361c1246c9c499b6bdd5d68", - "reference": "06d91a8a575773cd0361c1246c9c499b6bdd5d68", - "shasum": "" - }, - "require": { - "knplabs/gaufrette": "~0.1.7|~0.2|~0.3", - "symfony/framework-bundle": "~2.0|~3.0" - }, - "require-dev": { - "phpunit/phpunit": "~4.2", - "symfony/console": "~2.0|~3.0", - "symfony/yaml": "~2.0|~3.0" - }, - "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "0.4.x-dev" - } - }, - "autoload": { - "psr-4": { - "Knp\\Bundle\\GaufretteBundle\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "The contributors", - "homepage": "https://github.com/knplabs/KnpGaufretteBundle/contributors" - }, - { - "name": "Antoine Hérault", - "email": "antoine.herault@gmail.com" - } - ], - "description": "Allows to easily use the Gaufrette library in a Symfony project", - "homepage": "http://knplabs.com", - "keywords": [ - "abstraction", - "file", - "filesystem", - "media" - ], - "time": "2017-03-16T21:01:25+00:00" - }, { "name": "knplabs/knp-menu", "version": "2.2.0", @@ -1892,6 +1881,69 @@ ], "time": "2017-03-13T07:08:03+00:00" }, + { + "name": "ocramius/proxy-manager", + "version": "1.0.2", + "source": { + "type": "git", + "url": "https://github.com/Ocramius/ProxyManager.git", + "reference": "57e9272ec0e8deccf09421596e0e2252df440e11" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Ocramius/ProxyManager/zipball/57e9272ec0e8deccf09421596e0e2252df440e11", + "reference": "57e9272ec0e8deccf09421596e0e2252df440e11", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "zendframework/zend-code": ">2.2.5,<3.0" + }, + "require-dev": { + "ext-phar": "*", + "phpunit/phpunit": "~4.0", + "squizlabs/php_codesniffer": "1.5.*" + }, + "suggest": { + "ocramius/generated-hydrator": "To have very fast object to array to object conversion for ghost objects", + "zendframework/zend-json": "To have the JsonRpc adapter (Remote Object feature)", + "zendframework/zend-soap": "To have the Soap adapter (Remote Object feature)", + "zendframework/zend-stdlib": "To use the hydrator proxy", + "zendframework/zend-xmlrpc": "To have the XmlRpc adapter (Remote Object feature)" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-0": { + "ProxyManager\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "http://ocramius.github.com/" + } + ], + "description": "A library providing utilities to generate, instantiate and generally operate with Object Proxies", + "homepage": "https://github.com/Ocramius/ProxyManager", + "keywords": [ + "aop", + "lazy loading", + "proxy", + "proxy pattern", + "service proxies" + ], + "time": "2015-08-09T04:28:19+00:00" + }, { "name": "oneup/flysystem-bundle", "version": "1.12.0", @@ -2337,16 +2389,16 @@ }, { "name": "swiftmailer/swiftmailer", - "version": "v5.4.6", + "version": "v5.4.7", "source": { "type": "git", "url": "https://github.com/swiftmailer/swiftmailer.git", - "reference": "81fdccfaf8bdc5d5d7a1ef6bb3a61bbb1a6c4a3e" + "reference": "56db4ed32a6d5c9824c3ecc1d2e538f663f47eb4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/81fdccfaf8bdc5d5d7a1ef6bb3a61bbb1a6c4a3e", - "reference": "81fdccfaf8bdc5d5d7a1ef6bb3a61bbb1a6c4a3e", + "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/56db4ed32a6d5c9824c3ecc1d2e538f663f47eb4", + "reference": "56db4ed32a6d5c9824c3ecc1d2e538f663f47eb4", "shasum": "" }, "require": { @@ -2387,7 +2439,7 @@ "mail", "mailer" ], - "time": "2017-02-13T07:52:53+00:00" + "time": "2017-04-20T17:32:18+00:00" }, { "name": "symfony/monolog-bundle", @@ -2991,16 +3043,16 @@ }, { "name": "twig/twig", - "version": "v1.33.0", + "version": "v1.33.2", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "05cf49921b13f6f01d3cfdf9018cfa7a8086fd5a" + "reference": "dd6ca96227917e1e85b41c7c3cc6507b411e0927" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/05cf49921b13f6f01d3cfdf9018cfa7a8086fd5a", - "reference": "05cf49921b13f6f01d3cfdf9018cfa7a8086fd5a", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/dd6ca96227917e1e85b41c7c3cc6507b411e0927", + "reference": "dd6ca96227917e1e85b41c7c3cc6507b411e0927", "shasum": "" }, "require": { @@ -3049,22 +3101,128 @@ "keywords": [ "templating" ], - "time": "2017-03-22T15:40:09+00:00" + "time": "2017-04-20T17:39:48+00:00" + }, + { + "name": "zendframework/zend-code", + "version": "2.6.3", + "source": { + "type": "git", + "url": "https://github.com/zendframework/zend-code.git", + "reference": "95033f061b083e16cdee60530ec260d7d628b887" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/zendframework/zend-code/zipball/95033f061b083e16cdee60530ec260d7d628b887", + "reference": "95033f061b083e16cdee60530ec260d7d628b887", + "shasum": "" + }, + "require": { + "php": "^5.5 || 7.0.0 - 7.0.4 || ^7.0.6", + "zendframework/zend-eventmanager": "^2.6 || ^3.0" + }, + "require-dev": { + "doctrine/annotations": "~1.0", + "fabpot/php-cs-fixer": "1.7.*", + "phpunit/phpunit": "^4.8.21", + "zendframework/zend-stdlib": "^2.7 || ^3.0" + }, + "suggest": { + "doctrine/annotations": "Doctrine\\Common\\Annotations >=1.0 for annotation features", + "zendframework/zend-stdlib": "Zend\\Stdlib component" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.6-dev", + "dev-develop": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Zend\\Code\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "provides facilities to generate arbitrary code using an object oriented interface", + "homepage": "https://github.com/zendframework/zend-code", + "keywords": [ + "code", + "zf2" + ], + "time": "2016-04-20T17:26:42+00:00" + }, + { + "name": "zendframework/zend-eventmanager", + "version": "3.0.1", + "source": { + "type": "git", + "url": "https://github.com/zendframework/zend-eventmanager.git", + "reference": "5c80bdee0e952be112dcec0968bad770082c3a6e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/zendframework/zend-eventmanager/zipball/5c80bdee0e952be112dcec0968bad770082c3a6e", + "reference": "5c80bdee0e952be112dcec0968bad770082c3a6e", + "shasum": "" + }, + "require": { + "php": "^5.5 || ^7.0" + }, + "require-dev": { + "athletic/athletic": "^0.1", + "container-interop/container-interop": "^1.1.0", + "phpunit/phpunit": "~4.0", + "squizlabs/php_codesniffer": "^2.0", + "zendframework/zend-stdlib": "^2.7.3 || ^3.0" + }, + "suggest": { + "container-interop/container-interop": "^1.1.0, to use the lazy listeners feature", + "zendframework/zend-stdlib": "^2.7.3 || ^3.0, to use the FilterChain feature" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev", + "dev-develop": "3.1-dev" + } + }, + "autoload": { + "psr-4": { + "Zend\\EventManager\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Trigger and listen to events within a PHP application", + "homepage": "https://github.com/zendframework/zend-eventmanager", + "keywords": [ + "event", + "eventmanager", + "events", + "zf2" + ], + "time": "2016-02-18T20:53:00+00:00" } ], "packages-dev": [ { "name": "friendsofphp/php-cs-fixer", - "version": "v2.2.0", + "version": "v2.2.1", "source": { "type": "git", "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git", - "reference": "d6f17423412d33df6b69c9aaf12037b91703533b" + "reference": "aff95e090fdaf57c20d32d7728b090f2015bfcef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/d6f17423412d33df6b69c9aaf12037b91703533b", - "reference": "d6f17423412d33df6b69c9aaf12037b91703533b", + "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/aff95e090fdaf57c20d32d7728b090f2015bfcef", + "reference": "aff95e090fdaf57c20d32d7728b090f2015bfcef", "shasum": "" }, "require": { @@ -3128,7 +3286,7 @@ } ], "description": "A tool to automatically fix PHP code style", - "time": "2017-03-31T16:16:30+00:00" + "time": "2017-04-07T15:22:27+00:00" }, { "name": "ircmaxell/password-compat",