*/
class Version20160401000000 extends WallabagMigration
{
- /**
- * @param Schema $schema
- */
public function up(Schema $schema)
{
$this->skipIf($schema->hasTable($this->getTable('entry')), 'Database already initialized');
}
}
- /**
- * @param Schema $schema
- */
public function down(Schema $schema)
{
$this->addSql("DROP TABLE {$this->getTable('craue_config_setting')}");
*/
class Version20160410190541 extends WallabagMigration
{
- /**
- * @param Schema $schema
- */
public function up(Schema $schema)
{
$entryTable = $schema->getTable($this->getTable('entry'));
}
}
- /**
- * @param Schema $schema
- */
public function down(Schema $schema)
{
$entryTable = $schema->getTable($this->getTable('entry'));
*/
class Version20160812120952 extends WallabagMigration
{
- /**
- * @param Schema $schema
- */
public function up(Schema $schema)
{
$clientsTable = $schema->getTable($this->getTable('oauth2_clients'));
}
}
- /**
- * @param Schema $schema
- */
public function down(Schema $schema)
{
$clientsTable = $schema->getTable($this->getTable('oauth2_clients'));
*/
class Version20160911214952 extends WallabagMigration
{
- /**
- * @param Schema $schema
- */
public function up(Schema $schema)
{
$redis = $this->container
$this->skipIf(false !== $rabbitmq && false !== $redis, 'It seems that you already played this migration.');
}
- /**
- * @param Schema $schema
- */
public function down(Schema $schema)
{
$this->addSql('DELETE FROM ' . $this->getTable('craue_config_setting') . " WHERE name = 'import_with_redis';");
*/
class Version20160916201049 extends WallabagMigration
{
- /**
- * @param Schema $schema
- */
public function up(Schema $schema)
{
$configTable = $schema->getTable($this->getTable('config'));
$this->addSql('DELETE FROM ' . $this->getTable('craue_config_setting') . " WHERE name = 'pocket_consumer_key';");
}
- /**
- * @param Schema $schema
- */
public function down(Schema $schema)
{
$configTable = $schema->getTable($this->getTable('config'));
*/
class Version20161001072726 extends WallabagMigration
{
- /**
- * @param Schema $schema
- */
public function up(Schema $schema)
{
$this->skipIf('sqlite' === $this->connection->getDatabasePlatform()->getName(), 'Migration can only be executed safely on \'mysql\' or \'postgresql\'.');
$this->addSql('ALTER TABLE ' . $this->getTable('annotation') . ' ADD CONSTRAINT FK_annotation_entry FOREIGN KEY (entry_id) REFERENCES ' . $this->getTable('entry') . ' (id) ON DELETE CASCADE');
}
- /**
- * @param Schema $schema
- */
public function down(Schema $schema)
{
throw new SkipMigrationException('Too complex ...');
*/
class Version20161022134138 extends WallabagMigration
{
- /**
- * @param Schema $schema
- */
public function up(Schema $schema)
{
$this->skipIf('mysql' !== $this->connection->getDatabasePlatform()->getName(), 'This migration only apply to MySQL');
$this->addSql('ALTER TABLE ' . $this->getTable('user') . ' CHANGE `name` `name` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;');
}
- /**
- * @param Schema $schema
- */
public function down(Schema $schema)
{
$this->skipIf('mysql' !== $this->connection->getDatabasePlatform()->getName(), 'This migration only apply to MySQL');
{
private $constraintName = 'IDX_user_oauth_client';
- /**
- * @param Schema $schema
- */
public function up(Schema $schema)
{
$clientsTable = $schema->getTable($this->getTable('oauth2_clients'));
);
}
- /**
- * @param Schema $schema
- */
public function down(Schema $schema)
{
$clientsTable = $schema->getTable($this->getTable('oauth2_clients'));
*/
class Version20161031132655 extends WallabagMigration
{
- /**
- * @param Schema $schema
- */
public function up(Schema $schema)
{
$images = $this->container
$this->addSql('INSERT INTO ' . $this->getTable('craue_config_setting') . " (name, value, section) VALUES ('download_images_enabled', 0, 'misc')");
}
- /**
- * @param Schema $schema
- */
public function down(Schema $schema)
{
$this->addSql('DELETE FROM ' . $this->getTable('craue_config_setting') . " WHERE name = 'download_images_enabled';");
{
private $indexName = 'IDX_entry_created_at';
- /**
- * @param Schema $schema
- */
public function up(Schema $schema)
{
$entryTable = $schema->getTable($this->getTable('entry'));
$entryTable->addIndex(['created_at'], $this->indexName);
}
- /**
- * @param Schema $schema
- */
public function down(Schema $schema)
{
$entryTable = $schema->getTable($this->getTable('entry'));
*/
class Version20161106113822 extends WallabagMigration
{
- /**
- * @param Schema $schema
- */
public function up(Schema $schema)
{
$configTable = $schema->getTable($this->getTable('config'));
]);
}
- /**
- * @param Schema $schema
- */
public function down(Schema $schema)
{
$configTable = $schema->getTable($this->getTable('config'));
*/
class Version20161117071626 extends WallabagMigration
{
- /**
- * @param Schema $schema
- */
public function up(Schema $schema)
{
$share = $this->container
$this->skipIf(false !== $share && false !== $unmark, 'It seems that you already played this migration.');
}
- /**
- * @param Schema $schema
- */
public function down(Schema $schema)
{
$this->addSql('DELETE FROM ' . $this->getTable('craue_config_setting') . " WHERE name = 'share_unmark';");
*/
class Version20161118134328 extends WallabagMigration
{
- /**
- * @param Schema $schema
- */
public function up(Schema $schema)
{
$entryTable = $schema->getTable($this->getTable('entry'));
]);
}
- /**
- * @param Schema $schema
- */
public function down(Schema $schema)
{
$entryTable = $schema->getTable($this->getTable('entry'));
*/
class Version20161122144743 extends WallabagMigration
{
- /**
- * @param Schema $schema
- */
public function up(Schema $schema)
{
$access = $this->container
$this->addSql('INSERT INTO ' . $this->getTable('craue_config_setting') . " (name, value, section) VALUES ('restricted_access', 0, 'entry')");
}
- /**
- * @param Schema $schema
- */
public function down(Schema $schema)
{
$this->addSql('DELETE FROM ' . $this->getTable('craue_config_setting') . " WHERE name = 'restricted_access';");
*/
class Version20161122203647 extends WallabagMigration
{
- /**
- * @param Schema $schema
- */
public function up(Schema $schema)
{
$userTable = $schema->getTable($this->getTable('user'));
$userTable->dropColumn('credentials_expired');
}
- /**
- * @param Schema $schema
- */
public function down(Schema $schema)
{
$userTable = $schema->getTable($this->getTable('user'));
*/
class Version20161128084725 extends WallabagMigration
{
- /**
- * @param Schema $schema
- */
public function up(Schema $schema)
{
$configTable = $schema->getTable($this->getTable('config'));
$configTable->addColumn('list_mode', 'integer', ['notnull' => false]);
}
- /**
- * @param Schema $schema
- */
public function down(Schema $schema)
{
$configTable = $schema->getTable($this->getTable('config'));
'expires_at' => 'datetime',
];
- /**
- * @param Schema $schema
- */
public function up(Schema $schema)
{
$userTable = $schema->getTable($this->getTable('user'));
}
}
- /**
- * @param Schema $schema
- */
public function down(Schema $schema)
{
$userTable = $schema->getTable($this->getTable('user'));
*/
class Version20161214094402 extends WallabagMigration
{
- /**
- * @param Schema $schema
- */
public function up(Schema $schema)
{
$entryTable = $schema->getTable($this->getTable('entry'));
}
}
- /**
- * @param Schema $schema
- */
public function down(Schema $schema)
{
$entryTable = $schema->getTable($this->getTable('entry'));
{
private $indexName = 'IDX_entry_uid';
- /**
- * @param Schema $schema
- */
public function up(Schema $schema)
{
$entryTable = $schema->getTable($this->getTable('entry'));
$entryTable->addIndex(['uid'], $this->indexName);
}
- /**
- * @param Schema $schema
- */
public function down(Schema $schema)
{
$entryTable = $schema->getTable($this->getTable('entry'));
private $indexStarredName = 'IDX_entry_starred';
private $indexArchivedName = 'IDX_entry_archived';
- /**
- * @param Schema $schema
- */
public function up(Schema $schema)
{
$entryTable = $schema->getTable($this->getTable('entry'));
$entryTable->addIndex(['is_archived'], $this->indexArchivedName);
}
- /**
- * @param Schema $schema
- */
public function down(Schema $schema)
{
$entryTable = $schema->getTable($this->getTable('entry'));
*/
class Version20170327194233 extends WallabagMigration
{
- /**
- * @param Schema $schema
- */
public function up(Schema $schema)
{
$scuttle = $this->container
$this->addSql('INSERT INTO ' . $this->getTable('craue_config_setting') . " (name, value, section) VALUES ('scuttle_url', 'http://scuttle.org', 'entry')");
}
- /**
- * @param Schema $schema
- */
public function down(Schema $schema)
{
$this->addSql('DELETE FROM ' . $this->getTable('craue_config_setting') . " WHERE name = 'share_scuttle';");
*/
class Version20170405182620 extends WallabagMigration
{
- /**
- * @param Schema $schema
- */
public function up(Schema $schema)
{
$entryTable = $schema->getTable($this->getTable('entry'));
]);
}
- /**
- * @param Schema $schema
- */
public function down(Schema $schema)
{
$entryTable = $schema->getTable($this->getTable('entry'));
*/
class Version20170407200919 extends WallabagMigration
{
- /**
- * @param Schema $schema
- */
public function up(Schema $schema)
{
$entryTable = $schema->getTable($this->getTable('entry'));
$entryTable->dropColumn('is_public');
}
- /**
- * @param Schema $schema
- */
public function down(Schema $schema)
{
$entryTable = $schema->getTable($this->getTable('entry'));
*/
class Version20170420134133 extends WallabagMigration
{
- /**
- * @param Schema $schema
- */
public function up(Schema $schema)
{
$this->addSql('DELETE FROM ' . $this->getTable('craue_config_setting') . " WHERE name = 'download_pictures';");
}
- /**
- * @param Schema $schema
- */
public function down(Schema $schema)
{
$downloadPictures = $this->container
*/
class Version20170501115751 extends WallabagMigration
{
- /**
- * @param Schema $schema
- */
public function up(Schema $schema)
{
$this->skipIf($schema->hasTable($this->getTable('site_credential')), 'It seems that you already played this migration.');
}
}
- /**
- * @param Schema $schema
- */
public function down(Schema $schema)
{
$schema->dropTable($this->getTable('site_credential'));
'email_canonical',
];
- /**
- * @param Schema $schema
- */
public function up(Schema $schema)
{
$this->skipIf('mysql' !== $this->connection->getDatabasePlatform()->getName(), 'This migration only apply to MySQL');
}
}
- /**
- * @param Schema $schema
- */
public function down(Schema $schema)
{
$this->skipIf('mysql' !== $this->connection->getDatabasePlatform()->getName(), 'This migration only apply to MySQL');
*/
class Version20170511115400 extends WallabagMigration
{
- /**
- * @param Schema $schema
- */
public function up(Schema $schema)
{
$entryTable = $schema->getTable($this->getTable('entry'));
]);
}
- /**
- * @param Schema $schema
- */
public function down(Schema $schema)
{
$entryTable = $schema->getTable($this->getTable('entry'));
*/
class Version20170602075214 extends WallabagMigration
{
- /**
- * @param Schema $schema
- */
public function up(Schema $schema)
{
$apiUserRegistration = $this->container
$this->addSql('INSERT INTO ' . $this->getTable('craue_config_setting') . " (name, value, section) VALUES ('api_user_registration', '0', 'api')");
}
- /**
- * @param Schema $schema
- */
public function down(Schema $schema)
{
$this->addSql('DELETE FROM ' . $this->getTable('craue_config_setting') . " WHERE name = 'api_user_registration';");
*/
class Version20170606155640 extends WallabagMigration
{
- /**
- * @param Schema $schema
- */
public function up(Schema $schema)
{
$apiUserRegistration = $this->container
$this->addSql('DELETE FROM ' . $this->getTable('craue_config_setting') . " WHERE name = 'wallabag_url'");
}
- /**
- * @param Schema $schema
- */
public function down(Schema $schema)
{
$this->addSql('INSERT INTO ' . $this->getTable('craue_config_setting') . " (name, value, section) VALUES ('wallabag_url', 'wallabag.me', 'misc')");
*/
class Version20170719231144 extends WallabagMigration
{
- /**
- * @param Schema $schema
- */
public function up(Schema $schema)
{
$this->skipIf('sqlite' === $this->connection->getDatabasePlatform()->getName(), 'Migration can only be executed safely on \'mysql\' or \'postgresql\'.');
);
}
- /**
- * @param Schema $schema
- */
public function down(Schema $schema)
{
throw new SkipMigrationException('Too complex ...');
*/
class Version20170824113337 extends WallabagMigration
{
- /**
- * @param Schema $schema
- */
public function up(Schema $schema)
{
$entryTable = $schema->getTable($this->getTable('entry'));
);
}
- /**
- * @param Schema $schema
- */
public function down(Schema $schema)
{
$entryTable = $schema->getTable($this->getTable('entry'));
*/
class Version20171008195606 extends WallabagMigration
{
- /**
- * @param Schema $schema
- */
public function up(Schema $schema)
{
$this->skipIf('sqlite' === $this->connection->getDatabasePlatform()->getName(), 'Migration can only be executed safely on \'mysql\' or \'postgresql\'.');
}
}
- /**
- * @param Schema $schema
- */
public function down(Schema $schema)
{
$this->skipIf('sqlite' === $this->connection->getDatabasePlatform()->getName(), 'Migration can only be executed safely on \'mysql\' or \'postgresql\'.');
*/
class Version20171105202000 extends WallabagMigration
{
- /**
- * @param Schema $schema
- */
public function up(Schema $schema)
{
$entryTable = $schema->getTable($this->getTable('entry'));
]);
}
- /**
- * @param Schema $schema
- */
public function down(Schema $schema)
{
$entryTable = $schema->getTable($this->getTable('entry'));
*/
class Version20171120163128 extends WallabagMigration
{
- /**
- * @param Schema $schema
- */
public function up(Schema $schema)
{
$storeArticleHeaders = $this->container
$this->addSql('INSERT INTO ' . $this->getTable('craue_config_setting') . " (name, value, section) VALUES ('store_article_headers', '0', 'entry')");
}
- /**
- * @param Schema $schema
- */
public function down(Schema $schema)
{
$this->addSql('DELETE FROM ' . $this->getTable('craue_config_setting') . " WHERE name = 'store_article_headers';");
*/
class Version20171125164500 extends WallabagMigration
{
- /**
- * @param Schema $schema
- */
public function up(Schema $schema)
{
$shaarliShareOriginUrl = $this->container
$this->addSql('INSERT INTO ' . $this->getTable('craue_config_setting') . " (name, value, section) VALUES ('shaarli_share_origin_url', '0', 'entry')");
}
- /**
- * @param Schema $schema
- */
public function down(Schema $schema)
{
$this->addSql('DELETE FROM ' . $this->getTable('craue_config_setting') . " WHERE name = 'shaarli_share_origin_url';");
*/
class Version20180405182455 extends WallabagMigration
{
- /**
- * @param Schema $schema
- */
public function up(Schema $schema)
{
$entryTable = $schema->getTable($this->getTable('entry'));
);
}
- /**
- * @param Schema $schema
- */
public function down(Schema $schema)
{
$entryTable = $schema->getTable($this->getTable('entry'));
*/
class Version20181128203230 extends WallabagMigration
{
- /**
- * @param Schema $schema
- */
public function up(Schema $schema)
{
$this->skipIf('mysql' !== $this->connection->getDatabasePlatform()->getName(), 'This migration can only be applied on \'mysql\'.');
],
];
- /**
- * @param Schema $schema
- */
public function up(Schema $schema)
{
foreach ($this->settings as $setting) {
}
}
- /**
- * @param Schema $schema
- */
public function down(Schema $schema)
{
$this->skipIf(true, 'These settings are required and should not be removed.');
*/
class Version20190401105353 extends WallabagMigration
{
- /**
- * @param Schema $schema
- */
public function up(Schema $schema)
{
$entryTable = $schema->getTable($this->getTable('entry'));
$entryTable->addIndex(['user_id', 'hashed_url'], 'hashed_url_user_id', [], ['lengths' => [null, 40]]);
}
- /**
- * @param Schema $schema
- */
public function down(Schema $schema)
{
$entryTable = $schema->getTable($this->getTable('entry'));
*/
class Version20190601125843 extends WallabagMigration
{
- /**
- * @param Schema $schema
- */
public function up(Schema $schema)
{
$entryTable = $schema->getTable($this->getTable('entry'));
$entryTable->addIndex(['user_id', 'hashed_given_url'], 'hashed_given_url_user_id', [], ['lengths' => [null, 40]]);
}
- /**
- * @param Schema $schema
- */
public function down(Schema $schema)
{
$entryTable = $schema->getTable($this->getTable('entry'));
exchange_options:
name: 'wallabag.import.wallabag_v2'
type: topic
+ import_elcurator:
+ connection: default
+ exchange_options:
+ name: 'wallabag.import.elcurator'
+ type: topic
import_firefox:
connection: default
exchange_options:
name: 'wallabag.import.wallabag_v2'
callback: wallabag_import.consumer.amqp.wallabag_v2
qos_options: {prefetch_count: "%rabbitmq_prefetch_count%"}
+ import_elcurator:
+ connection: default
+ exchange_options:
+ name: 'wallabag.import.elcurator'
+ type: topic
+ queue_options:
+ name: 'wallabag.import.elcurator'
+ callback: wallabag_import.consumer.amqp.elcurator
+ qos_options: {prefetch_count: "%rabbitmq_prefetch_count%"}
import_firefox:
connection: default
exchange_options:
"doctrine/orm": "^2.6",
"doctrine/doctrine-bundle": "^1.9",
"doctrine/doctrine-cache-bundle": "^1.3",
+ "doctrine/dbal": "2.9.2",
"twig/extensions": "^1.5",
"symfony/swiftmailer-bundle": "^3.2",
"symfony/monolog-bundle": "^3.1",
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "02ec26b02dc55d65cb9353ad99be7ebe",
+ "content-hash": "bc03955d5e8ea3079c82f32de2e26c98",
"packages": [
{
"name": "bdunogier/guzzle-site-authenticator",
},
{
"name": "beberlei/assert",
- "version": "v3.2.3",
+ "version": "v3.2.6",
"source": {
"type": "git",
"url": "https://github.com/beberlei/assert.git",
- "reference": "65b8152224aef7d3c197d5db05211d4319711b66"
+ "reference": "99508be011753690fe108ded450f5caaae180cfa"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/beberlei/assert/zipball/65b8152224aef7d3c197d5db05211d4319711b66",
- "reference": "65b8152224aef7d3c197d5db05211d4319711b66",
+ "url": "https://api.github.com/repos/beberlei/assert/zipball/99508be011753690fe108ded450f5caaae180cfa",
+ "reference": "99508be011753690fe108ded450f5caaae180cfa",
"shasum": ""
},
"require": {
"ext-ctype": "*",
- "ext-intl": "*",
"ext-json": "*",
"ext-mbstring": "*",
"ext-simplexml": "*",
"phpstan/phpstan-shim": "*",
"phpunit/phpunit": ">=6.0.0 <8"
},
+ "suggest": {
+ "ext-intl": "Needed to allow Assertion::count(), Assertion::isCountable(), Assertion::minCount(), and Assertion::maxCount() to operate on ResourceBundles"
+ },
"type": "library",
"autoload": {
"psr-4": {
"assertion",
"validation"
],
- "time": "2019-08-23T17:56:26+00:00"
+ "time": "2019-10-10T10:33:57+00:00"
},
{
"name": "behat/transliterator",
},
{
"name": "doctrine/cache",
- "version": "v1.8.0",
+ "version": "1.9.1",
"source": {
"type": "git",
"url": "https://github.com/doctrine/cache.git",
- "reference": "d768d58baee9a4862ca783840eca1b9add7a7f57"
+ "reference": "89a5c76c39c292f7798f964ab3c836c3f8192a55"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/cache/zipball/d768d58baee9a4862ca783840eca1b9add7a7f57",
- "reference": "d768d58baee9a4862ca783840eca1b9add7a7f57",
+ "url": "https://api.github.com/repos/doctrine/cache/zipball/89a5c76c39c292f7798f964ab3c836c3f8192a55",
+ "reference": "89a5c76c39c292f7798f964ab3c836c3f8192a55",
"shasum": ""
},
"require": {
},
"require-dev": {
"alcaeus/mongo-php-adapter": "^1.1",
- "doctrine/coding-standard": "^4.0",
+ "doctrine/coding-standard": "^6.0",
"mongodb/mongodb": "^1.1",
"phpunit/phpunit": "^7.0",
"predis/predis": "~1.0"
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.8.x-dev"
+ "dev-master": "1.9.x-dev"
}
},
"autoload": {
"MIT"
],
"authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
{
"name": "Roman Borschel",
"email": "roman@code-factory.org"
"name": "Benjamin Eberlei",
"email": "kontakt@beberlei.de"
},
- {
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
{
"name": "Jonathan Wage",
"email": "jonwage@gmail.com"
"email": "schmittjoh@gmail.com"
}
],
- "description": "Caching library offering an object-oriented API for many cache backends",
- "homepage": "https://www.doctrine-project.org",
+ "description": "PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.",
+ "homepage": "https://www.doctrine-project.org/projects/cache.html",
"keywords": [
+ "abstraction",
+ "apcu",
"cache",
- "caching"
+ "caching",
+ "couchdb",
+ "memcached",
+ "php",
+ "redis",
+ "riak",
+ "xcache"
],
- "time": "2018-08-21T18:01:43+00:00"
+ "time": "2019-11-15T14:31:57+00:00"
},
{
"name": "doctrine/collections",
- "version": "v1.6.2",
+ "version": "1.6.4",
"source": {
"type": "git",
"url": "https://github.com/doctrine/collections.git",
- "reference": "c5e0bc17b1620e97c968ac409acbff28b8b850be"
+ "reference": "6b1e4b2b66f6d6e49983cebfe23a21b7ccc5b0d7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/collections/zipball/c5e0bc17b1620e97c968ac409acbff28b8b850be",
- "reference": "c5e0bc17b1620e97c968ac409acbff28b8b850be",
+ "url": "https://api.github.com/repos/doctrine/collections/zipball/6b1e4b2b66f6d6e49983cebfe23a21b7ccc5b0d7",
+ "reference": "6b1e4b2b66f6d6e49983cebfe23a21b7ccc5b0d7",
"shasum": ""
},
"require": {
"MIT"
],
"authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
{
"name": "Roman Borschel",
"email": "roman@code-factory.org"
"name": "Benjamin Eberlei",
"email": "kontakt@beberlei.de"
},
- {
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
{
"name": "Jonathan Wage",
"email": "jonwage@gmail.com"
"iterators",
"php"
],
- "time": "2019-06-09T13:48:14+00:00"
+ "time": "2019-11-13T13:07:11+00:00"
},
{
"name": "doctrine/common",
},
{
"name": "doctrine/event-manager",
- "version": "v1.0.0",
+ "version": "1.1.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/event-manager.git",
- "reference": "a520bc093a0170feeb6b14e9d83f3a14452e64b3"
+ "reference": "629572819973f13486371cb611386eb17851e85c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/event-manager/zipball/a520bc093a0170feeb6b14e9d83f3a14452e64b3",
- "reference": "a520bc093a0170feeb6b14e9d83f3a14452e64b3",
+ "url": "https://api.github.com/repos/doctrine/event-manager/zipball/629572819973f13486371cb611386eb17851e85c",
+ "reference": "629572819973f13486371cb611386eb17851e85c",
"shasum": ""
},
"require": {
"doctrine/common": "<2.9@dev"
},
"require-dev": {
- "doctrine/coding-standard": "^4.0",
+ "doctrine/coding-standard": "^6.0",
"phpunit/phpunit": "^7.0"
},
"type": "library",
"MIT"
],
"authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
{
"name": "Roman Borschel",
"email": "roman@code-factory.org"
"name": "Benjamin Eberlei",
"email": "kontakt@beberlei.de"
},
- {
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
{
"name": "Jonathan Wage",
"email": "jonwage@gmail.com"
"email": "ocramius@gmail.com"
}
],
- "description": "Doctrine Event Manager component",
+ "description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.",
"homepage": "https://www.doctrine-project.org/projects/event-manager.html",
"keywords": [
"event",
- "eventdispatcher",
- "eventmanager"
+ "event dispatcher",
+ "event manager",
+ "event system",
+ "events"
],
- "time": "2018-06-11T11:59:03+00:00"
+ "time": "2019-11-10T09:48:07+00:00"
},
{
"name": "doctrine/inflector",
- "version": "v1.3.0",
+ "version": "1.3.1",
"source": {
"type": "git",
"url": "https://github.com/doctrine/inflector.git",
- "reference": "5527a48b7313d15261292c149e55e26eae771b0a"
+ "reference": "ec3a55242203ffa6a4b27c58176da97ff0a7aec1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/inflector/zipball/5527a48b7313d15261292c149e55e26eae771b0a",
- "reference": "5527a48b7313d15261292c149e55e26eae771b0a",
+ "url": "https://api.github.com/repos/doctrine/inflector/zipball/ec3a55242203ffa6a4b27c58176da97ff0a7aec1",
+ "reference": "ec3a55242203ffa6a4b27c58176da97ff0a7aec1",
"shasum": ""
},
"require": {
"MIT"
],
"authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
{
"name": "Roman Borschel",
"email": "roman@code-factory.org"
"name": "Benjamin Eberlei",
"email": "kontakt@beberlei.de"
},
- {
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
{
"name": "Jonathan Wage",
"email": "jonwage@gmail.com"
"singularize",
"string"
],
- "time": "2018-01-09T20:05:19+00:00"
+ "time": "2019-10-30T19:59:35+00:00"
},
{
"name": "doctrine/instantiator",
- "version": "1.2.0",
+ "version": "1.3.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/instantiator.git",
- "reference": "a2c590166b2133a4633738648b6b064edae0814a"
+ "reference": "ae466f726242e637cebdd526a7d991b9433bacf1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/instantiator/zipball/a2c590166b2133a4633738648b6b064edae0814a",
- "reference": "a2c590166b2133a4633738648b6b064edae0814a",
+ "url": "https://api.github.com/repos/doctrine/instantiator/zipball/ae466f726242e637cebdd526a7d991b9433bacf1",
+ "reference": "ae466f726242e637cebdd526a7d991b9433bacf1",
"shasum": ""
},
"require": {
"constructor",
"instantiate"
],
- "time": "2019-03-17T17:37:11+00:00"
+ "time": "2019-10-21T16:45:58+00:00"
},
{
"name": "doctrine/lexer",
},
{
"name": "doctrine/orm",
- "version": "v2.6.4",
+ "version": "v2.6.6",
"source": {
"type": "git",
"url": "https://github.com/doctrine/orm.git",
- "reference": "b52ef5a1002f99ab506a5a2d6dba5a2c236c5f43"
+ "reference": "2d9b9351831d1230881c52f006011cbf72fe944e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/orm/zipball/b52ef5a1002f99ab506a5a2d6dba5a2c236c5f43",
- "reference": "b52ef5a1002f99ab506a5a2d6dba5a2c236c5f43",
+ "url": "https://api.github.com/repos/doctrine/orm/zipball/2d9b9351831d1230881c52f006011cbf72fe944e",
+ "reference": "2d9b9351831d1230881c52f006011cbf72fe944e",
"shasum": ""
},
"require": {
"database",
"orm"
],
- "time": "2019-09-20T14:30:26+00:00"
+ "time": "2019-11-18T22:01:21+00:00"
},
{
"name": "doctrine/persistence",
- "version": "1.1.1",
+ "version": "1.2.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/persistence.git",
- "reference": "3da7c9d125591ca83944f477e65ed3d7b4617c48"
+ "reference": "43526ae63312942e5316100bb3ed589ba1aba491"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/persistence/zipball/3da7c9d125591ca83944f477e65ed3d7b4617c48",
- "reference": "3da7c9d125591ca83944f477e65ed3d7b4617c48",
+ "url": "https://api.github.com/repos/doctrine/persistence/zipball/43526ae63312942e5316100bb3ed589ba1aba491",
+ "reference": "43526ae63312942e5316100bb3ed589ba1aba491",
"shasum": ""
},
"require": {
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.1.x-dev"
+ "dev-master": "1.2.x-dev"
}
},
"autoload": {
"MIT"
],
"authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
{
"name": "Roman Borschel",
"email": "roman@code-factory.org"
"name": "Benjamin Eberlei",
"email": "kontakt@beberlei.de"
},
- {
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
{
"name": "Jonathan Wage",
"email": "jonwage@gmail.com"
"orm",
"persistence"
],
- "time": "2019-04-23T08:28:24+00:00"
+ "time": "2019-04-23T12:39:21+00:00"
},
{
"name": "doctrine/reflection",
},
{
"name": "friendsofsymfony/rest-bundle",
- "version": "2.5.0",
+ "version": "2.6.0",
"source": {
"type": "git",
"url": "https://github.com/FriendsOfSymfony/FOSRestBundle.git",
- "reference": "a5fc73b84bdb2f0fdf58a717b322ceb6997f7bf3"
+ "reference": "54758949bff9fc520997415341323eebf3f54892"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/FriendsOfSymfony/FOSRestBundle/zipball/a5fc73b84bdb2f0fdf58a717b322ceb6997f7bf3",
- "reference": "a5fc73b84bdb2f0fdf58a717b322ceb6997f7bf3",
+ "url": "https://api.github.com/repos/FriendsOfSymfony/FOSRestBundle/zipball/54758949bff9fc520997415341323eebf3f54892",
+ "reference": "54758949bff9fc520997415341323eebf3f54892",
"shasum": ""
},
"require": {
"doctrine/inflector": "^1.0",
- "php": "^5.5.9|~7.0",
+ "php": "^7.1",
"psr/log": "^1.0",
- "symfony/config": "^3.4|^4.0",
- "symfony/debug": "^3.4|^4.0",
- "symfony/dependency-injection": "^3.4|^4.0",
- "symfony/event-dispatcher": "^3.4|^4.0",
- "symfony/finder": "^3.4|^4.0",
- "symfony/framework-bundle": "^3.4|^4.0",
- "symfony/http-foundation": "^3.4|^4.0",
- "symfony/http-kernel": "^3.4|^4.0",
- "symfony/routing": "^3.4|^4.0",
- "symfony/security-core": "^3.4|^4.0",
- "symfony/templating": "^3.4|^4.0",
+ "symfony/config": "^3.4|^4.3",
+ "symfony/debug": "^3.4|^4.3",
+ "symfony/dependency-injection": "^3.4|^4.3",
+ "symfony/event-dispatcher": "^3.4|^4.3",
+ "symfony/finder": "^3.4|^4.3",
+ "symfony/framework-bundle": "^3.4|^4.3",
+ "symfony/http-foundation": "^3.4|^4.3",
+ "symfony/http-kernel": "^3.4|^4.3",
+ "symfony/routing": "^3.4|^4.3",
+ "symfony/security-core": "^3.4|^4.3",
"willdurand/jsonp-callback-validator": "^1.0",
"willdurand/negotiation": "^2.0"
},
"phpoption/phpoption": "^1.1",
"psr/http-message": "^1.0",
"sensio/framework-extra-bundle": "^3.0.13|^4.0|^5.0",
- "symfony/asset": "^3.4|^4.0",
- "symfony/browser-kit": "^3.4|^4.0",
- "symfony/css-selector": "^3.4|^4.0",
- "symfony/dependency-injection": "^2.7.20|^3.0|^4.0",
- "symfony/expression-language": "~2.7|^3.0|^4.0",
- "symfony/form": "^3.4|^4.0",
+ "symfony/asset": "^3.4|^4.3",
+ "symfony/browser-kit": "^3.4|^4.3",
+ "symfony/css-selector": "^3.4|^4.3",
+ "symfony/expression-language": "^3.4|^4.3",
+ "symfony/form": "^3.4|^4.3",
"symfony/phpunit-bridge": "^4.1.8",
- "symfony/security-bundle": "^3.4|^4.0",
- "symfony/serializer": "^2.7.11|^3.0.4|^4.0",
- "symfony/twig-bundle": "^3.4|^4.0",
- "symfony/validator": "^3.4|^4.0",
- "symfony/web-profiler-bundle": "^3.4|^4.0",
- "symfony/yaml": "^3.4|^4.0"
+ "symfony/security-bundle": "^3.4|^4.3",
+ "symfony/serializer": "^3.4|^4.3",
+ "symfony/templating": "^3.4|^4.3",
+ "symfony/twig-bundle": "^3.4|^4.3",
+ "symfony/validator": "^3.4|^4.3",
+ "symfony/web-profiler-bundle": "^3.4|^4.3",
+ "symfony/yaml": "^3.4|^4.3"
},
"suggest": {
"jms/serializer-bundle": "Add support for advanced serialization capabilities, recommended, requires ^2.0|^3.0",
"type": "symfony-bundle",
"extra": {
"branch-alias": {
- "dev-master": "2.5-dev"
+ "dev-master": "2.6-dev"
}
},
"autoload": {
"name": "Lukas Kahwe Smith",
"email": "smith@pooteeweet.org"
},
- {
- "name": "FriendsOfSymfony Community",
- "homepage": "https://github.com/friendsofsymfony/FOSRestBundle/contributors"
- },
{
"name": "Konstantin Kudryashov",
"email": "ever.zet@gmail.com"
+ },
+ {
+ "name": "FriendsOfSymfony Community",
+ "homepage": "https://github.com/friendsofsymfony/FOSRestBundle/contributors"
}
],
"description": "This Bundle provides various tools to rapidly develop RESTful API's with Symfony",
"keywords": [
"rest"
],
- "time": "2019-01-03T13:05:12+00:00"
+ "time": "2019-10-21T08:22:30+00:00"
},
{
"name": "friendsofsymfony/user-bundle",
},
{
"name": "guzzlehttp/guzzle",
- "version": "5.3.3",
+ "version": "5.3.4",
"source": {
"type": "git",
"url": "https://github.com/guzzle/guzzle.git",
- "reference": "93bbdb30d59be6cd9839495306c65f2907370eb9"
+ "reference": "b87eda7a7162f95574032da17e9323c9899cb6b2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/guzzle/zipball/93bbdb30d59be6cd9839495306c65f2907370eb9",
- "reference": "93bbdb30d59be6cd9839495306c65f2907370eb9",
+ "url": "https://api.github.com/repos/guzzle/guzzle/zipball/b87eda7a7162f95574032da17e9323c9899cb6b2",
+ "reference": "b87eda7a7162f95574032da17e9323c9899cb6b2",
"shasum": ""
},
"require": {
"rest",
"web service"
],
- "time": "2018-07-31T13:33:10+00:00"
+ "time": "2019-10-30T09:32:00+00:00"
},
{
"name": "guzzlehttp/promises",
},
{
"name": "j0k3r/graby",
- "version": "2.0.2",
+ "version": "2.1.0",
"source": {
"type": "git",
"url": "https://github.com/j0k3r/graby.git",
- "reference": "5ed35e8959be03cb36335605a70e05571eb8157a"
+ "reference": "8dcacf79bd2bc18438dc3c93cdee1fa59f9a848b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/j0k3r/graby/zipball/5ed35e8959be03cb36335605a70e05571eb8157a",
- "reference": "5ed35e8959be03cb36335605a70e05571eb8157a",
+ "url": "https://api.github.com/repos/j0k3r/graby/zipball/8dcacf79bd2bc18438dc3c93cdee1fa59f9a848b",
+ "reference": "8dcacf79bd2bc18438dc3c93cdee1fa59f9a848b",
"shasum": ""
},
"require": {
}
],
"description": "Graby helps you extract article content from web pages",
- "time": "2019-07-22T07:05:28+00:00"
+ "time": "2019-11-12T13:10:23+00:00"
},
{
"name": "j0k3r/graby-site-config",
- "version": "1.0.91",
+ "version": "1.0.94",
"source": {
"type": "git",
"url": "https://github.com/j0k3r/graby-site-config.git",
- "reference": "2f21c86f0b25911c413d94957a326b812ddbd54d"
+ "reference": "429ee12aa7d9dd95596b15ec0889bd7202d5723a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/j0k3r/graby-site-config/zipball/2f21c86f0b25911c413d94957a326b812ddbd54d",
- "reference": "2f21c86f0b25911c413d94957a326b812ddbd54d",
+ "url": "https://api.github.com/repos/j0k3r/graby-site-config/zipball/429ee12aa7d9dd95596b15ec0889bd7202d5723a",
+ "reference": "429ee12aa7d9dd95596b15ec0889bd7202d5723a",
"shasum": ""
},
"require": {
}
],
"description": "Graby site config files",
- "time": "2019-09-04T07:11:32+00:00"
+ "time": "2019-11-12T06:56:59+00:00"
},
{
"name": "j0k3r/httplug-ssrf-plugin",
},
{
"name": "monolog/monolog",
- "version": "1.24.0",
+ "version": "1.25.2",
"source": {
"type": "git",
"url": "https://github.com/Seldaek/monolog.git",
- "reference": "bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266"
+ "reference": "d5e2fb341cb44f7e2ab639d12a1e5901091ec287"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Seldaek/monolog/zipball/bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266",
- "reference": "bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266",
+ "url": "https://api.github.com/repos/Seldaek/monolog/zipball/d5e2fb341cb44f7e2ab639d12a1e5901091ec287",
+ "reference": "d5e2fb341cb44f7e2ab639d12a1e5901091ec287",
"shasum": ""
},
"require": {
"logging",
"psr-3"
],
- "time": "2018-11-05T09:00:11+00:00"
+ "time": "2019-11-13T10:00:05+00:00"
},
{
"name": "nelmio/api-doc-bundle",
},
{
"name": "paragonie/constant_time_encoding",
- "version": "v2.2.3",
+ "version": "v2.3.0",
"source": {
"type": "git",
"url": "https://github.com/paragonie/constant_time_encoding.git",
- "reference": "55af0dc01992b4d0da7f6372e2eac097bbbaffdb"
+ "reference": "47a1cedd2e4d52688eb8c96469c05ebc8fd28fa2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/55af0dc01992b4d0da7f6372e2eac097bbbaffdb",
- "reference": "55af0dc01992b4d0da7f6372e2eac097bbbaffdb",
+ "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/47a1cedd2e4d52688eb8c96469c05ebc8fd28fa2",
+ "reference": "47a1cedd2e4d52688eb8c96469c05ebc8fd28fa2",
"shasum": ""
},
"require": {
- "php": "^7"
+ "php": "^7|^8"
},
"require-dev": {
"phpunit/phpunit": "^6|^7",
- "vimeo/psalm": "^1|^2"
+ "vimeo/psalm": "^1|^2|^3"
},
"type": "library",
"autoload": {
"hex2bin",
"rfc4648"
],
- "time": "2019-01-03T20:26:31+00:00"
+ "time": "2019-11-06T19:20:29+00:00"
},
{
"name": "paragonie/random_compat",
},
{
"name": "php-amqplib/php-amqplib",
- "version": "v2.10.0",
+ "version": "v2.10.1",
"source": {
"type": "git",
"url": "https://github.com/php-amqplib/php-amqplib.git",
- "reference": "04e5366f032906d5f716890427e425e71307d3a8"
+ "reference": "6e2b2501e021e994fb64429e5a78118f83b5c200"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-amqplib/php-amqplib/zipball/04e5366f032906d5f716890427e425e71307d3a8",
- "reference": "04e5366f032906d5f716890427e425e71307d3a8",
+ "url": "https://api.github.com/repos/php-amqplib/php-amqplib/zipball/6e2b2501e021e994fb64429e5a78118f83b5c200",
+ "reference": "6e2b2501e021e994fb64429e5a78118f83b5c200",
"shasum": ""
},
"require": {
"require-dev": {
"ext-curl": "*",
"nategood/httpful": "^0.2.20",
- "phpdocumentor/phpdocumentor": "dev-master",
"phpunit/phpunit": "^5.7|^6.5|^7.0",
"squizlabs/php_codesniffer": "^2.5"
},
"queue",
"rabbitmq"
],
- "time": "2019-08-08T18:28:18+00:00"
+ "time": "2019-10-10T13:23:40+00:00"
},
{
"name": "php-amqplib/rabbitmq-bundle",
},
{
"name": "phpoption/phpoption",
- "version": "1.5.0",
+ "version": "1.5.2",
"source": {
"type": "git",
"url": "https://github.com/schmittjoh/php-option.git",
- "reference": "94e644f7d2051a5f0fcf77d81605f152eecff0ed"
+ "reference": "2ba2586380f8d2b44ad1b9feb61c371020b27793"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/94e644f7d2051a5f0fcf77d81605f152eecff0ed",
- "reference": "94e644f7d2051a5f0fcf77d81605f152eecff0ed",
+ "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/2ba2586380f8d2b44ad1b9feb61c371020b27793",
+ "reference": "2ba2586380f8d2b44ad1b9feb61c371020b27793",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"require-dev": {
- "phpunit/phpunit": "4.7.*"
+ "phpunit/phpunit": "^4.7|^5.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.3-dev"
+ "dev-master": "1.5-dev"
}
},
"autoload": {
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "Apache2"
+ "Apache-2.0"
],
"authors": [
{
"php",
"type"
],
- "time": "2015-07-25T16:39:46+00:00"
+ "time": "2019-11-06T22:27:00+00:00"
},
{
"name": "phpzip/phpzip",
},
{
"name": "psr/log",
- "version": "1.1.0",
+ "version": "1.1.2",
"source": {
"type": "git",
"url": "https://github.com/php-fig/log.git",
- "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd"
+ "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd",
- "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd",
+ "url": "https://api.github.com/repos/php-fig/log/zipball/446d54b4cb6bf489fc9d75f55843658e6f25d801",
+ "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801",
"shasum": ""
},
"require": {
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0.x-dev"
+ "dev-master": "1.1.x-dev"
}
},
"autoload": {
"psr",
"psr-3"
],
- "time": "2018-11-20T15:27:04+00:00"
+ "time": "2019-11-01T11:05:21+00:00"
},
{
"name": "psr/simple-cache",
},
{
"name": "scheb/two-factor-bundle",
- "version": "v4.7.1",
+ "version": "v4.8.0",
"source": {
"type": "git",
"url": "https://github.com/scheb/two-factor-bundle.git",
- "reference": "170895e91bdbe2c21983f195271d42e2fcfb3d62"
+ "reference": "2864c770fedb723ac05aa56ff2761e4a8e1537ca"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/scheb/two-factor-bundle/zipball/170895e91bdbe2c21983f195271d42e2fcfb3d62",
- "reference": "170895e91bdbe2c21983f195271d42e2fcfb3d62",
+ "url": "https://api.github.com/repos/scheb/two-factor-bundle/zipball/2864c770fedb723ac05aa56ff2761e4a8e1537ca",
+ "reference": "2864c770fedb723ac05aa56ff2761e4a8e1537ca",
"shasum": ""
},
"require": {
"require-dev": {
"doctrine/lexer": "^1.0.1",
"doctrine/orm": "^2.6",
+ "escapestudios/symfony2-coding-standard": "^3.9",
"phpunit/phpunit": "^7.0|^8.0",
+ "squizlabs/php_codesniffer": "^3.5",
"swiftmailer/swiftmailer": "^6.0",
"symfony/yaml": "^3.4|^4.0"
},
"autoload": {
"psr-4": {
"Scheb\\TwoFactorBundle\\": ""
- }
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"two-factor",
"two-step"
],
- "time": "2019-09-02T18:36:37+00:00"
+ "time": "2019-11-07T19:29:43+00:00"
},
{
"name": "sensio/distribution-bundle",
},
{
"name": "sensiolabs/security-checker",
- "version": "v6.0.2",
+ "version": "v6.0.3",
"source": {
"type": "git",
"url": "https://github.com/sensiolabs/security-checker.git",
- "reference": "ce8d0552dcb8d3677ab9adb6d19a5837949bfec4"
+ "reference": "a576c01520d9761901f269c4934ba55448be4a54"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sensiolabs/security-checker/zipball/ce8d0552dcb8d3677ab9adb6d19a5837949bfec4",
- "reference": "ce8d0552dcb8d3677ab9adb6d19a5837949bfec4",
+ "url": "https://api.github.com/repos/sensiolabs/security-checker/zipball/a576c01520d9761901f269c4934ba55448be4a54",
+ "reference": "a576c01520d9761901f269c4934ba55448be4a54",
"shasum": ""
},
"require": {
"php": ">=7.1.3",
- "symfony/console": "^2.8|^3.4|^4.2",
- "symfony/http-client": "^4.3",
- "symfony/mime": "^4.3",
+ "symfony/console": "^2.8|^3.4|^4.2|^5.0",
+ "symfony/http-client": "^4.3|^5.0",
+ "symfony/mime": "^4.3|^5.0",
"symfony/polyfill-ctype": "^1.11"
},
"bin": [
}
],
"description": "A security checker for your composer.lock",
- "time": "2019-06-08T06:46:26+00:00"
+ "time": "2019-11-01T13:20:14+00:00"
},
{
"name": "sentry/sdk",
},
{
"name": "sentry/sentry",
- "version": "2.2.1",
+ "version": "2.2.4",
"source": {
"type": "git",
"url": "https://github.com/getsentry/sentry-php.git",
- "reference": "5896f9f0a00a7525797764ba42091dfbde22a746"
+ "reference": "a74999536b9119257cb1a4b1aa038e4a08439f67"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/getsentry/sentry-php/zipball/5896f9f0a00a7525797764ba42091dfbde22a746",
- "reference": "5896f9f0a00a7525797764ba42091dfbde22a746",
+ "url": "https://api.github.com/repos/getsentry/sentry-php/zipball/a74999536b9119257cb1a4b1aa038e4a08439f67",
+ "reference": "a74999536b9119257cb1a4b1aa038e4a08439f67",
"shasum": ""
},
"require": {
"symfony/phpunit-bridge": "^4.3",
"vimeo/psalm": "^3.4"
},
+ "suggest": {
+ "monolog/monolog": "Allow sending log messages to Sentry by using the included Monolog handler."
+ },
"type": "library",
"extra": {
"branch-alias": {
"logging",
"sentry"
],
- "time": "2019-09-23T11:52:12+00:00"
+ "time": "2019-11-04T10:30:51+00:00"
},
{
"name": "sentry/sentry-symfony",
},
{
"name": "simplepie/simplepie",
- "version": "1.5.2",
+ "version": "1.5.3",
"source": {
"type": "git",
"url": "https://github.com/simplepie/simplepie.git",
- "reference": "0e8fe72132dad765d25db4cabc69a91139af1263"
+ "reference": "173663382a9346acd53df60c7ffb20689c9cf1f6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/simplepie/simplepie/zipball/0e8fe72132dad765d25db4cabc69a91139af1263",
- "reference": "0e8fe72132dad765d25db4cabc69a91139af1263",
+ "url": "https://api.github.com/repos/simplepie/simplepie/zipball/173663382a9346acd53df60c7ffb20689c9cf1f6",
+ "reference": "173663382a9346acd53df60c7ffb20689c9cf1f6",
"shasum": ""
},
"require": {
"feeds",
"rss"
],
- "time": "2018-08-02T05:43:58+00:00"
+ "time": "2019-09-22T23:21:30+00:00"
},
{
"name": "smalot/pdfparser",
},
{
"name": "swiftmailer/swiftmailer",
- "version": "v6.2.1",
+ "version": "v6.2.3",
"source": {
"type": "git",
"url": "https://github.com/swiftmailer/swiftmailer.git",
- "reference": "5397cd05b0a0f7937c47b0adcb4c60e5ab936b6a"
+ "reference": "149cfdf118b169f7840bbe3ef0d4bc795d1780c9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/5397cd05b0a0f7937c47b0adcb4c60e5ab936b6a",
- "reference": "5397cd05b0a0f7937c47b0adcb4c60e5ab936b6a",
+ "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/149cfdf118b169f7840bbe3ef0d4bc795d1780c9",
+ "reference": "149cfdf118b169f7840bbe3ef0d4bc795d1780c9",
"shasum": ""
},
"require": {
"mail",
"mailer"
],
- "time": "2019-04-21T09:21:45+00:00"
+ "time": "2019-11-12T09:31:26+00:00"
},
{
"name": "symfony/http-client",
- "version": "v4.3.4",
+ "version": "v4.3.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-client.git",
- "reference": "9a4fa769269ed730196a5c52c742b30600cf1e87"
+ "reference": "ae3a9cd491f1aadb5583f34a6bda5cca34081ce8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-client/zipball/9a4fa769269ed730196a5c52c742b30600cf1e87",
- "reference": "9a4fa769269ed730196a5c52c742b30600cf1e87",
+ "url": "https://api.github.com/repos/symfony/http-client/zipball/ae3a9cd491f1aadb5583f34a6bda5cca34081ce8",
+ "reference": "ae3a9cd491f1aadb5583f34a6bda5cca34081ce8",
"shasum": ""
},
"require": {
"php": "^7.1.3",
"psr/log": "^1.0",
- "symfony/http-client-contracts": "^1.1.6",
+ "symfony/http-client-contracts": "^1.1.7",
"symfony/polyfill-php73": "^1.11"
},
"provide": {
],
"description": "Symfony HttpClient component",
"homepage": "https://symfony.com",
- "time": "2019-08-20T14:27:59+00:00"
+ "time": "2019-11-08T08:23:45+00:00"
},
{
"name": "symfony/http-client-contracts",
- "version": "v1.1.6",
+ "version": "v1.1.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-client-contracts.git",
- "reference": "6005fe61a33724405d56eb5b055d5d370192a1bd"
+ "reference": "088bae75cfa2ec5eb6d33dce17dbd8613150ce6e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/6005fe61a33724405d56eb5b055d5d370192a1bd",
- "reference": "6005fe61a33724405d56eb5b055d5d370192a1bd",
+ "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/088bae75cfa2ec5eb6d33dce17dbd8613150ce6e",
+ "reference": "088bae75cfa2ec5eb6d33dce17dbd8613150ce6e",
"shasum": ""
},
"require": {
"interoperability",
"standards"
],
- "time": "2019-08-08T10:05:21+00:00"
+ "time": "2019-11-07T12:44:51+00:00"
},
{
"name": "symfony/mime",
- "version": "v4.3.4",
+ "version": "v4.3.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/mime.git",
- "reference": "987a05df1c6ac259b34008b932551353f4f408df"
+ "reference": "22aecf6b11638ef378fab25d6c5a2da8a31a1448"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/mime/zipball/987a05df1c6ac259b34008b932551353f4f408df",
- "reference": "987a05df1c6ac259b34008b932551353f4f408df",
+ "url": "https://api.github.com/repos/symfony/mime/zipball/22aecf6b11638ef378fab25d6c5a2da8a31a1448",
+ "reference": "22aecf6b11638ef378fab25d6c5a2da8a31a1448",
"shasum": ""
},
"require": {
"mime",
"mime-type"
],
- "time": "2019-08-22T08:16:11+00:00"
+ "time": "2019-11-12T13:10:02+00:00"
},
{
"name": "symfony/monolog-bundle",
- "version": "v3.4.0",
+ "version": "v3.5.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/monolog-bundle.git",
- "reference": "7fbecb371c1c614642c93c6b2cbcdf723ae8809d"
+ "reference": "dd80460fcfe1fa2050a7103ad818e9d0686ce6fd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/7fbecb371c1c614642c93c6b2cbcdf723ae8809d",
- "reference": "7fbecb371c1c614642c93c6b2cbcdf723ae8809d",
+ "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/dd80460fcfe1fa2050a7103ad818e9d0686ce6fd",
+ "reference": "dd80460fcfe1fa2050a7103ad818e9d0686ce6fd",
"shasum": ""
},
"require": {
- "monolog/monolog": "~1.22",
+ "monolog/monolog": "~1.22 || ~2.0",
"php": ">=5.6",
- "symfony/config": "~3.4|~4.0",
- "symfony/dependency-injection": "~3.4.10|^4.0.10",
- "symfony/http-kernel": "~3.4|~4.0",
- "symfony/monolog-bridge": "~3.4|~4.0"
+ "symfony/config": "~3.4 || ~4.0 || ^5.0",
+ "symfony/dependency-injection": "~3.4.10 || ^4.0.10 || ^5.0",
+ "symfony/http-kernel": "~3.4 || ~4.0 || ^5.0",
+ "symfony/monolog-bridge": "~3.4 || ~4.0 || ^5.0"
},
"require-dev": {
- "symfony/console": "~3.4|~4.0",
- "symfony/phpunit-bridge": "^3.4.19|^4.0",
- "symfony/yaml": "~3.4|~4.0"
+ "symfony/console": "~3.4 || ~4.0 || ^5.0",
+ "symfony/phpunit-bridge": "^3.4.19 || ^4.0 || ^5.0",
+ "symfony/yaml": "~3.4 || ~4.0 || ^5.0"
},
"type": "symfony-bundle",
"extra": {
"MIT"
],
"authors": [
- {
- "name": "Symfony Community",
- "homepage": "http://symfony.com/contributors"
- },
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "http://symfony.com/contributors"
}
],
"description": "Symfony MonologBundle",
"log",
"logging"
],
- "time": "2019-06-20T12:18:19+00:00"
+ "time": "2019-11-13T13:11:14+00:00"
},
{
"name": "symfony/polyfill-apcu",
},
{
"name": "symfony/swiftmailer-bundle",
- "version": "v3.2.8",
+ "version": "v3.3.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/swiftmailer-bundle.git",
- "reference": "cb125b3648f132fb8070b55393f20cb310907d3b"
+ "reference": "defa9bdfc0191ed70b389cb93c550c6c82cf1745"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/swiftmailer-bundle/zipball/cb125b3648f132fb8070b55393f20cb310907d3b",
- "reference": "cb125b3648f132fb8070b55393f20cb310907d3b",
+ "url": "https://api.github.com/repos/symfony/swiftmailer-bundle/zipball/defa9bdfc0191ed70b389cb93c550c6c82cf1745",
+ "reference": "defa9bdfc0191ed70b389cb93c550c6c82cf1745",
"shasum": ""
},
"require": {
"php": ">=7.0.0",
"swiftmailer/swiftmailer": "^6.1.3",
- "symfony/config": "~2.8|~3.3|~4.0",
- "symfony/dependency-injection": "~2.7|~3.3|~4.0",
- "symfony/http-kernel": "~2.7|~3.3|~4.0"
+ "symfony/config": "^3.4|^4.0|^5.0",
+ "symfony/dependency-injection": "^3.4|^4.0|^5.0",
+ "symfony/http-kernel": "^3.4|^4.0|^5.0"
},
"conflict": {
"twig/twig": "<1.41|<2.10"
},
"require-dev": {
- "symfony/console": "~2.7|~3.3|~4.0",
- "symfony/framework-bundle": "~2.7|~3.3|~4.0",
- "symfony/phpunit-bridge": "~3.3|~4.0",
- "symfony/yaml": "~2.7|~3.3|~4.0"
+ "symfony/console": "^3.4|^4.0|^5.0",
+ "symfony/framework-bundle": "^3.4|^4.0|^5.0",
+ "symfony/phpunit-bridge": "^3.4.32|^4.3.5|^5.0",
+ "symfony/yaml": "^3.4|^4.0|^5.0"
},
"suggest": {
"psr/log": "Allows logging"
"type": "symfony-bundle",
"extra": {
"branch-alias": {
- "dev-master": "3.2-dev"
+ "dev-master": "3.3-dev"
}
},
"autoload": {
"MIT"
],
"authors": [
- {
- "name": "Symfony Community",
- "homepage": "http://symfony.com/contributors"
- },
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "http://symfony.com/contributors"
}
],
"description": "Symfony SwiftmailerBundle",
"homepage": "http://symfony.com",
- "time": "2019-06-18T15:27:04+00:00"
+ "time": "2019-11-07T21:01:35+00:00"
},
{
"name": "symfony/symfony",
- "version": "v3.4.32",
+ "version": "v3.4.35",
"source": {
"type": "git",
"url": "https://github.com/symfony/symfony.git",
- "reference": "2815d1fa34d417b8b87450667f166edbefff3177"
+ "reference": "2adc85d49cbe14e346068fa7e9c2e1f08ab31de6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/symfony/zipball/2815d1fa34d417b8b87450667f166edbefff3177",
- "reference": "2815d1fa34d417b8b87450667f166edbefff3177",
+ "url": "https://api.github.com/repos/symfony/symfony/zipball/2adc85d49cbe14e346068fa7e9c2e1f08ab31de6",
+ "reference": "2adc85d49cbe14e346068fa7e9c2e1f08ab31de6",
"shasum": ""
},
"require": {
"keywords": [
"framework"
],
- "time": "2019-10-07T14:42:16+00:00"
+ "time": "2019-11-13T08:45:05+00:00"
},
{
"name": "true/punycode",
},
{
"name": "twig/twig",
- "version": "v2.12.0",
+ "version": "v2.12.2",
"source": {
"type": "git",
"url": "https://github.com/twigphp/Twig.git",
- "reference": "c7a85fd08348ca04b4d8f234f49583d9910906aa"
+ "reference": "d761fd1f1c6b867ae09a7d8119a6d95d06dc44ed"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/twigphp/Twig/zipball/c7a85fd08348ca04b4d8f234f49583d9910906aa",
- "reference": "c7a85fd08348ca04b4d8f234f49583d9910906aa",
+ "url": "https://api.github.com/repos/twigphp/Twig/zipball/d761fd1f1c6b867ae09a7d8119a6d95d06dc44ed",
+ "reference": "d761fd1f1c6b867ae09a7d8119a6d95d06dc44ed",
"shasum": ""
},
"require": {
"keywords": [
"templating"
],
- "time": "2019-10-05T16:42:38+00:00"
+ "time": "2019-11-11T16:52:09+00:00"
},
{
"name": "wallabag/php-mobi",
},
{
"name": "zendframework/zend-code",
- "version": "3.3.2",
+ "version": "3.4.0",
"source": {
"type": "git",
"url": "https://github.com/zendframework/zend-code.git",
- "reference": "936fa7ad4d53897ea3e3eb41b5b760828246a20b"
+ "reference": "46feaeecea14161734b56c1ace74f28cb329f194"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/zendframework/zend-code/zipball/936fa7ad4d53897ea3e3eb41b5b760828246a20b",
- "reference": "936fa7ad4d53897ea3e3eb41b5b760828246a20b",
+ "url": "https://api.github.com/repos/zendframework/zend-code/zipball/46feaeecea14161734b56c1ace74f28cb329f194",
+ "reference": "46feaeecea14161734b56c1ace74f28cb329f194",
"shasum": ""
},
"require": {
"require-dev": {
"doctrine/annotations": "^1.0",
"ext-phar": "*",
- "phpunit/phpunit": "^7.5.15",
+ "phpunit/phpunit": "^7.5.16 || ^8.4",
"zendframework/zend-coding-standard": "^1.0",
"zendframework/zend-stdlib": "^2.7 || ^3.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.3.x-dev",
- "dev-develop": "3.4.x-dev"
+ "dev-master": "3.4.x-dev",
+ "dev-develop": "3.5.x-dev"
}
},
"autoload": {
"code",
"zf"
],
- "time": "2019-08-31T14:14:34+00:00"
+ "time": "2019-10-05T23:18:22+00:00"
},
{
"name": "zendframework/zend-diactoros",
- "version": "2.1.3",
+ "version": "2.2.0",
"source": {
"type": "git",
"url": "https://github.com/zendframework/zend-diactoros.git",
- "reference": "279723778c40164bcf984a2df12ff2c6ec5e61c1"
+ "reference": "66eded992a75bfe75a829005a2884aae5ca86daa"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/zendframework/zend-diactoros/zipball/279723778c40164bcf984a2df12ff2c6ec5e61c1",
- "reference": "279723778c40164bcf984a2df12ff2c6ec5e61c1",
+ "url": "https://api.github.com/repos/zendframework/zend-diactoros/zipball/66eded992a75bfe75a829005a2884aae5ca86daa",
+ "reference": "66eded992a75bfe75a829005a2884aae5ca86daa",
"shasum": ""
},
"require": {
"psr/http-message-implementation": "1.0"
},
"require-dev": {
+ "ext-curl": "*",
"ext-dom": "*",
"ext-libxml": "*",
"http-interop/http-factory-tests": "^0.5.0",
"psr",
"psr-7"
],
- "time": "2019-07-10T16:13:25+00:00"
+ "time": "2019-11-12T17:26:16+00:00"
},
{
"name": "zendframework/zend-eventmanager",
},
{
"name": "composer/xdebug-handler",
- "version": "1.3.3",
+ "version": "1.4.0",
"source": {
"type": "git",
"url": "https://github.com/composer/xdebug-handler.git",
- "reference": "46867cbf8ca9fb8d60c506895449eb799db1184f"
+ "reference": "cbe23383749496fe0f373345208b79568e4bc248"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/46867cbf8ca9fb8d60c506895449eb799db1184f",
- "reference": "46867cbf8ca9fb8d60c506895449eb799db1184f",
+ "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/cbe23383749496fe0f373345208b79568e4bc248",
+ "reference": "cbe23383749496fe0f373345208b79568e4bc248",
"shasum": ""
},
"require": {
- "php": "^5.3.2 || ^7.0",
+ "php": "^5.3.2 || ^7.0 || ^8.0",
"psr/log": "^1.0"
},
"require-dev": {
- "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5"
+ "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8"
},
"type": "library",
"autoload": {
"email": "john-stevenson@blueyonder.co.uk"
}
],
- "description": "Restarts a process without xdebug.",
+ "description": "Restarts a process without Xdebug.",
"keywords": [
"Xdebug",
"performance"
],
- "time": "2019-05-27T17:52:04+00:00"
+ "time": "2019-11-06T16:40:04+00:00"
},
{
"name": "dama/doctrine-test-bundle",
},
{
"name": "doctrine/data-fixtures",
- "version": "v1.3.2",
+ "version": "1.3.3",
"source": {
"type": "git",
"url": "https://github.com/doctrine/data-fixtures.git",
- "reference": "09b16943b27f3d80d63988d100ff256148c2f78b"
+ "reference": "f0ee99c64922fc3f863715232b615c478a61b0a3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/data-fixtures/zipball/09b16943b27f3d80d63988d100ff256148c2f78b",
- "reference": "09b16943b27f3d80d63988d100ff256148c2f78b",
+ "url": "https://api.github.com/repos/doctrine/data-fixtures/zipball/f0ee99c64922fc3f863715232b615c478a61b0a3",
+ "reference": "f0ee99c64922fc3f863715232b615c478a61b0a3",
"shasum": ""
},
"require": {
"doctrine/phpcr-odm": "<1.3.0"
},
"require-dev": {
+ "alcaeus/mongo-php-adapter": "^1.1",
"doctrine/dbal": "^2.5.4",
+ "doctrine/mongodb-odm": "^1.3.0",
"doctrine/orm": "^2.5.4",
"phpunit/phpunit": "^7.0"
},
"keywords": [
"database"
],
- "time": "2019-07-10T18:30:35+00:00"
+ "time": "2019-10-24T04:52:28+00:00"
},
{
"name": "doctrine/doctrine-fixtures-bundle",
- "version": "3.2.2",
+ "version": "3.3.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/DoctrineFixturesBundle.git",
- "reference": "90e4a4f968b2dae40e290a6ee516957af043f16c"
+ "reference": "8f07fcfdac7f3591f3c4bf13a50cbae05f65ed70"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/DoctrineFixturesBundle/zipball/90e4a4f968b2dae40e290a6ee516957af043f16c",
- "reference": "90e4a4f968b2dae40e290a6ee516957af043f16c",
+ "url": "https://api.github.com/repos/doctrine/DoctrineFixturesBundle/zipball/8f07fcfdac7f3591f3c4bf13a50cbae05f65ed70",
+ "reference": "8f07fcfdac7f3591f3c4bf13a50cbae05f65ed70",
"shasum": ""
},
"require": {
"doctrine/data-fixtures": "^1.3",
- "doctrine/doctrine-bundle": "^1.6",
+ "doctrine/doctrine-bundle": "^1.11|^2.0",
"doctrine/orm": "^2.6.0",
"php": "^7.1",
- "symfony/doctrine-bridge": "~3.4|^4.1",
- "symfony/framework-bundle": "^3.4|^4.1"
+ "symfony/config": "^3.4|^4.3|^5.0",
+ "symfony/console": "^3.4|^4.3|^5.0",
+ "symfony/dependency-injection": "^3.4|^4.3|^5.0",
+ "symfony/doctrine-bridge": "^3.4|^4.1|^5.0",
+ "symfony/http-kernel": "^3.4|^4.3|^5.0"
},
"require-dev": {
"doctrine/coding-standard": "^6.0",
"phpunit/phpunit": "^7.4",
- "symfony/phpunit-bridge": "^4.1"
+ "symfony/phpunit-bridge": "^4.1|^5.0"
},
"type": "symfony-bundle",
"extra": {
"branch-alias": {
- "dev-master": "3.2.x-dev"
+ "dev-master": "3.3.x-dev"
}
},
"autoload": {
],
"authors": [
{
- "name": "Symfony Community",
- "homepage": "http://symfony.com/contributors"
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
},
{
"name": "Doctrine Project",
"homepage": "http://www.doctrine-project.org"
},
{
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
+ "name": "Symfony Community",
+ "homepage": "http://symfony.com/contributors"
}
],
"description": "Symfony DoctrineFixturesBundle",
"Fixture",
"persistence"
],
- "time": "2019-06-12T12:03:37+00:00"
+ "time": "2019-11-13T15:46:58+00:00"
},
{
"name": "friendsofphp/php-cs-fixer",
- "version": "v2.15.3",
+ "version": "v2.16.0",
"source": {
"type": "git",
"url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git",
- "reference": "705490b0f282f21017d73561e9498d2b622ee34c"
+ "reference": "ceaff36bee1ed3f1bbbedca36d2528c0826c336d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/705490b0f282f21017d73561e9498d2b622ee34c",
- "reference": "705490b0f282f21017d73561e9498d2b622ee34c",
+ "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/ceaff36bee1ed3f1bbbedca36d2528c0826c336d",
+ "reference": "ceaff36bee1ed3f1bbbedca36d2528c0826c336d",
"shasum": ""
},
"require": {
}
],
"description": "A tool to automatically fix PHP code style",
- "time": "2019-08-31T12:51:54+00:00"
+ "time": "2019-11-03T13:31:09+00:00"
},
{
"name": "m6web/redis-mock",
- "version": "v4.6.1",
+ "version": "v4.7.0",
"source": {
"type": "git",
"url": "https://github.com/M6Web/RedisMock.git",
- "reference": "5f8821e8a39055ca4ef0d4b51dbc063aa000a2dc"
+ "reference": "057ad8e1bea903aee54642e310d900bdb794372c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/M6Web/RedisMock/zipball/5f8821e8a39055ca4ef0d4b51dbc063aa000a2dc",
- "reference": "5f8821e8a39055ca4ef0d4b51dbc063aa000a2dc",
+ "url": "https://api.github.com/repos/M6Web/RedisMock/zipball/057ad8e1bea903aee54642e310d900bdb794372c",
+ "reference": "057ad8e1bea903aee54642e310d900bdb794372c",
"shasum": ""
},
"require": {
"mock",
"redis"
],
- "time": "2019-08-20T13:03:26+00:00"
+ "time": "2019-11-04T09:03:23+00:00"
},
{
"name": "nette/bootstrap",
- "version": "v3.0.0",
+ "version": "v3.0.1",
"source": {
"type": "git",
"url": "https://github.com/nette/bootstrap.git",
- "reference": "e1075af05c211915e03e0c86542f3ba5433df4a3"
+ "reference": "b45a1e33b6a44beb307756522396551e5a9ff249"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nette/bootstrap/zipball/e1075af05c211915e03e0c86542f3ba5433df4a3",
- "reference": "e1075af05c211915e03e0c86542f3ba5433df4a3",
+ "url": "https://api.github.com/repos/nette/bootstrap/zipball/b45a1e33b6a44beb307756522396551e5a9ff249",
+ "reference": "b45a1e33b6a44beb307756522396551e5a9ff249",
"shasum": ""
},
"require": {
"nette/utils": "^3.0",
"php": ">=7.1"
},
+ "conflict": {
+ "tracy/tracy": "<2.6"
+ },
"require-dev": {
"latte/latte": "^2.2",
"nette/application": "^3.0",
"configurator",
"nette"
],
- "time": "2019-03-26T12:59:07+00:00"
+ "time": "2019-09-30T08:19:38+00:00"
},
{
"name": "nette/di",
},
{
"name": "nette/schema",
- "version": "v1.0.0",
+ "version": "v1.0.1",
"source": {
"type": "git",
"url": "https://github.com/nette/schema.git",
- "reference": "6241d8d4da39e825dd6cb5bfbe4242912f4d7e4d"
+ "reference": "337117df1dade22e2ba1fdc4a4b832c1e9b06b76"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nette/schema/zipball/6241d8d4da39e825dd6cb5bfbe4242912f4d7e4d",
- "reference": "6241d8d4da39e825dd6cb5bfbe4242912f4d7e4d",
+ "url": "https://api.github.com/repos/nette/schema/zipball/337117df1dade22e2ba1fdc4a4b832c1e9b06b76",
+ "reference": "337117df1dade22e2ba1fdc4a4b832c1e9b06b76",
"shasum": ""
},
"require": {
"config",
"nette"
],
- "time": "2019-04-03T15:53:25+00:00"
+ "time": "2019-10-31T20:52:19+00:00"
},
{
"name": "nette/utils",
- "version": "v3.0.1",
+ "version": "v3.0.2",
"source": {
"type": "git",
"url": "https://github.com/nette/utils.git",
- "reference": "bd961f49b211997202bda1d0fbc410905be370d4"
+ "reference": "c133e18c922dcf3ad07673077d92d92cef25a148"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nette/utils/zipball/bd961f49b211997202bda1d0fbc410905be370d4",
- "reference": "bd961f49b211997202bda1d0fbc410905be370d4",
+ "url": "https://api.github.com/repos/nette/utils/zipball/c133e18c922dcf3ad07673077d92d92cef25a148",
+ "reference": "c133e18c922dcf3ad07673077d92d92cef25a148",
"shasum": ""
},
"require": {
"ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()",
"ext-json": "to use Nette\\Utils\\Json",
"ext-mbstring": "to use Strings::lower() etc...",
+ "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()",
"ext-xml": "to use Strings::length() etc. when mbstring is not available"
},
"type": "library",
"utility",
"validation"
],
- "time": "2019-03-22T01:00:30+00:00"
+ "time": "2019-10-21T20:40:16+00:00"
},
{
"name": "nikic/php-parser",
- "version": "v4.2.4",
+ "version": "v4.3.0",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "97e59c7a16464196a8b9c77c47df68e4a39a45c4"
+ "reference": "9a9981c347c5c49d6dfe5cf826bb882b824080dc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/97e59c7a16464196a8b9c77c47df68e4a39a45c4",
- "reference": "97e59c7a16464196a8b9c77c47df68e4a39a45c4",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/9a9981c347c5c49d6dfe5cf826bb882b824080dc",
+ "reference": "9a9981c347c5c49d6dfe5cf826bb882b824080dc",
"shasum": ""
},
"require": {
"php": ">=7.0"
},
"require-dev": {
+ "ircmaxell/php-yacc": "0.0.5",
"phpunit/phpunit": "^6.5 || ^7.0 || ^8.0"
},
"bin": [
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.2-dev"
+ "dev-master": "4.3-dev"
}
},
"autoload": {
"parser",
"php"
],
- "time": "2019-09-01T07:51:21+00:00"
+ "time": "2019-11-08T13:50:10+00:00"
},
{
"name": "php-cs-fixer/diff",
},
{
"name": "phpstan/phpstan",
- "version": "0.11.16",
+ "version": "0.11.19",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpstan.git",
- "reference": "635cf20f3b92ce34ee94a8d2f282d62eb9dc6e1b"
+ "reference": "63cc502f6957b7f74efbac444b4cf219dcadffd7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpstan/zipball/635cf20f3b92ce34ee94a8d2f282d62eb9dc6e1b",
- "reference": "635cf20f3b92ce34ee94a8d2f282d62eb9dc6e1b",
+ "url": "https://api.github.com/repos/phpstan/phpstan/zipball/63cc502f6957b7f74efbac444b4cf219dcadffd7",
+ "reference": "63cc502f6957b7f74efbac444b4cf219dcadffd7",
"shasum": ""
},
"require": {
"jean85/pretty-package-versions": "^1.0.3",
"nette/bootstrap": "^2.4 || ^3.0",
"nette/di": "^2.4.7 || ^3.0",
+ "nette/neon": "^2.4.3 || ^3.0",
"nette/robot-loader": "^3.0.1",
"nette/schema": "^1.0",
"nette/utils": "^2.4.5 || ^3.0",
"MIT"
],
"description": "PHPStan - PHP Static Analysis Tool",
- "time": "2019-09-17T11:19:51+00:00"
+ "time": "2019-10-22T20:20:22+00:00"
},
{
"name": "phpstan/phpstan-doctrine",
},
{
"name": "symfony/phpunit-bridge",
- "version": "v4.3.5",
+ "version": "v4.3.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/phpunit-bridge.git",
- "reference": "a7fd9e742c31ac2b607b166c9016bab51a36c574"
+ "reference": "c216b32261358a820bb4217eb3a20e3f437a484e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/a7fd9e742c31ac2b607b166c9016bab51a36c574",
- "reference": "a7fd9e742c31ac2b607b166c9016bab51a36c574",
+ "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/c216b32261358a820bb4217eb3a20e3f437a484e",
+ "reference": "c216b32261358a820bb4217eb3a20e3f437a484e",
"shasum": ""
},
"require": {
],
"description": "Symfony PHPUnit Bridge",
"homepage": "https://symfony.com",
- "time": "2019-10-02T08:36:26+00:00"
+ "time": "2019-10-30T12:58:49+00:00"
}
],
"aliases": [],
# Default timezone. To change it, use the argument in the docker-compose.yml file
ARG timezone='Europe/Paris'
+ARG memorylimit='512M'
RUN apt-get update && apt-get install -y \
libmcrypt-dev \
libsqlite3-dev \
imagemagick \
libmagickwand-dev \
- libtidy-dev
+ libtidy-dev \
+ git
RUN docker-php-ext-install \
iconv \
mbstring \
+ gd \
intl \
pdo \
pdo_mysql \
pdo_pgsql \
pdo_sqlite \
- tidy
+ sockets \
+ tidy \
+ bcmath \
+ zip
RUN printf "\n" | pecl install imagick && docker-php-ext-enable imagick
RUN echo "date.timezone="$timezone > /usr/local/etc/php/conf.d/date_timezone.ini
+RUN echo "memory_limit ="$memorylimit > /usr/local/etc/php/conf.d/memory_limit.ini
RUN usermod -u 1000 www-data
. "$REQUIRE_FILE"
$COMPOSER_COMMAND install
-php bin/console wallabag:install
-php bin/console server:run
+if [ -z "$SKIP_WALLABAG_INITIALIZATION" ]
+then
+ php bin/console wallabag:install
+fi
+php bin/console server:run $HOST
/**
* Retrieve annotations for an entry.
*
- * @param Entry $entry
- *
* @see Wallabag\ApiBundle\Controller\WallabagRestController
*
* @return JsonResponse
/**
* Creates a new annotation.
*
- * @param Request $request
- * @param Entry $entry
- *
* @return JsonResponse
*
* @see Wallabag\ApiBundle\Controller\WallabagRestController
*
* @ParamConverter("annotation", class="WallabagAnnotationBundle:Annotation")
*
- * @param Annotation $annotation
- * @param Request $request
- *
* @return JsonResponse
*/
public function putAnnotationAction(Annotation $annotation, Request $request)
*
* @ParamConverter("annotation", class="WallabagAnnotationBundle:Annotation")
*
- * @param Annotation $annotation
- *
* @return JsonResponse
*/
public function deleteAnnotationAction(Annotation $annotation)
* }
* )
*
- * @param Entry $entry
- *
* @return JsonResponse
*/
public function getAnnotationsAction(Entry $entry)
* }
* )
*
- * @param Request $request
- * @param Entry $entry
- *
* @return JsonResponse
*/
public function postAnnotationAction(Request $request, Entry $entry)
*
* @ParamConverter("annotation", class="WallabagAnnotationBundle:Annotation")
*
- * @param Annotation $annotation
- * @param Request $request
- *
* @return JsonResponse
*/
public function putAnnotationAction(Annotation $annotation, Request $request)
*
* @ParamConverter("annotation", class="WallabagAnnotationBundle:Annotation")
*
- * @param Annotation $annotation
- *
* @return JsonResponse
*/
public function deleteAnnotationAction(Annotation $annotation)
/**
* Create a client (an app).
*
- * @param Request $request
- *
* @Route("/developer/client/create", name="developer_create_client")
*
* @return \Symfony\Component\HttpFoundation\Response
/**
* Remove a client.
*
- * @param Client $client
- *
* @Route("/developer/client/delete/{id}", requirements={"id" = "\d+"}, name="developer_delete_client")
*
* @return \Symfony\Component\HttpFoundation\RedirectResponse
* Retrieve value from the request.
* Used for POST & PATCH on a an entry.
*
- * @param Request $request
- *
* @return array
*/
private function retrieveValueFromRequest(Request $request)
/**
* Send user response.
*
- * @param User $user
* @param string $group Used to define with serialized group might be used
* @param int $status HTTP Status code to send
*
return 0;
}
- /**
- * @param User $user
- */
private function cleanDuplicates(User $user)
{
$em = $this->getContainer()->get('doctrine.orm.entity_manager');
return 0;
}
- /**
- * @param User $user
- */
private function generateHashedUrls(User $user)
{
$em = $this->getContainer()->get('doctrine.orm.entity_manager');
if (0 !== $exitCode) {
$this->getApplication()->setAutoExit(true);
- throw new \RuntimeException(
- 'The command "' . $command . "\" generates some errors: \n\n"
- . $output->fetch());
+ throw new \RuntimeException('The command "' . $command . "\" generates some errors: \n\n" . $output->fetch());
}
return $this;
return 0;
}
- /**
- * @param User $user
- */
private function showUser(User $user)
{
$this->io->listing([
class ConfigController extends Controller
{
/**
- * @param Request $request
- *
* @Route("/config", name="config")
*/
public function indexAction(Request $request)
/**
* Validate OTP code.
*
- * @param Request $request
- *
* @Route("/config/otp/app/check", name="config_otp_app_check")
*/
public function otpAppCheckAction(Request $request)
}
/**
- * @param Request $request
- *
* @Route("/generate-token", name="generate_token")
*
* @return RedirectResponse|JsonResponse
}
/**
- * @param Request $request
- *
* @Route("/revoke-token", name="revoke_token")
*
* @return RedirectResponse|JsonResponse
/**
* Deletes a tagging rule and redirect to the config homepage.
*
- * @param TaggingRule $rule
- *
* @Route("/tagging-rule/delete/{id}", requirements={"id" = "\d+"}, name="delete_tagging_rule")
*
* @return RedirectResponse
/**
* Edit a tagging rule.
*
- * @param TaggingRule $rule
- *
* @Route("/tagging-rule/edit/{id}", requirements={"id" = "\d+"}, name="edit_tagging_rule")
*
* @return RedirectResponse
*
* @Route("/account/delete", name="delete_account")
*
- * @param Request $request
- *
* @throws AccessDeniedHttpException
*
* @return \Symfony\Component\HttpFoundation\RedirectResponse
*
* @Route("/config/view-mode", name="switch_view_mode")
*
- * @param Request $request
- *
* @return \Symfony\Component\HttpFoundation\RedirectResponse
*/
public function changeViewModeAction(Request $request)
/**
* Change the locale for the current user.
*
- * @param Request $request
- * @param string $language
+ * @param string $language
*
* @Route("/locale/{language}", name="changeLocale")
*
/**
* Validate that a rule can be edited/deleted by the current user.
- *
- * @param TaggingRule $rule
*/
private function validateRuleAction(TaggingRule $rule)
{
class EntryController extends Controller
{
/**
- * @param Request $request
- * @param int $page
+ * @param int $page
*
* @Route("/search/{page}", name="search", defaults={"page" = 1})
*
}
/**
- * @param Request $request
- *
* @Route("/new-entry", name="new_entry")
*
* @return \Symfony\Component\HttpFoundation\Response
}
/**
- * @param Request $request
- *
* @Route("/bookmarklet", name="bookmarklet")
*
* @return \Symfony\Component\HttpFoundation\Response
/**
* Edit an entry content.
*
- * @param Request $request
- * @param Entry $entry
- *
* @Route("/edit/{id}", requirements={"id" = "\d+"}, name="edit")
*
* @return \Symfony\Component\HttpFoundation\Response
/**
* Shows all entries for current user.
*
- * @param Request $request
- * @param int $page
+ * @param int $page
*
* @Route("/all/list/{page}", name="all", defaults={"page" = "1"})
*
/**
* Shows unread entries for current user.
*
- * @param Request $request
- * @param int $page
+ * @param int $page
*
* @Route("/unread/list/{page}", name="unread", defaults={"page" = "1"})
*
/**
* Shows read entries for current user.
*
- * @param Request $request
- * @param int $page
+ * @param int $page
*
* @Route("/archive/list/{page}", name="archive", defaults={"page" = "1"})
*
/**
* Shows starred entries for current user.
*
- * @param Request $request
- * @param int $page
+ * @param int $page
*
* @Route("/starred/list/{page}", name="starred", defaults={"page" = "1"})
*
/**
* Shows untagged articles for current user.
*
- * @param Request $request
- * @param int $page
+ * @param int $page
*
* @Route("/untagged/list/{page}", name="untagged", defaults={"page" = "1"})
*
/**
* Shows entry content.
*
- * @param Entry $entry
- *
* @Route("/view/{id}", requirements={"id" = "\d+"}, name="view")
*
* @return \Symfony\Component\HttpFoundation\Response
* Reload an entry.
* Refetch content from the website and make it readable again.
*
- * @param Entry $entry
- *
* @Route("/reload/{id}", requirements={"id" = "\d+"}, name="reload_entry")
*
* @return \Symfony\Component\HttpFoundation\RedirectResponse
/**
* Changes read status for an entry.
*
- * @param Request $request
- * @param Entry $entry
- *
* @Route("/archive/{id}", requirements={"id" = "\d+"}, name="archive_entry")
*
* @return \Symfony\Component\HttpFoundation\RedirectResponse
/**
* Changes starred status for an entry.
*
- * @param Request $request
- * @param Entry $entry
- *
* @Route("/star/{id}", requirements={"id" = "\d+"}, name="star_entry")
*
* @return \Symfony\Component\HttpFoundation\RedirectResponse
/**
* Deletes entry and redirect to the homepage or the last viewed page.
*
- * @param Entry $entry
- *
* @Route("/delete/{id}", requirements={"id" = "\d+"}, name="delete_entry")
*
* @return \Symfony\Component\HttpFoundation\RedirectResponse
/**
* Get public URL for entry (and generate it if necessary).
*
- * @param Entry $entry
- *
* @Route("/share/{id}", requirements={"id" = "\d+"}, name="share")
*
* @return \Symfony\Component\HttpFoundation\Response
/**
* Disable public sharing for an entry.
*
- * @param Entry $entry
- *
* @Route("/share/delete/{id}", requirements={"id" = "\d+"}, name="delete_share")
*
* @return \Symfony\Component\HttpFoundation\Response
/**
* Ability to view a content publicly.
*
- * @param Entry $entry
- *
* @Route("/share/{uid}", requirements={"uid" = ".+"}, name="share_entry")
* @Cache(maxage="25200", smaxage="25200", public=true)
*
* Global method to retrieve entries depending on the given type
* It returns the response to be send.
*
- * @param string $type Entries type: unread, starred or archive
- * @param Request $request
- * @param int $page
+ * @param string $type Entries type: unread, starred or archive
+ * @param int $page
*
* @return \Symfony\Component\HttpFoundation\Response
*/
}
}
+ $nbEntriesUntagged = $this->get('wallabag_core.entry_repository')
+ ->countUntaggedEntriesByUser($this->getUser()->getId());
+
return $this->render(
'WallabagCoreBundle:Entry:entries.html.twig', [
'form' => $form->createView(),
'currentPage' => $page,
'searchTerm' => $searchTerm,
'isFiltered' => $form->isSubmitted(),
+ 'nbEntriesUntagged' => $nbEntriesUntagged,
]
);
}
* Fetch content and update entry.
* In case it fails, $entry->getContent will return an error message.
*
- * @param Entry $entry
* @param string $prefixMessage Should be the translation key: entry_saved or entry_reloaded
*/
private function updateEntry(Entry $entry, $prefixMessage = 'entry_saved')
/**
* Check if the logged user can manage the given entry.
- *
- * @param Entry $entry
*/
private function checkUserAction(Entry $entry)
{
/**
* Check for existing entry, if it exists, redirect to it with a message.
*
- * @param Entry $entry
- *
* @return Entry|bool
*/
private function checkIfEntryAlreadyExists(Entry $entry)
/**
* Gets one entry content.
*
- * @param Entry $entry
* @param string $format
*
* @Route("/export/{id}.{format}", name="export_entry", requirements={
*
* @ParamConverter("user", class="WallabagUserBundle:User", converter="username_feed_token_converter")
*
- * @param User $user
* @param $page
*
* @return \Symfony\Component\HttpFoundation\Response
*
* @ParamConverter("user", class="WallabagUserBundle:User", converter="username_feed_token_converter")
*
- * @param User $user
* @param $page
*
* @return \Symfony\Component\HttpFoundation\Response
*
* @ParamConverter("user", class="WallabagUserBundle:User", converter="username_feed_token_converter")
*
- * @param User $user
* @param $page
*
* @return \Symfony\Component\HttpFoundation\Response
* It returns the response to be send.
*
* @param string $type Entries type: unread, starred or archive
- * @param User $user
* @param int $page
*
* @return \Symfony\Component\HttpFoundation\Response
*
* @Route("/new", name="site_credentials_new", methods={"GET", "POST"})
*
- * @param Request $request
- *
* @return \Symfony\Component\HttpFoundation\Response
*/
public function newAction(Request $request)
*
* @Route("/{id}/edit", name="site_credentials_edit", methods={"GET", "POST"})
*
- * @param Request $request
- * @param SiteCredential $siteCredential
- *
* @return \Symfony\Component\HttpFoundation\Response
*/
public function editAction(Request $request, SiteCredential $siteCredential)
*
* @Route("/{id}", name="site_credentials_delete", methods={"DELETE"})
*
- * @param Request $request
- * @param SiteCredential $siteCredential
- *
* @return \Symfony\Component\HttpFoundation\RedirectResponse
*/
public function deleteAction(Request $request, SiteCredential $siteCredential)
class TagController extends Controller
{
/**
- * @param Request $request
- * @param Entry $entry
- *
* @Route("/new-tag/{entry}", requirements={"entry" = "\d+"}, name="new_tag")
*
* @return \Symfony\Component\HttpFoundation\Response
}
/**
- * @param Tag $tag
* @param int $page
*
* @Route("/tag/list/{slug}/{page}", name="tag_entries", defaults={"page" = "1"})
* Rename a given tag with a new label
* Create a new tag with the new name and drop the old one.
*
- * @param Tag $tag
- * @param Request $request
- *
* @Route("/tag/rename/{slug}", name="tag_rename")
* @ParamConverter("tag", options={"mapping": {"slug": "slug"}})
*
}
/**
- * @param TaggingRule $rule
- *
* @return Config
*/
public function addTaggingRule(TaggingRule $rule)
* Set created_at.
* Only used when importing data from an other service.
*
- * @param \DateTime $createdAt
- *
* @return Entry
*/
public function setCreatedAt(\DateTime $createdAt)
return $this->annotations;
}
- /**
- * @param Annotation $annotation
- */
public function setAnnotation(Annotation $annotation)
{
$this->annotations[] = $annotation;
return $data;
}
- /**
- * @param Tag $tag
- */
public function addTag(Tag $tag)
{
if ($this->tags->contains($tag)) {
/**
* Remove the given tag from the entry (if the tag is associated).
- *
- * @param Tag $tag
*/
public function removeTag(Tag $tag)
{
}
/**
- * @param \Datetime $publishedAt
- *
* @return Entry
*/
public function setPublishedAt(\Datetime $publishedAt)
return $this->slug;
}
- /**
- * @param Entry $entry
- */
public function addEntry(Entry $entry)
{
if ($this->entries->contains($entry)) {
$entry->addTag($this);
}
- /**
- * @param Entry $entry
- */
public function removeEntry(Entry $entry)
{
if (!$this->entries->contains($entry)) {
/**
* Set config.
*
- * @param Config $config
- *
* @return TaggingRule
*/
public function setConfig(Config $config)
$this->session = $session;
}
- /**
- * @param InteractiveLoginEvent $event
- */
public function onInteractiveLogin(InteractiveLoginEvent $event)
{
$user = $event->getAuthenticationToken()->getUser();
*/
class CustomDoctrineORMSubscriber extends DoctrineORMSubscriber implements EventSubscriberInterface
{
- /**
- * @param GetFilterConditionEvent $event
- */
public function filterDateRange(GetFilterConditionEvent $event)
{
$expr = $event->getFilterQuery()->getExpressionBuilder();
/**
* Download images and updated the data into the entry.
- *
- * @param EntrySavedEvent $event
*/
public function onEntrySaved(EntrySavedEvent $event)
{
/**
* Remove images related to the entry.
- *
- * @param EntryDeletedEvent $event
*/
public function onEntryDeleted(EntryDeletedEvent $event)
{
*
* @todo If we want to add async download, it should be done in that method
*
- * @param Entry $entry
- *
* @return string|false False in case of async
*/
private function downloadImages(Entry $entry)
*
* @todo If we want to add async download, it should be done in that method
*
- * @param Entry $entry
- *
* @return string|false False in case of async
*/
private function downloadPreviewImage(Entry $entry)
{
private $doctrine;
- /**
- * @param \Doctrine\Bundle\DoctrineBundle\Registry $doctrine
- */
public function __construct(Registry $doctrine)
{
$this->doctrine = $doctrine;
/**
* We removed everything related to the upcoming removed entry because SQLite can't handle it on it own.
* We do it in the preRemove, because we can't retrieve tags in the postRemove (because the entry id is gone).
- *
- * @param LifecycleEventArgs $args
*/
public function preRemove(LifecycleEventArgs $args)
{
/**
* Repository & user are used to get a list of language entries for this user.
- *
- * @param EntityRepository $entryRepository
- * @param TokenStorageInterface $tokenStorage
*/
public function __construct(EntityRepository $entryRepository, TokenStorageInterface $tokenStorage)
{
/**
* GrabySiteConfigBuilder constructor.
- *
- * @param ConfigBuilder $grabyConfigBuilder
- * @param TokenStorage $token
- * @param SiteCredentialRepository $credentialRepository
- * @param LoggerInterface $logger
*/
public function __construct(ConfigBuilder $grabyConfigBuilder, TokenStorage $token, SiteCredentialRepository $credentialRepository, LoggerInterface $logger)
{
/**
* Use a Symfony validator to ensure the language is well formatted.
*
- * @param Entry $entry
* @param string $value Language to validate and save
*/
public function updateLanguage(Entry $entry, $value)
/**
* Use a Symfony validator to ensure the preview picture is a real url.
*
- * @param Entry $entry
* @param string $value URL to validate and save
*/
public function updatePreviewPicture(Entry $entry, $value)
/**
* Update date.
*
- * @param Entry $entry
* @param string $value Date to validate and save
*/
public function updatePublishedAt(Entry $entry, $value)
/**
* Helper to extract and save host from entry url.
- *
- * @param Entry $entry
*/
public function setEntryDomainName(Entry $entry)
{
* Helper to set a default title using:
* - url basename, if applicable
* - hostname.
- *
- * @param Entry $entry
*/
public function setDefaultEntryTitle(Entry $entry)
{
* Update the origin_url field when a redirection occurs
* This field is set if it is empty and new url does not match ignore list.
*
- * @param Entry $entry
* @param string $url
*/
private function updateOriginUrl(Entry $entry, $url)
/**
* Validate that the given content has at least a title, an html and a url.
*
- * @param array $content
- *
* @return bool true if valid otherwise false
*/
private function validateContent(array $content)
/**
* Get images urls from the srcset image attribute.
*
- * @param Crawler $imagesCrawler
- *
* @return array An array of urls
*/
private static function getSrcsetUrls(Crawler $imagesCrawler)
/**
* HttpClientFactory constructor.
*
- * @param \GuzzleHttp\Cookie\CookieJar $cookieJar
- * @param string $restrictedAccess This param is a kind of boolean. Values: 0 or 1
- * @param LoggerInterface $logger
+ * @param string $restrictedAccess This param is a kind of boolean. Values: 0 or 1
*/
public function __construct(CookieJar $cookieJar, $restrictedAccess, LoggerInterface $logger)
{
/**
* Adds a subscriber to the HTTP client.
- *
- * @param SubscriberInterface $subscriber
*/
public function addSubscriber(SubscriberInterface $subscriber)
{
/**
* Input an array of configuration to be able to create a HttpClient.
*
- * @param array $config
- *
* @return HttpClient
*/
public function createClient(array $config = [])
}
/**
- * @param AdapterInterface $adapter
- * @param User $user If user isn't logged in, we can force it (like for feed)
+ * @param User $user If user isn't logged in, we can force it (like for feed)
*
* @return Pagerfanta|null
*/
/**
* Apply all the tagging rules defined by a user on its entries.
*
- * @param User $user
- *
* @return array<Entry> A list of modified entries
*/
public function tagAllForUser(User $user)
/**
* Retrieves the tagging rules for a given user.
*
- * @param User $user
- *
* @return array<TaggingRule>
*/
private function getRulesForUser(User $user)
/**
* Assign some tags to an entry.
*
- * @param Entry $entry
* @param array|string $tags An array of tag or a string coma separated of tag
* @param array $entitiesReady Entities from the EntityManager which are persisted but not yet flushed
* It is mostly to fix duplicate tag on import @see http://stackoverflow.com/a/7879164/569101
* Hash the given url using the given algorithm.
* Hashed url are faster to be retrieved in the database than the real url.
*
- * @param string $url
* @param string $algorithm
*
* @return string
* DELETE et FROM entry_tag et WHERE et.entry_id IN ( SELECT e.id FROM entry e WHERE e.user_id = :userId ) AND et.tag_id = :tagId
*
* @param int $userId
- * @param Tag $tag
*/
public function removeTag($userId, Tag $tag)
{
/**
* Return the given QueryBuilder with an orderBy() call.
*
- * @param QueryBuilder $qb
- * @param string $sortBy
- * @param string $direction
+ * @param string $sortBy
+ * @param string $direction
*
* @return QueryBuilder
*/
# wallabag_v2:
# page_title: 'Import > Wallabag v2'
# description: 'This importer will import all your wallabag v2 articles. Go to All articles, then, on the export sidebar, click on "JSON". You will have a "All articles.json" file.'
+ # elcurator:
+ # page_title: 'Import > elCurator'
+ # description: 'This importer will import all your elCurator articles. Go to your preferences in your elCurator account and then, export your content. You will have a JSON file.'
# readability:
# page_title: 'Import > Readability'
# description: 'This importer will import all your Readability articles. On the tools (https://www.readability.com/tools/) page, click on "Export your data" in the "Data Export" section. You will received an email to download a json (which does not end with .json in fact).'
wallabag_v2:
page_title: 'Aus wallabag v2 importieren'
description: 'Dieser Import wird all deine Artikel aus wallabag v2 importieren. Gehe auf "Alle Artikel" und dann, in der Exportieren-Seitenleiste auf "JSON". Dabei erhältst du eine "All articles.json"-Datei.'
+ # elcurator:
+ # page_title: 'Import > elCurator'
+ # description: 'This importer will import all your elCurator articles. Go to your preferences in your elCurator account and then, export your content. You will have a JSON file.'
readability:
page_title: 'Aus Readability importieren'
description: 'Dieser Import wird all deine Artikel aus Readability importieren. Auf der Tools Seite (https://www.readability.com/tools/) klickst du auf "Exportiere deine Daten" in dem Abschnitt "Datenexport". Du wirst eine E-Mail mit einem Downloadlink zu einer json Datei, die aber nicht auf .json endet, erhalten'
wallabag_v2:
page_title: 'Import > Wallabag v2'
description: 'This importer will import all your wallabag v2 articles. Go to All articles, then, on the export sidebar, click on "JSON". You will have a "All articles.json" file.'
+ elcurator:
+ page_title: 'Import > elCurator'
+ description: 'This importer will import all your elCurator articles. Go to your preferences in your elCurator account and then, export your content. You will have a JSON file.'
readability:
page_title: 'Import > Readability'
description: 'This importer will import all your Readability articles. On the tools (https://www.readability.com/tools/) page, click on "Export your data" in the "Data Export" section. You will received an email to download a json (which does not end with .json in fact).'
wallabag_v2:
page_title: 'Importar > Wallabag v2'
description: 'Importa todos tus artículos de wallabag v2. En la sección Todos los artículos, en la barra lateral, haga clic en "JSON". Obtendrás un archivo llamado "All articles.json".'
+ # elcurator:
+ # page_title: 'Import > elCurator'
+ # description: 'This importer will import all your elCurator articles. Go to your preferences in your elCurator account and then, export your content. You will have a JSON file.'
readability:
page_title: 'Importar > Readability'
description: 'Importa todos tus artículos de Readability. En la página de herramientas (https://www.readability.com/tools/), haga clic en "Exportar tus datos" en la sección "Exportar datos". Recibirás un correo electrónico para descargar un JSON (que no tiene extensión .json).'
wallabag_v2:
page_title: 'درونریزی > Wallabag v2'
description: 'این برنامه همهٔ دادههای شما را در نسخهٔ ۲ wallabag درونریزی میکند. به بخش «همهٔ مقالهها» بروید و در بخش «برونریزی» روی "JSON" کلیک کنید. با این کار شما پروندهای به شکل "All articles.json" دریافت خواهید کرد.'
+ # elcurator:
+ # page_title: 'Import > elCurator'
+ # description: 'This importer will import all your elCurator articles. Go to your preferences in your elCurator account and then, export your content. You will have a JSON file.'
readability:
page_title: 'درونریزی > Readability'
# description: 'This importer will import all your Readability articles. On the tools (https://www.readability.com/tools/) page, click on "Export your data" in the "Data Export" section. You will received an email to download a json (which does not end with .json in fact).'
wallabag_v2:
page_title: "Importer > wallabag v2"
description: "Cet outil va importer tous vos articles d’une autre instance de wallabag v2. Allez dans tous vos articles, puis, sur la barre latérale, cliquez sur « JSON ». Vous allez récupérer un fichier « All articles.json »"
+ # elcurator:
+ # page_title: 'Import > elCurator'
+ # description: 'This importer will import all your elCurator articles. Go to your preferences in your elCurator account and then, export your content. You will have a JSON file.'
readability:
page_title: "Importer > Readability"
description: "Cet outil va importer toutes vos données de Readability. Sur la page des outils (https://www.readability.com/tools/), cliquez sur « Export your data » dans la section « Data Export ». Vous allez recevoir un courriel avec un lien pour télécharger le json."
wallabag_v2:
page_title: 'Importa da > Wallabag v2'
description: 'Questo importatore copierà tutti i tuoi dati da un wallabag v2. Vai in "Tutti i contenuti", e, nella barra laterale di esportazione, clicca su "JSON". Otterrai un file "Tutti i contenuti.json'
+ # elcurator:
+ # page_title: 'Import > elCurator'
+ # description: 'This importer will import all your elCurator articles. Go to your preferences in your elCurator account and then, export your content. You will have a JSON file.'
readability:
page_title: 'Importa da > Readability'
description: 'Questo importatore copierà tutti i tuoi articoli da Readability. Nella pagina strumenti (https://www.readability.com/tools/), clicca su "Export your data" nella sezione "Data Export". Riceverai una E-mail per scaricare un file json (che tuttavia non termina con .json).'
wallabag_v2:
page_title: 'Importar > Wallabag v2'
description: "Aquesta aisina importarà totas vòstras donadas d'una instància mai de wallabag v2. Anatz dins totes vòstres articles, puèi, sus la barra laterala, clicatz sus \"JSON\". Traparetz un fichièr \"All articles.json\"."
+ # elcurator:
+ # page_title: 'Import > elCurator'
+ # description: 'This importer will import all your elCurator articles. Go to your preferences in your elCurator account and then, export your content. You will have a JSON file.'
readability:
page_title: 'Importar > Readability'
description: "Aquesta aisina importarà totas vòstres articles de Readability. Sus la pagina de l'aisina (https://www.readability.com/tools/), clicatz sus \"Export your data\" dins la seccion \"Data Export\". Recebretz un corrièl per telecargar un json (qu'acaba pas amb un .json de fach)."
wallabag_v2:
page_title: 'Import > Wallabag v2'
description: 'Ten importer, zaimportuje wszystkie twoje artykułu z wallabag v2. Idź do wszystkich artykułów, a następnie na panelu exportu kliknij na "JSON". Otrzymasz plik "All articles.json".'
+ # elcurator:
+ # page_title: 'Import > elCurator'
+ # description: 'This importer will import all your elCurator articles. Go to your preferences in your elCurator account and then, export your content. You will have a JSON file.'
readability:
page_title: 'Import > Readability'
description: 'Ten importer, zaimportuje wszystkie twoje artykuły z Readability. Na stronie narzędzi (https://www.readability.com/tools/), kliknij na "Export your data" w sekcji "Data Export". Otrzymach email z plikiem JSON (plik nie będzie zawierał rozszerzenia .json).'
wallabag_v2:
page_title: 'Importar > Wallabag v2'
description: 'Com este importador você importa todos os seus artigos do wallabag v2. Vá em Todos os artigos e então, na barra lateral de exportação, clique em "JSON". Você irá criar um arquivo "All articles.json".'
+ # elcurator:
+ # page_title: 'Import > elCurator'
+ # description: 'This importer will import all your elCurator articles. Go to your preferences in your elCurator account and then, export your content. You will have a JSON file.'
readability:
page_title: 'Importar > Readability'
description: 'Este importador pode importar todos os artigos do Readability. Nas página ferramentas (https://www.readability.com/tools/), clique em "Export your data" na seção "Data Export". Você receberá um e-mail para fazer o download de um json (que de fato não termina com .json).'
# wallabag_v2:
# page_title: 'Import > Wallabag v2'
# description: 'This importer will import all your wallabag v2 articles. Go to All articles, then, on the export sidebar, click on "JSON". You will have a "All articles.json" file.'
+ # elcurator:
+ # page_title: 'Import > elCurator'
+ # description: 'This importer will import all your elCurator articles. Go to your preferences in your elCurator account and then, export your content. You will have a JSON file.'
# readability:
# page_title: 'Import > Readability'
# description: 'This importer will import all your Readability articles. On the tools (https://www.readability.com/tools/) page, click on "Export your data" in the "Data Export" section. You will received an email to download a json (which does not end with .json in fact).'
wallabag_v2:
page_title: 'Импорт > Wallabag v2'
description: 'Функция импорта добавит все ваши записи wallabag v2. Перейдите ко всем статьям, затем на боковой панели экспорта нажмите "JSON". У вас появится файл со всеми записями "All articles.json".'
+ # elcurator:
+ # page_title: 'Import > elCurator'
+ # description: 'This importer will import all your elCurator articles. Go to your preferences in your elCurator account and then, export your content. You will have a JSON file.'
readability:
page_title: 'Импорт > Readability'
description: 'Функция импорта добавит все ваши записи для чтения. На странице инструментов (https://www.readability.com/tools/) нажмите "Экспорт ваших данных" в разделе "Экспорт данных". Вы получите электронное письмо для загрузки json (что не заканчивается только .json файлом).'
wallabag_v2:
page_title: 'นำเข้าข้อมูล > Wallabag v2'
description: 'สำหรับผู้นำเข้าข้อมูลจะ import บทความ wallabag v2 ทั้งหมดของคุณ ไปยังบทความทั้งหมด, ดังนั้น, บน export sidebar, click ที่ "JSON" คุณจะมีไฟล์ "All articles.json"'
+ # elcurator:
+ # page_title: 'Import > elCurator'
+ # description: 'This importer will import all your elCurator articles. Go to your preferences in your elCurator account and then, export your content. You will have a JSON file.'
readability:
page_title: 'นำเข้าข้อมูล > Readability'
description: 'สำหรับผู้นำเข้าข้อมูลจะ import บทความ Readability ทั้งหมดของคุณ ไปที่เครื่องมือ (https://www.readability.com/tools/) ของหน้านั้น, click ที่ "Export your data" ในส่วน "Data Export" คุณจะได้รับ email ไป download json (which does not end with .json in fact).'
wallabag_v2:
page_title: 'İçe Aktar > Wallabag v2'
# description: 'This importer will import all your wallabag v2 articles. Go to All articles, then, on the export sidebar, click on "JSON". You will have a "All articles.json" file.'
+ # elcurator:
+ # page_title: 'Import > elCurator'
+ # description: 'This importer will import all your elCurator articles. Go to your preferences in your elCurator account and then, export your content. You will have a JSON file.'
readability:
page_title: 'İçe Aktar > Readability'
# description: 'This importer will import all your Readability articles. On the tools (https://www.readability.com/tools/) page, click on "Export your data" in the "Data Export" section. You will received an email to download a json (which does not end with .json in fact).'
<a href="javascript: void(null);" id="filter-form-close" class="close-button--popup close-button">×</a>
<div id="filter-status" class="filter-group">
+ {% if currentRoute != 'untagged' and nbEntriesUntagged != 0 %}
+ <div class="">
+ <a href="{{ path('untagged') }}">{{ 'tag.list.see_untagged_entries'|trans }} ({{nbEntriesUntagged}})</a>
+ </div>
+ {% endif %}
+
<div class="">
<label>{{ 'entry.filters.status_label'|trans }}</label>
</div>
<h4 class="center">{{ 'entry.filters.title'|trans }}</h4>
<div class="row">
+ {% if currentRoute != 'untagged' and nbEntriesUntagged != 0 %}
+ <div class="col s12 center-align">
+ <a href="{{ path('untagged') }}">{{ 'tag.list.see_untagged_entries'|trans }} ({{nbEntriesUntagged}})</a>
+ </div>
+ {% endif %}
+
<div class="col s12">
<label>{{ 'entry.filters.status_label'|trans }}</label>
</div>
{% if form_errors(form) %}
<span class="black-text">{{ form_errors(form) }}</span>
{% endif %}
- <button type="submit" class="nav-form-button"><i class="material-icons add">add</i></button>
+ <button type="submit" class="nav-form-button" aria-label="add"><i class="material-icons add" aria-hidden="true"></i></button>
{% if form_errors(form.url) %}
<span class="black-text">{{ form_errors(form.url) }}</span>
{% endif %}
{{ form_widget(form.url, { 'attr': {'autocomplete': 'off', 'placeholder': 'entry.new.placeholder'} }) }}
- <i class="material-icons close">clear</i>
+ <i class="material-icons close" aria-label="clear" role="button"></i>
{{ form_rest(form) }}
</form>
{% if form_errors(form) %}
<span class="black-text">{{ form_errors(form) }}</span>
{% endif %}
- <button type="submit" class="nav-form-button"><i class="material-icons search">search</i></button>
+ <button type="submit" class="nav-form-button" aria-label="search"><i class="material-icons search" aria-hidden="true"></i></button>
{% if form_errors(form.term) %}
<span class="black-text">{{ form_errors(form.term) }}</span>
<input type="hidden" name="currentRoute" value="{{ currentRoute }}" />
{{ form_widget(form.term, { 'attr': {'autocomplete': 'off', 'placeholder': 'entry.search.placeholder'} }) }}
- <i class="material-icons close">clear</i>
+ <i class="material-icons close" aria-label="clear" role="button"></i>
{{ form_rest(form) }}
</form>
/**
* @Route("/browser", name="import_browser")
*
- * @param Request $request
- *
* @return Response
*/
public function indexAction(Request $request)
--- /dev/null
+<?php
+
+namespace Wallabag\ImportBundle\Controller;
+
+use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\Routing\Annotation\Route;
+
+class ElcuratorController extends WallabagController
+{
+ /**
+ * @Route("/elcurator", name="import_elcurator")
+ */
+ public function indexAction(Request $request)
+ {
+ return parent::indexAction($request);
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ protected function getImportService()
+ {
+ $service = $this->get('wallabag_import.elcurator.import');
+
+ if ($this->get('craue_config')->get('import_with_rabbitmq')) {
+ $service->setProducer($this->get('old_sound_rabbit_mq.import_elcurator_producer'));
+ } elseif ($this->get('craue_config')->get('import_with_redis')) {
+ $service->setProducer($this->get('wallabag_import.producer.redis.elcurator'));
+ }
+
+ return $service;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ protected function getImportTemplate()
+ {
+ return 'WallabagImportBundle:Elcurator:index.html.twig';
+ }
+}
/**
* Handle import request.
*
- * @param Request $request
- *
* @return Response|RedirectResponse
*/
public function indexAction(Request $request)
/**
* Set RabbitMQ/Redis Producer to send each entry to a queue.
* This method should be called when user has enabled RabbitMQ.
- *
- * @param ProducerInterface $producer
*/
public function setProducer(ProducerInterface $producer)
{
/**
* Set current user.
* Could the current *connected* user or one retrieve by the consumer.
- *
- * @param User $user
*/
public function setUser(User $user)
{
/**
* Parse one entry.
*
- * @param array $importedEntry
- *
* @return Entry
*/
abstract public function parseEntry(array $importedEntry);
/**
* Validate that an entry is valid (like has some required keys, etc.).
*
- * @param array $importedEntry
- *
* @return bool
*/
abstract public function validateEntry(array $importedEntry);
/**
* Parse and insert all given entries.
- *
- * @param array $entries
*/
protected function parseEntries(array $entries)
{
*
* Faster parse entries for Producer.
* We don't care to make check at this time. They'll be done by the consumer.
- *
- * @param array $entries
*/
protected function parseEntriesForProducer(array $entries)
{
* Set current imported entry to archived / read.
* Implementation is different accross all imports.
*
- * @param array $importedEntry
- *
* @return array
*/
abstract protected function setEntryAsRead(array $importedEntry);
/**
* Parse and insert all given entries.
- *
- * @param array $entries
*/
protected function parseEntries(array $entries)
{
*
* Faster parse entries for Producer.
* We don't care to make check at this time. They'll be done by the consumer.
- *
- * @param array $entries
*/
protected function parseEntriesForProducer(array $entries)
{
--- /dev/null
+<?php
+
+namespace Wallabag\ImportBundle\Import;
+
+class ElcuratorImport extends WallabagImport
+{
+ /**
+ * {@inheritdoc}
+ */
+ public function getName()
+ {
+ return 'elcurator';
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function getUrl()
+ {
+ return 'import_elcurator';
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function getDescription()
+ {
+ return 'import.elcurator.description';
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ protected function prepareEntry($entry = [])
+ {
+ return [
+ 'url' => $entry['url'],
+ 'title' => $entry['title'],
+ 'created_at' => $entry['created_at'],
+ 'is_archived' => 0,
+ 'is_starred' => $entry['is_saved'],
+ ] + $entry;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ protected function setEntryAsRead(array $importedEntry)
+ {
+ $importedEntry['is_archived'] = 1;
+
+ return $importedEntry;
+ }
+}
/**
* Add an import to the chain.
*
- * @param ImportInterface $import
- * @param string $alias
+ * @param string $alias
*/
public function addImport(ImportInterface $import, $alias)
{
/**
* Set the Http client.
- *
- * @param HttpClient $client
- * @param MessageFactory|null $messageFactory
*/
public function setClient(HttpClient $client, MessageFactory $messageFactory = null)
{
- "@wallabag_import.wallabag_v2.import"
- "@event_dispatcher"
- "@logger"
+ wallabag_import.consumer.amqp.elcurator:
+ class: Wallabag\ImportBundle\Consumer\AMQPEntryConsumer
+ arguments:
+ - "@doctrine.orm.entity_manager"
+ - "@wallabag_user.user_repository"
+ - "@wallabag_import.elcurator.import"
+ - "@event_dispatcher"
+ - "@logger"
wallabag_import.consumer.amqp.firefox:
class: Wallabag\ImportBundle\Consumer\AMQPEntryConsumer
arguments:
- "@event_dispatcher"
- "@logger"
+ # elcurator
+ wallabag_import.queue.redis.elcurator:
+ class: Simpleue\Queue\RedisQueue
+ arguments:
+ - "@wallabag_core.redis.client"
+ - "wallabag.import.elcurator"
+
+ wallabag_import.producer.redis.elcurator:
+ class: Wallabag\ImportBundle\Redis\Producer
+ arguments:
+ - "@wallabag_import.queue.redis.elcurator"
+
+ wallabag_import.consumer.redis.elcurator:
+ class: Wallabag\ImportBundle\Consumer\RedisEntryConsumer
+ arguments:
+ - "@doctrine.orm.entity_manager"
+ - "@wallabag_user.user_repository"
+ - "@wallabag_import.elcurator.import"
+ - "@event_dispatcher"
+ - "@logger"
+
# firefox
wallabag_import.queue.redis.firefox:
class: Simpleue\Queue\RedisQueue
tags:
- { name: wallabag_import.import, alias: wallabag_v2 }
+ wallabag_import.elcurator.import:
+ class: Wallabag\ImportBundle\Import\ElcuratorImport
+ arguments:
+ - "@doctrine.orm.entity_manager"
+ - "@wallabag_core.content_proxy"
+ - "@wallabag_core.tags_assigner"
+ - "@event_dispatcher"
+ calls:
+ - [ setLogger, [ "@logger" ]]
+ tags:
+ - { name: wallabag_import.import, alias: elcurator }
+
wallabag_import.readability.import:
class: Wallabag\ImportBundle\Import\ReadabilityImport
arguments:
--- /dev/null
+{% extends "WallabagImportBundle:WallabagV1:index.html.twig" %}
+
+{% block title %}{{ 'import.elcurator.page_title'|trans }}{% endblock %}
}
/**
- * @param Request $request
- * @param int $page
+ * @param int $page
*
* @Route("/list/{page}", name="user_index", defaults={"page" = 1})
*
}
/**
- * @param Entry $entry
- *
* @return User
*/
public function addEntry(Entry $entry)
}
/**
- * @param Client $client
- *
* @return User
*/
public function addClient(Client $client)
class UserType extends AbstractType
{
- /**
- * @param FormBuilderInterface $builder
- * @param array $options
- */
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
;
}
- /**
- * @param OptionsResolver $resolver
- */
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
/**
* Initialize the auth code mailer with the SwiftMailer object.
*
- * @param \Swift_Mailer $mailer
- * @param Environment $twig
- * @param string $senderEmail
- * @param string $senderName
- * @param string $supportUrl wallabag support url
- * @param string $wallabagUrl wallabag instance url
+ * @param string $senderEmail
+ * @param string $senderName
+ * @param string $supportUrl wallabag support url
+ * @param string $wallabagUrl wallabag instance url
*/
public function __construct(\Swift_Mailer $mailer, Environment $twig, $senderEmail, $senderName, $supportUrl, $wallabagUrl)
{
/**
* Send the auth code to the user via email.
- *
- * @param TwoFactorInterface $user
*/
public function sendAuthCode(TwoFactorInterface $user): void
{
$authors = $content->getPublishedBy();
$this->assertSame('2017-04-05 19:26:13', $content->getPublishedAt()->format('Y-m-d H:i:s'));
$this->assertSame('fr', $content->getLanguage());
- $this->assertSame('Raphaël Balenieri, correspondant à Pékin', $authors[0]);
- $this->assertSame('Frédéric Autran, correspondant à New York', $authors[1]);
+ $this->assertSame('Raphaël Balenieri', $authors[0]);
+ $this->assertSame('Frédéric Autran', $authors[1]);
}
public function testPostNewOkUrlExist()
],
'es-ES' => [
'https://www.20minutos.es/noticia/3360685/0/gobierno-sanchez-primero-historia-mas-mujeres-que-hombres/',
- 'es',
+ 'es_ES',
],
];
}
--- /dev/null
+<?php
+
+namespace Tests\Wallabag\ImportBundle\Controller;
+
+use Symfony\Component\HttpFoundation\File\UploadedFile;
+use Tests\Wallabag\CoreBundle\WallabagCoreTestCase;
+
+class ElcuratorControllerTest extends WallabagCoreTestCase
+{
+ public function testImportElcurator()
+ {
+ $this->logInAs('admin');
+ $client = $this->getClient();
+
+ $crawler = $client->request('GET', '/import/elcurator');
+
+ $this->assertSame(200, $client->getResponse()->getStatusCode());
+ $this->assertSame(1, $crawler->filter('form[name=upload_import_file] > button[type=submit]')->count());
+ $this->assertSame(1, $crawler->filter('input[type=file]')->count());
+ }
+
+ public function testImportElcuratorWithRabbitEnabled()
+ {
+ $this->logInAs('admin');
+ $client = $this->getClient();
+
+ $client->getContainer()->get('craue_config')->set('import_with_rabbitmq', 1);
+
+ $crawler = $client->request('GET', '/import/elcurator');
+
+ $this->assertSame(200, $client->getResponse()->getStatusCode());
+ $this->assertSame(1, $crawler->filter('form[name=upload_import_file] > button[type=submit]')->count());
+ $this->assertSame(1, $crawler->filter('input[type=file]')->count());
+
+ $client->getContainer()->get('craue_config')->set('import_with_rabbitmq', 0);
+ }
+
+ public function testImportElcuratorBadFile()
+ {
+ $this->logInAs('admin');
+ $client = $this->getClient();
+
+ $crawler = $client->request('GET', '/import/elcurator');
+ $form = $crawler->filter('form[name=upload_import_file] > button[type=submit]')->form();
+
+ $data = [
+ 'upload_import_file[file]' => '',
+ ];
+
+ $client->submit($form, $data);
+
+ $this->assertSame(200, $client->getResponse()->getStatusCode());
+ }
+
+ public function testImportElcuratorWithRedisEnabled()
+ {
+ $this->checkRedis();
+ $this->logInAs('admin');
+ $client = $this->getClient();
+
+ $client->getContainer()->get('craue_config')->set('import_with_redis', 1);
+
+ $crawler = $client->request('GET', '/import/elcurator');
+
+ $this->assertSame(200, $client->getResponse()->getStatusCode());
+ $this->assertSame(1, $crawler->filter('form[name=upload_import_file] > button[type=submit]')->count());
+ $this->assertSame(1, $crawler->filter('input[type=file]')->count());
+
+ $form = $crawler->filter('form[name=upload_import_file] > button[type=submit]')->form();
+
+ $file = new UploadedFile(__DIR__ . '/../fixtures/elcurator.json', 'elcurator.json');
+
+ $data = [
+ 'upload_import_file[file]' => $file,
+ ];
+
+ $client->submit($form, $data);
+
+ $this->assertSame(302, $client->getResponse()->getStatusCode());
+
+ $crawler = $client->followRedirect();
+
+ $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(['_text']));
+ $this->assertContains('flashes.import.notice.summary', $body[0]);
+
+ $this->assertNotEmpty($client->getContainer()->get('wallabag_core.redis.client')->lpop('wallabag.import.elcurator'));
+
+ $client->getContainer()->get('craue_config')->set('import_with_redis', 0);
+ }
+
+ public function testImportElcuratorWithFile()
+ {
+ $this->logInAs('admin');
+ $client = $this->getClient();
+
+ $crawler = $client->request('GET', '/import/elcurator');
+ $form = $crawler->filter('form[name=upload_import_file] > button[type=submit]')->form();
+
+ $file = new UploadedFile(__DIR__ . '/../fixtures/elcurator.json', 'elcurator.json');
+
+ $data = [
+ 'upload_import_file[file]' => $file,
+ ];
+
+ $client->submit($form, $data);
+
+ $this->assertSame(302, $client->getResponse()->getStatusCode());
+
+ $crawler = $client->followRedirect();
+
+ $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(['_text']));
+ $this->assertContains('flashes.import.notice.summary', $body[0]);
+
+ $content = $client->getContainer()
+ ->get('doctrine.orm.entity_manager')
+ ->getRepository('WallabagCoreBundle:Entry')
+ ->findByUrlAndUserId(
+ 'https://devblog.lexik.fr/git/qualite-de-code-integration-de-php-git-hooks-dans-symfony2-2842',
+ $this->getLoggedInUserId()
+ );
+
+ $this->assertInstanceOf('Wallabag\CoreBundle\Entity\Entry', $content);
+
+ $this->assertSame('Qualité de code - Intégration de php-git-hooks dans Symfony2 - Experts Symfony et Drupal - Lexik', $content->getTitle());
+ $this->assertSame('2015-09-09', $content->getCreatedAt()->format('Y-m-d'));
+ $this->assertTrue($content->isStarred(), 'Entry is starred');
+
+ $tags = $content->getTags();
+ $this->assertContains('tag1', $tags, 'It includes the "tag1" tag');
+ $this->assertContains('tag2', $tags, 'It includes the "tag2" tag');
+ }
+}
$crawler = $client->request('GET', '/import/');
$this->assertSame(200, $client->getResponse()->getStatusCode());
- $this->assertSame(8, $crawler->filter('blockquote')->count());
+ $this->assertSame(9, $crawler->filter('blockquote')->count());
}
}
$this->assertInstanceOf('Wallabag\CoreBundle\Entity\Entry', $content);
$this->assertNotEmpty($content->getMimetype(), 'Mimetype for https://ma.ttias.be is ok');
$this->assertNotEmpty($content->getPreviewPicture(), 'Preview picture for https://ma.ttias.be is ok');
- $this->assertNotEmpty($content->getLanguage(), 'Language for https://ma.ttias.be is ok');
+ $this->assertNull($content->getLanguage(), 'Language for https://ma.ttias.be is null');
$tags = $content->getTags();
$this->assertContains('foot', $tags, 'It includes the "foot" tag');
--- /dev/null
+[
+ {
+ "created_at": "2015-09-09 11:10:32 UTC",
+ "title": "Qualité de code - Intégration de php-git-hooks dans Symfony2 - Experts Symfony et Drupal - Lexik",
+ "url": "https://devblog.lexik.fr/git/qualite-de-code-integration-de-php-git-hooks-dans-symfony2-2842",
+ "description": null,
+ "tags": [
+ "tag1",
+ "tag2"
+ ],
+ "is_saved": true
+ }
+]