]> git.immae.eu Git - github/wallabag/wallabag.git/commitdiff
Merge pull request #3376 from wallabag/symfony-3.3
authorJérémy Benoist <j0k3r@users.noreply.github.com>
Wed, 11 Oct 2017 07:55:03 +0000 (09:55 +0200)
committerGitHub <noreply@github.com>
Wed, 11 Oct 2017 07:55:03 +0000 (09:55 +0200)
Symfony 3.3

44 files changed:
app/DoctrineMigrations/Version20161001072726.php
app/DoctrineMigrations/Version20161022134138.php
app/DoctrineMigrations/Version20161024212538.php
app/DoctrineMigrations/Version20170510082609.php
app/DoctrineMigrations/Version20170719231144.php
app/config/config.yml
composer.json
phpunit.xml.dist
src/Wallabag/AnnotationBundle/Controller/WallabagAnnotationController.php
src/Wallabag/ApiBundle/Controller/EntryRestController.php
src/Wallabag/ApiBundle/Controller/TagRestController.php
src/Wallabag/ApiBundle/Controller/UserRestController.php
src/Wallabag/ApiBundle/Controller/WallabagRestController.php
src/Wallabag/CoreBundle/Command/ListUserCommand.php
src/Wallabag/CoreBundle/Command/ShowUserCommand.php
src/Wallabag/CoreBundle/Controller/ConfigController.php
src/Wallabag/CoreBundle/Controller/EntryController.php
src/Wallabag/CoreBundle/Controller/ExportController.php
src/Wallabag/CoreBundle/Controller/TagController.php
src/Wallabag/CoreBundle/Event/Subscriber/TablePrefixSubscriber.php
src/Wallabag/CoreBundle/Form/DataTransformer/StringToListTransformer.php
src/Wallabag/CoreBundle/GuzzleSiteAuthenticator/GrabySiteConfigBuilder.php
src/Wallabag/CoreBundle/Helper/ContentProxy.php
src/Wallabag/CoreBundle/Operator/Doctrine/Matches.php
src/Wallabag/CoreBundle/Operator/Doctrine/NotMatches.php
src/Wallabag/CoreBundle/Operator/PHP/Matches.php
src/Wallabag/CoreBundle/Operator/PHP/NotMatches.php
src/Wallabag/ImportBundle/Import/AbstractImport.php
src/Wallabag/ImportBundle/Import/BrowserImport.php
src/Wallabag/ImportBundle/Import/ChromeImport.php
src/Wallabag/ImportBundle/Import/FirefoxImport.php
src/Wallabag/ImportBundle/Import/InstapaperImport.php
src/Wallabag/ImportBundle/Import/PocketImport.php
src/Wallabag/ImportBundle/Import/WallabagV1Import.php
tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php
tests/Wallabag/ImportBundle/Controller/ChromeControllerTest.php
tests/Wallabag/ImportBundle/Controller/FirefoxControllerTest.php
tests/Wallabag/ImportBundle/Controller/PinboardControllerTest.php
tests/Wallabag/ImportBundle/Controller/ReadabilityControllerTest.php
tests/Wallabag/ImportBundle/Controller/WallabagV1ControllerTest.php
tests/Wallabag/ImportBundle/Controller/WallabagV2ControllerTest.php
tests/Wallabag/ImportBundle/fixtures/readability-read.json
tests/Wallabag/ImportBundle/fixtures/readability.json
tests/Wallabag/ImportBundle/fixtures/wallabag-v2.json

index 4babe1721b187deda082634c826d33e78ed6455e..f9d088a37b1dab703c0674f4f1694cec25e9ec5d 100644 (file)
@@ -28,7 +28,7 @@ class Version20161001072726 extends AbstractMigration implements ContainerAwareI
      */
     public function up(Schema $schema)
     {
-        $this->skipIf($this->connection->getDatabasePlatform()->getName() === 'sqlite', 'Migration can only be executed safely on \'mysql\' or \'postgresql\'.');
+        $this->skipIf('sqlite' === $this->connection->getDatabasePlatform()->getName(), 'Migration can only be executed safely on \'mysql\' or \'postgresql\'.');
 
         // remove all FK from entry_tag
         switch ($this->connection->getDatabasePlatform()->getName()) {
index 89ba99732dd2731097de347cb6983d43dbfbaaff..c84f8fbbac2b58f0ed8978945da3973b2ee1cedc 100644 (file)
@@ -27,7 +27,7 @@ class Version20161022134138 extends AbstractMigration implements ContainerAwareI
      */
     public function up(Schema $schema)
     {
-        $this->skipIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'This migration only apply to MySQL');
+        $this->skipIf('mysql' !== $this->connection->getDatabasePlatform()->getName(), 'This migration only apply to MySQL');
 
         $this->addSql('ALTER DATABASE ' . $this->connection->getParams()['dbname'] . ' CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;');
 
@@ -58,7 +58,7 @@ class Version20161022134138 extends AbstractMigration implements ContainerAwareI
      */
     public function down(Schema $schema)
     {
-        $this->skipIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'This migration only apply to MySQL');
+        $this->skipIf('mysql' !== $this->connection->getDatabasePlatform()->getName(), 'This migration only apply to MySQL');
 
         $this->addSql('ALTER DATABASE ' . $this->connection->getParams()['dbname'] . ' CHARACTER SET = utf8 COLLATE = utf8_unicode_ci;');
 
index 35853d033f6756efe590ab3a726c80972cd84708..698819be33de44f67e6f41ec7a5253bb0a9ab1d8 100644 (file)
@@ -55,7 +55,7 @@ class Version20161024212538 extends AbstractMigration implements ContainerAwareI
 
         $clientsTable->dropColumn('user_id', 'integer');
 
-        if ($this->connection->getDatabasePlatform()->getName() !== 'sqlite') {
+        if ('sqlite' !== $this->connection->getDatabasePlatform()->getName()) {
             $clientsTable->removeForeignKey($this->constraintName);
         }
     }
index 329613b1bb3a9c9f504221018918d233a0a39675..52c70168c19c86afcc43b8512bc6eccc18a14ef9 100644 (file)
@@ -34,7 +34,7 @@ class Version20170510082609 extends AbstractMigration implements ContainerAwareI
      */
     public function up(Schema $schema)
     {
-        $this->skipIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'This migration only apply to MySQL');
+        $this->skipIf('mysql' !== $this->connection->getDatabasePlatform()->getName(), 'This migration only apply to MySQL');
 
         foreach ($this->fields as $field) {
             $this->addSql('ALTER TABLE ' . $this->getTable('user') . ' CHANGE ' . $field . ' ' . $field . ' VARCHAR(180) NOT NULL;');
@@ -46,7 +46,7 @@ class Version20170510082609 extends AbstractMigration implements ContainerAwareI
      */
     public function down(Schema $schema)
     {
-        $this->skipIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'This migration only apply to MySQL');
+        $this->skipIf('mysql' !== $this->connection->getDatabasePlatform()->getName(), 'This migration only apply to MySQL');
 
         foreach ($this->fields as $field) {
             $this->addSql('ALTER TABLE ' . $this->getTable('user') . ' CHANGE ' . $field . ' ' . $field . ' VARCHAR(255) NOT NULL;');
index 0f5fa75ae527c2708ee2eec30193723ba772e447..0c749150789378417fecfbb91638b7fe49026df0 100644 (file)
@@ -27,7 +27,7 @@ class Version20170719231144 extends AbstractMigration implements ContainerAwareI
      */
     public function up(Schema $schema)
     {
-        $this->skipIf($this->connection->getDatabasePlatform()->getName() === 'sqlite', 'Migration can only be executed safely on \'mysql\' or \'postgresql\'.');
+        $this->skipIf('sqlite' === $this->connection->getDatabasePlatform()->getName(), 'Migration can only be executed safely on \'mysql\' or \'postgresql\'.');
 
         // Find tags which need to be merged
         $dupTags = $this->connection->query('
index d37ed227b4db44e6937b3bd3c4d9639f0c2ae75c..b76fb696636149b51fb68b61e61cda2f0d97cbae 100644 (file)
@@ -350,3 +350,10 @@ fos_js_routing:
         - howto
         - fos_user_security_logout
         - new
+
+jms_serializer:
+    handlers:
+        # to be removed if we switch to (default) ISO8601 datetime instead of ATOM
+        # see: https://github.com/schmittjoh/JMSSerializerBundle/pull/494
+        datetime:
+            default_format: "Y-m-d\\TH:i:sO" # ATOM
index fa0a4a39d7309145058f80221557fe4c169dab56..d1f970c79704956bb8beb94becbc8e2490ab6634 100644 (file)
@@ -43,7 +43,7 @@
         "ext-iconv": "*",
         "ext-tokenizer": "*",
         "ext-pdo": "*",
-        "symfony/symfony": "3.2.*",
+        "symfony/symfony": "3.3.*",
         "doctrine/orm": "^2.5",
         "doctrine/doctrine-bundle": "^1.6",
         "doctrine/doctrine-cache-bundle": "^1.2",
         "symfony/swiftmailer-bundle": "^2.3",
         "symfony/monolog-bundle": "^3.0",
         "sensio/distribution-bundle": "^5.0",
-        "sensio/framework-extra-bundle": "^3.0.2",
+        "sensio/framework-extra-bundle": "^3.0",
         "incenteev/composer-parameter-handler": "^2.0",
-        "nelmio/cors-bundle": "~1.4.0",
+        "nelmio/cors-bundle": "~1.4",
         "friendsofsymfony/rest-bundle": "~2.1",
-        "jms/serializer-bundle": "~1.1",
+        "jms/serializer-bundle": "~2.2",
         "nelmio/api-doc-bundle": "~2.7",
         "mgargano/simplehtmldom": "~1.5",
         "wallabag/tcpdf": "^6.2",
-        "simplepie/simplepie": "~1.3.1",
+        "simplepie/simplepie": "~1.5",
         "willdurand/hateoas-bundle": "~1.0",
         "liip/theme-bundle": "~1.1",
         "lexik/form-filter-bundle": "~5.0",
     },
     "require-dev": {
         "doctrine/doctrine-fixtures-bundle": "~2.2",
-        "doctrine/data-fixtures": "~1.1.1",
+        "doctrine/data-fixtures": "~1.1",
         "sensio/generator-bundle": "^3.0",
         "symfony/phpunit-bridge": "^3.3",
         "friendsofphp/php-cs-fixer": "~2.0",
         "m6web/redis-mock": "^2.0",
-        "dama/doctrine-test-bundle": "^1.0"
+        "dama/doctrine-test-bundle": "^3.0"
     },
     "scripts": {
         "post-cmd": [
index 8f5285e65b9ff196dc17faac326e5b41b54fc41a..591b0909d27f19527a0c05a9ebf0b06ffaa971db 100644 (file)
@@ -32,6 +32,6 @@
     </filter>
 
     <listeners>
-        <listener class="\DAMA\DoctrineTestBundle\PHPUnit\PHPUnitStaticDbConnectionListener" />
+        <listener class="\DAMA\DoctrineTestBundle\PHPUnit\LegacyPHPUnitListener" />
     </listeners>
 </phpunit>
index 8d7b6ee9eae786988f4e8f83c5975adb995a8f64..f3090e6503a38a6c562ab4648a4f315365b67454 100644 (file)
@@ -31,7 +31,7 @@ class WallabagAnnotationController extends FOSRestController
         $total = count($annotationRows);
         $annotations = ['total' => $total, 'rows' => $annotationRows];
 
-        $json = $this->get('serializer')->serialize($annotations, 'json');
+        $json = $this->get('jms_serializer')->serialize($annotations, 'json');
 
         return (new JsonResponse())->setJson($json);
     }
@@ -64,7 +64,7 @@ class WallabagAnnotationController extends FOSRestController
             $em->persist($annotation);
             $em->flush();
 
-            $json = $this->get('serializer')->serialize($annotation, 'json');
+            $json = $this->get('jms_serializer')->serialize($annotation, 'json');
 
             return JsonResponse::fromJsonString($json);
         }
@@ -99,7 +99,7 @@ class WallabagAnnotationController extends FOSRestController
             $em->persist($annotation);
             $em->flush();
 
-            $json = $this->get('serializer')->serialize($annotation, 'json');
+            $json = $this->get('jms_serializer')->serialize($annotation, 'json');
 
             return JsonResponse::fromJsonString($json);
         }
@@ -124,7 +124,7 @@ class WallabagAnnotationController extends FOSRestController
         $em->remove($annotation);
         $em->flush();
 
-        $json = $this->get('serializer')->serialize($annotation, 'json');
+        $json = $this->get('jms_serializer')->serialize($annotation, 'json');
 
         return (new JsonResponse())->setJson($json);
     }
index 6db977310666e159fec81ef51558e572cacc3fcf..86e723351c696db1bcc09788710499cf2bafb704 100644 (file)
@@ -752,7 +752,7 @@ class EntryRestController extends WallabagRestController
         $context = new SerializationContext();
         $context->setSerializeNull(true);
 
-        $json = $this->get('serializer')->serialize($data, 'json', $context);
+        $json = $this->get('jms_serializer')->serialize($data, 'json', $context);
 
         return (new JsonResponse())->setJson($json);
     }
index efa4e8cfc1ea5b072121078c8532a970e54485e0..9d333fe4ee4f3792f1a71ea361acfbfc06e1caaf 100644 (file)
@@ -25,7 +25,7 @@ class TagRestController extends WallabagRestController
             ->getRepository('WallabagCoreBundle:Tag')
             ->findAllTags($this->getUser()->getId());
 
-        $json = $this->get('serializer')->serialize($tags, 'json');
+        $json = $this->get('jms_serializer')->serialize($tags, 'json');
 
         return (new JsonResponse())->setJson($json);
     }
@@ -58,7 +58,7 @@ class TagRestController extends WallabagRestController
 
         $this->cleanOrphanTag($tag);
 
-        $json = $this->get('serializer')->serialize($tag, 'json');
+        $json = $this->get('jms_serializer')->serialize($tag, 'json');
 
         return (new JsonResponse())->setJson($json);
     }
@@ -100,7 +100,7 @@ class TagRestController extends WallabagRestController
 
         $this->cleanOrphanTag($tags);
 
-        $json = $this->get('serializer')->serialize($tags, 'json');
+        $json = $this->get('jms_serializer')->serialize($tags, 'json');
 
         return (new JsonResponse())->setJson($json);
     }
@@ -126,7 +126,7 @@ class TagRestController extends WallabagRestController
 
         $this->cleanOrphanTag($tag);
 
-        $json = $this->get('serializer')->serialize($tag, 'json');
+        $json = $this->get('jms_serializer')->serialize($tag, 'json');
 
         return (new JsonResponse())->setJson($json);
     }
@@ -145,7 +145,7 @@ class TagRestController extends WallabagRestController
         $em = $this->getDoctrine()->getManager();
 
         foreach ($tags as $tag) {
-            if (count($tag->getEntries()) === 0) {
+            if (0 === count($tag->getEntries())) {
                 $em->remove($tag);
             }
         }
index 6f47cff0dd85a8ddb759ef906c27f146ceffc01a..a1378fc54e35e522259a71ee1d190d66cc6a175f 100644 (file)
@@ -46,7 +46,7 @@ class UserRestController extends WallabagRestController
     public function putUserAction(Request $request)
     {
         if (!$this->getParameter('fosuser_registration') || !$this->get('craue_config')->get('api_user_registration')) {
-            $json = $this->get('serializer')->serialize(['error' => "Server doesn't allow registrations"], 'json');
+            $json = $this->get('jms_serializer')->serialize(['error' => "Server doesn't allow registrations"], 'json');
 
             return (new JsonResponse())
                 ->setJson($json)
@@ -92,7 +92,7 @@ class UserRestController extends WallabagRestController
                 $errors['password'] = $this->translateErrors($data['plainPassword']['children']['first']['errors']);
             }
 
-            $json = $this->get('serializer')->serialize(['error' => $errors], 'json');
+            $json = $this->get('jms_serializer')->serialize(['error' => $errors], 'json');
 
             return (new JsonResponse())
                 ->setJson($json)
@@ -127,7 +127,7 @@ class UserRestController extends WallabagRestController
      */
     private function sendUser(User $user, $group = 'user_api', $status = JsonResponse::HTTP_OK)
     {
-        $json = $this->get('serializer')->serialize(
+        $json = $this->get('jms_serializer')->serialize(
             $user,
             'json',
             SerializationContext::create()->setGroups([$group])
index 71da2a645ebd757309168277cdf8476565fcae67..7d8cfbba2392ada1e07919e915d8568f034bee54 100644 (file)
@@ -19,7 +19,7 @@ class WallabagRestController extends FOSRestController
     public function getVersionAction()
     {
         $version = $this->container->getParameter('wallabag_core.version');
-        $json = $this->get('serializer')->serialize($version, 'json');
+        $json = $this->get('jms_serializer')->serialize($version, 'json');
 
         return (new JsonResponse())->setJson($json);
     }
index 20660d18742d674b5f0db6693abaa52ff8c3c995..68e515da2c5686a95ab0ef7e5a182816c8943ed9 100644 (file)
@@ -52,7 +52,7 @@ class ListUserCommand extends ContainerAwareCommand
                 '%s/%s%s user(s) displayed.',
                 count($users),
                 $nbUsers,
-                $input->getArgument('search') === null ? '' : ' (filtered)'
+                null === $input->getArgument('search') ? '' : ' (filtered)'
             )
         );
 
index 2dca32c40a469a47cc6a18e6f5c692e5a80709bb..a0184267e8fd632af356e068e956f73dfaabd04a 100644 (file)
@@ -56,7 +56,7 @@ class ShowUserCommand extends ContainerAwareCommand
             sprintf('Email: %s', $user->getEmail()),
             sprintf('Display name: %s', $user->getName()),
             sprintf('Creation date: %s', $user->getCreatedAt()->format('Y-m-d H:i:s')),
-            sprintf('Last login: %s', $user->getLastLogin() !== null ? $user->getLastLogin()->format('Y-m-d H:i:s') : 'never'),
+            sprintf('Last login: %s', null !== $user->getLastLogin() ? $user->getLastLogin()->format('Y-m-d H:i:s') : 'never'),
             sprintf('2FA activated: %s', $user->isTwoFactorAuthentication() ? 'yes' : 'no'),
         ]);
     }
index 7e39992d5017ef969f02adda18861a935e502a0b..a89bb7805b6bc98c9129620eaaa8ff4016c65efb 100644 (file)
@@ -348,7 +348,7 @@ class ConfigController extends Controller
         $em = $this->getDoctrine()->getManager();
 
         foreach ($tags as $tag) {
-            if (count($tag->getEntries()) === 0) {
+            if (0 === count($tag->getEntries())) {
                 $em->remove($tag);
             }
         }
index b0b74c381641c97425f6dca473f7ddd36bde89ea..840dc254420794f5a2147329fd6cc9209a8bd06d 100644 (file)
@@ -195,7 +195,7 @@ class EntryController extends Controller
     public function showUnreadAction(Request $request, $page)
     {
         // load the quickstart if no entry in database
-        if ((int) $page === 1 && $this->get('wallabag_core.entry_repository')->countAllEntriesByUser($this->getUser()->getId()) === 0) {
+        if (1 === (int) $page && 0 === $this->get('wallabag_core.entry_repository')->countAllEntriesByUser($this->getUser()->getId())) {
             return $this->redirect($this->generateUrl('quickstart'));
         }
 
index 35a2204606005e21a02e66bdc4a8a5d311555770..7ca89239430dc7b2ec3da1d18fd1b88779ee944e 100644 (file)
@@ -59,7 +59,7 @@ class ExportController extends Controller
         $methodBuilder = 'getBuilderFor' . $method . 'ByUser';
         $repository = $this->get('wallabag_core.entry_repository');
 
-        if ($category === 'tag_entries') {
+        if ('tag_entries' === $category) {
             $tag = $this->get('wallabag_core.tag_repository')->findOneBySlug($request->query->get('tag'));
 
             $entries = $repository->findAllByTagId(
index be2dff98b3b62fcb69849f505fba3be6e7659929..616c37f2c63e23fdb9a407aec3f294bd67d57207 100644 (file)
@@ -65,7 +65,7 @@ class TagController extends Controller
         $em->flush();
 
         // remove orphan tag in case no entries are associated to it
-        if (count($tag->getEntries()) === 0) {
+        if (0 === count($tag->getEntries())) {
             $em->remove($tag);
             $em->flush();
         }
index 35902654ff9b2ab28e556718c4ee7f5feab332fb..fb8f225fc5fb95e72e76a388694f16b1b29e3941 100644 (file)
@@ -42,7 +42,7 @@ class TablePrefixSubscriber implements EventSubscriber
         $classMetadata->setPrimaryTable(['name' => $this->prefix . $classMetadata->getTableName()]);
 
         foreach ($classMetadata->getAssociationMappings() as $fieldName => $mapping) {
-            if ($mapping['type'] === ClassMetadataInfo::MANY_TO_MANY && isset($classMetadata->associationMappings[$fieldName]['joinTable']['name'])) {
+            if (ClassMetadataInfo::MANY_TO_MANY === $mapping['type'] && isset($classMetadata->associationMappings[$fieldName]['joinTable']['name'])) {
                 $mappedTableName = $classMetadata->associationMappings[$fieldName]['joinTable']['name'];
                 $classMetadata->associationMappings[$fieldName]['joinTable']['name'] = $this->prefix . $mappedTableName;
             }
index cb4bee83069562aa3caca4bced262dab32408dcf..57dbc95ed9bc83f5b51a67f4da4841678ec493bb 100644 (file)
@@ -48,7 +48,7 @@ class StringToListTransformer implements DataTransformerInterface
      */
     public function reverseTransform($string)
     {
-        if ($string === null) {
+        if (null === $string) {
             return;
         }
 
index da19fe3124a2d555ff0b8adc4ccf16923623a851..2c85da6259d0141a5b0e06fe5bd6c441e77efaa4 100644 (file)
@@ -58,7 +58,7 @@ class GrabySiteConfigBuilder implements SiteConfigBuilder
     {
         // required by credentials below
         $host = strtolower($host);
-        if (substr($host, 0, 4) === 'www.') {
+        if ('www.' === substr($host, 0, 4)) {
             $host = substr($host, 4);
         }
 
@@ -113,7 +113,7 @@ class GrabySiteConfigBuilder implements SiteConfigBuilder
 
         $extraFields = [];
         foreach ($extraFieldsStrings as $extraField) {
-            if (strpos($extraField, '=') === false) {
+            if (false === strpos($extraField, '=')) {
                 continue;
             }
 
index 1ac7ad83c8ab753231ea72ec5c05db1205ae9aaf..854acb6ae3c540d433d7863517b597db566d53ac 100644 (file)
@@ -125,7 +125,7 @@ class ContentProxy
         $date = $value;
 
         // is it a timestamp?
-        if (filter_var($date, FILTER_VALIDATE_INT) !== false) {
+        if (false !== filter_var($date, FILTER_VALIDATE_INT)) {
             $date = '@' . $date;
         }
 
index e6bb03b12d4a5fd3b9ba2ccc114f114a71111d47..e161016194408d37ebf1f1970052a55634562de9 100644 (file)
@@ -16,7 +16,7 @@ class Matches
 {
     public function __invoke($subject, $pattern)
     {
-        if ($pattern[0] === "'") {
+        if ("'" === $pattern[0]) {
             $pattern = sprintf("'%%%s%%'", substr($pattern, 1, -1));
         }
 
index b7f9da57f532f85d3e4656c018f00c129d1f3a9c..8e50f8d67cc98aea901505f531fd7bdcb550490f 100644 (file)
@@ -16,7 +16,7 @@ class NotMatches
 {
     public function __invoke($subject, $pattern)
     {
-        if ($pattern[0] === "'") {
+        if ("'" === $pattern[0]) {
             $pattern = sprintf("'%%%s%%'", substr($pattern, 1, -1));
         }
 
index 987ed2a50b26127adf95d842d681d6a199bd9643..bc0c3f8f76bed331d0125a1816d8323dd68caf34 100644 (file)
@@ -16,6 +16,6 @@ class Matches
 {
     public function __invoke($subject, $pattern)
     {
-        return stripos($subject, $pattern) !== false;
+        return false !== stripos($subject, $pattern);
     }
 }
index 68b2676fd8199c3d6cdfd44265956643dfb11504..bd4d887a601a475e03704548a11675cc656076cc 100644 (file)
@@ -16,6 +16,6 @@ class NotMatches
 {
     public function __invoke($subject, $pattern)
     {
-        return stripos($subject, $pattern) === false;
+        return false === stripos($subject, $pattern);
     }
 }
index cb46db09b5578a8cdc68b4aa7b9c75bca799cc22..58a234f46bd357dedf7abd8c14b9cc381b33df37 100644 (file)
@@ -165,7 +165,7 @@ abstract class AbstractImport implements ImportInterface
             $entryToBeFlushed[] = $entry;
 
             // flush every 20 entries
-            if (($i % 20) === 0) {
+            if (0 === ($i % 20)) {
                 $this->em->flush();
 
                 foreach ($entryToBeFlushed as $entry) {
index 780773246e6a3d8343646eab5d0da0ba20d44d82..b5593180f7a0063a086df1c339fe0fe355401f5a 100644 (file)
@@ -171,7 +171,7 @@ abstract class BrowserImport extends AbstractImport
             $entryToBeFlushed[] = $entry;
 
             // flush every 20 entries
-            if (($i % 20) === 0) {
+            if (0 === ($i % 20)) {
                 $this->em->flush();
 
                 foreach ($entryToBeFlushed as $entry) {
index e3ba636a0c3688a75ca44ae414a5b45e7f680ed7..09183abe47cbe321ed8067de34a9f816a6fde97c 100644 (file)
@@ -45,7 +45,7 @@ class ChromeImport extends BrowserImport
             'created_at' => substr($entry['date_added'], 0, 10),
         ];
 
-        if (array_key_exists('tags', $entry) && $entry['tags'] !== '') {
+        if (array_key_exists('tags', $entry) && '' !== $entry['tags']) {
             $data['tags'] = $entry['tags'];
         }
 
index c18e7e93e64e42679cbf66567b72b1a3a80064f4..73269fe164289a11d794a0c5bde7e31a18d2340f 100644 (file)
@@ -45,7 +45,7 @@ class FirefoxImport extends BrowserImport
             'created_at' => substr($entry['dateAdded'], 0, 10),
         ];
 
-        if (array_key_exists('tags', $entry) && $entry['tags'] !== '') {
+        if (array_key_exists('tags', $entry) && '' !== $entry['tags']) {
             $data['tags'] = $entry['tags'];
         }
 
index 7d70154a66bf63b32e3f6e5f1574b134c002b628..7ab69e7a34ab5cffa9dca765060ff0b62c5f0229 100644 (file)
@@ -63,7 +63,7 @@ class InstapaperImport extends AbstractImport
 
         $entries = [];
         $handle = fopen($this->filepath, 'r');
-        while (($data = fgetcsv($handle, 10240)) !== false) {
+        while (false !== ($data = fgetcsv($handle, 10240))) {
             if ('URL' === $data[0]) {
                 continue;
             }
@@ -80,8 +80,8 @@ class InstapaperImport extends AbstractImport
                 'url' => $data[0],
                 'title' => $data[1],
                 'status' => $data[3],
-                'is_archived' => $data[3] === 'Archive' || $data[3] === 'Starred',
-                'is_starred' => $data[3] === 'Starred',
+                'is_archived' => 'Archive' === $data[3] || 'Starred' === $data[3],
+                'is_starred' => 'Starred' === $data[3],
                 'html' => false,
                 'tags' => $tags,
             ];
index 7d38826b2ac7e935ab47450119fa9fdcafbcf1d0..dddb87f4e561d4e075927a2f201423bf17c3916a 100644 (file)
@@ -149,7 +149,7 @@ class PocketImport extends AbstractImport
         //  - first call get 5k offset 0
         //  - second call get 5k offset 5k
         //  - and so on
-        if (count($entries['list']) === self::NB_ELEMENTS) {
+        if (self::NB_ELEMENTS === count($entries['list'])) {
             ++$run;
 
             return $this->import(self::NB_ELEMENTS * $run);
@@ -175,7 +175,7 @@ class PocketImport extends AbstractImport
      */
     public function parseEntry(array $importedEntry)
     {
-        $url = isset($importedEntry['resolved_url']) && $importedEntry['resolved_url'] !== '' ? $importedEntry['resolved_url'] : $importedEntry['given_url'];
+        $url = isset($importedEntry['resolved_url']) && '' !== $importedEntry['resolved_url'] ? $importedEntry['resolved_url'] : $importedEntry['given_url'];
 
         $existingEntry = $this->em
             ->getRepository('WallabagCoreBundle:Entry')
@@ -194,15 +194,15 @@ class PocketImport extends AbstractImport
         $this->fetchContent($entry, $url);
 
         // 0, 1, 2 - 1 if the item is archived - 2 if the item should be deleted
-        $entry->setArchived($importedEntry['status'] === 1 || $this->markAsRead);
+        $entry->setArchived(1 === $importedEntry['status'] || $this->markAsRead);
 
         // 0 or 1 - 1 If the item is starred
-        $entry->setStarred($importedEntry['favorite'] === 1);
+        $entry->setStarred(1 === $importedEntry['favorite']);
 
         $title = 'Untitled';
-        if (isset($importedEntry['resolved_title']) && $importedEntry['resolved_title'] !== '') {
+        if (isset($importedEntry['resolved_title']) && '' !== $importedEntry['resolved_title']) {
             $title = $importedEntry['resolved_title'];
-        } elseif (isset($importedEntry['given_title']) && $importedEntry['given_title'] !== '') {
+        } elseif (isset($importedEntry['given_title']) && '' !== $importedEntry['given_title']) {
             $title = $importedEntry['given_title'];
         }
 
index d585d44d3d13e26414dbcb1513f48f623668f287..a35c411e45110024a854d5c9c180e4d078eb87bb 100644 (file)
@@ -61,7 +61,7 @@ class WallabagV1Import extends WallabagImport
             $data['html'] = $this->fetchingErrorMessage;
         }
 
-        if (array_key_exists('tags', $entry) && $entry['tags'] !== '') {
+        if (array_key_exists('tags', $entry) && '' !== $entry['tags']) {
             $data['tags'] = $entry['tags'];
         }
 
index 33bfa71e67d5c2e2f8a4abc03913a40e3b677fd6..ca275b32764aacc445a5487513405d4aa135a582 100644 (file)
@@ -1268,7 +1268,7 @@ class EntryControllerTest extends WallabagCoreTestCase
                 'ru',
             ],
             'fr-FR' => [
-                'http://www.zataz.com/90-des-dossiers-medicaux-des-coreens-du-sud-vendus-a-des-entreprises-privees/',
+                'https://www.zataz.com/90-des-dossiers-medicaux-des-coreens-du-sud-vendus-a-des-entreprises-privees/',
                 'fr_FR',
             ],
             'de' => [
@@ -1300,7 +1300,7 @@ class EntryControllerTest extends WallabagCoreTestCase
                 null,
             ],
             'es-ES' => [
-                'http://www.muylinux.com/2015/04/17/odf-reino-unido-microsoft-google/',
+                'https://www.muylinux.com/2015/04/17/odf-reino-unido-microsoft-google/',
                 'es_ES',
             ],
         ];
@@ -1343,7 +1343,7 @@ class EntryControllerTest extends WallabagCoreTestCase
      */
     public function testRestrictedArticle()
     {
-        $url = 'http://www.monde-diplomatique.fr/2017/05/BONNET/57475';
+        $url = 'https://www.monde-diplomatique.fr/2017/05/BONNET/57475';
         $this->logInAs('admin');
         $client = $this->getClient();
         $em = $client->getContainer()->get('doctrine.orm.entity_manager');
index 3873ccf4af9ba58283551594cb0f1327305b48be..ddb7a65a86bf50cce9789d493e030550b4483dd0 100644 (file)
@@ -114,10 +114,11 @@ class ChromeControllerTest extends WallabagCoreTestCase
             ->get('doctrine.orm.entity_manager')
             ->getRepository('WallabagCoreBundle:Entry')
             ->findByUrlAndUserId(
-                'http://www.usinenouvelle.com/article/la-multiplication-des-chefs-de-projet-est-une-catastrophe-manageriale-majeure-affirme-le-sociologue-francois-dupuy.N307730',
+                'https://www.usinenouvelle.com/article/la-multiplication-des-chefs-de-projet-est-une-catastrophe-manageriale-majeure-affirme-le-sociologue-francois-dupuy.N307730',
                 $this->getLoggedInUserId()
             );
 
+        $this->assertInstanceOf('Wallabag\CoreBundle\Entity\Entry', $content);
         $this->assertNotEmpty($content->getPreviewPicture(), 'Preview picture for http://www.usinenouvelle.com is ok');
         $this->assertNotEmpty($content->getLanguage(), 'Language for http://www.usinenouvelle.com is ok');
         $this->assertSame(1, count($content->getTags()));
index 5e1260b15bbc7c8d6c2c19262b0693c45677acd5..933fffa21f9430d6d8362538ef6fd2b38154f945 100644 (file)
@@ -118,6 +118,7 @@ class FirefoxControllerTest extends WallabagCoreTestCase
                 $this->getLoggedInUserId()
             );
 
+        $this->assertInstanceOf('Wallabag\CoreBundle\Entity\Entry', $content);
         $this->assertNotEmpty($content->getMimetype(), 'Mimetype for http://lexpansion.lexpress.fr is ok');
         $this->assertNotEmpty($content->getPreviewPicture(), 'Preview picture for http://lexpansion.lexpress.fr is ok');
         $this->assertNotEmpty($content->getLanguage(), 'Language for http://lexpansion.lexpress.fr is ok');
@@ -131,6 +132,7 @@ class FirefoxControllerTest extends WallabagCoreTestCase
                 $this->getLoggedInUserId()
             );
 
+        $this->assertInstanceOf('Wallabag\CoreBundle\Entity\Entry', $content);
         $this->assertNotEmpty($content->getMimetype(), 'Mimetype for https://stackoverflow.com is ok');
         $this->assertNotEmpty($content->getPreviewPicture(), 'Preview picture for https://stackoverflow.com is ok');
         $this->assertEmpty($content->getLanguage(), 'Language for https://stackoverflow.com is ok');
index 9bb597664de95e959f21dd1db5e32213cbaf1bb1..1135f32e90e8c675143b374ce5b53363a2e772ca 100644 (file)
@@ -118,6 +118,7 @@ class PinboardControllerTest extends WallabagCoreTestCase
         $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(['_text']));
         $this->assertContains('flashes.import.notice.summary', $body[0]);
 
+        $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');
@@ -161,6 +162,7 @@ class PinboardControllerTest extends WallabagCoreTestCase
                 $this->getLoggedInUserId()
             );
 
+        $this->assertInstanceOf('Wallabag\CoreBundle\Entity\Entry', $content1);
         $this->assertTrue($content1->isArchived());
 
         $content2 = $client->getContainer()
@@ -171,6 +173,7 @@ class PinboardControllerTest extends WallabagCoreTestCase
                 $this->getLoggedInUserId()
             );
 
+        $this->assertInstanceOf('Wallabag\CoreBundle\Entity\Entry', $content2);
         $this->assertTrue($content2->isArchived());
 
         $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(['_text']));
index e19151505776c644600a23393ca431e5b3c1cab0..fcb9dfab142c8632d6fa14078790c0270f112f21 100644 (file)
@@ -111,13 +111,14 @@ class ReadabilityControllerTest extends WallabagCoreTestCase
             ->get('doctrine.orm.entity_manager')
             ->getRepository('WallabagCoreBundle:Entry')
             ->findByUrlAndUserId(
-                'http://www.zataz.com/90-des-dossiers-medicaux-des-coreens-du-sud-vendus-a-des-entreprises-privees/',
+                'https://www.zataz.com/90-des-dossiers-medicaux-des-coreens-du-sud-vendus-a-des-entreprises-privees/',
                 $this->getLoggedInUserId()
             );
 
         $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(['_text']));
         $this->assertContains('flashes.import.notice.summary', $body[0]);
 
+        $this->assertInstanceOf('Wallabag\CoreBundle\Entity\Entry', $content);
         $this->assertNotEmpty($content->getMimetype(), 'Mimetype for http://www.zataz.com is ok');
         $this->assertNotEmpty($content->getPreviewPicture(), 'Preview picture for http://www.zataz.com is ok');
         $this->assertNotEmpty($content->getLanguage(), 'Language for http://www.zataz.com is ok');
@@ -159,16 +160,18 @@ class ReadabilityControllerTest extends WallabagCoreTestCase
                 $this->getLoggedInUserId()
             );
 
+        $this->assertInstanceOf('Wallabag\CoreBundle\Entity\Entry', $content1);
         $this->assertTrue($content1->isArchived());
 
         $content2 = $client->getContainer()
             ->get('doctrine.orm.entity_manager')
             ->getRepository('WallabagCoreBundle:Entry')
             ->findByUrlAndUserId(
-                'https://facebook.github.io/graphql/',
+                'https://facebook.github.io/graphql/October2016/',
                 $this->getLoggedInUserId()
             );
 
+        $this->assertInstanceOf('Wallabag\CoreBundle\Entity\Entry', $content2);
         $this->assertTrue($content2->isArchived());
 
         $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(['_text']));
index 4bc982e0ae977c774b8ab259e7b2fa81f1c76e57..e0e309b0158fca4a2ed70582e42c11d0d009b5ae 100644 (file)
@@ -119,6 +119,7 @@ class WallabagV1ControllerTest extends WallabagCoreTestCase
         $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(['_text']));
         $this->assertContains('flashes.import.notice.summary', $body[0]);
 
+        $this->assertInstanceOf('Wallabag\CoreBundle\Entity\Entry', $content);
         $this->assertEmpty($content->getMimetype(), 'Mimetype for http://www.framablog.org is empty');
         $this->assertEmpty($content->getPreviewPicture(), 'Preview picture for http://www.framablog.org is empty');
         $this->assertEmpty($content->getLanguage(), 'Language for http://www.framablog.org is empty');
@@ -160,6 +161,7 @@ class WallabagV1ControllerTest extends WallabagCoreTestCase
                 $this->getLoggedInUserId()
             );
 
+        $this->assertInstanceOf('Wallabag\CoreBundle\Entity\Entry', $content1);
         $this->assertTrue($content1->isArchived());
 
         $content2 = $client->getContainer()
@@ -170,6 +172,7 @@ class WallabagV1ControllerTest extends WallabagCoreTestCase
                 $this->getLoggedInUserId()
             );
 
+        $this->assertInstanceOf('Wallabag\CoreBundle\Entity\Entry', $content2);
         $this->assertTrue($content2->isArchived());
 
         $this->assertGreaterThan(1, $body = $crawler->filter('body')->extract(['_text']));
index a94adcaf45b2bb081345813e1d95021885ddac55..e52b9c85f563d2f7e31d9564d7cf7812963d3aea 100644 (file)
@@ -119,6 +119,8 @@ class WallabagV2ControllerTest extends WallabagCoreTestCase
                 $this->getLoggedInUserId()
             );
 
+        $this->assertInstanceOf('Wallabag\CoreBundle\Entity\Entry', $content);
+
         // empty because it wasn't re-imported
         $this->assertEmpty($content->getMimetype(), 'Mimetype for http://www.liberation.fr is empty');
         $this->assertEmpty($content->getPreviewPicture(), 'Preview picture for http://www.liberation.fr is empty');
@@ -136,6 +138,7 @@ class WallabagV2ControllerTest extends WallabagCoreTestCase
                 $this->getLoggedInUserId()
             );
 
+        $this->assertInstanceOf('Wallabag\CoreBundle\Entity\Entry', $content);
         $this->assertNotEmpty($content->getMimetype(), 'Mimetype for https://www.mediapart.fr is ok');
         $this->assertNotEmpty($content->getPreviewPicture(), 'Preview picture for https://www.mediapart.fr is ok');
         $this->assertNotEmpty($content->getLanguage(), 'Language for https://www.mediapart.fr is ok');
index c60767dc8f4654791dae0e420086b62c211ecebb..7dbd986804ec7dcb69ef2d7fff28f9d52aa62481 100644 (file)
@@ -14,7 +14,7 @@
             "article__excerpt": "The GraphQL Type system describes the capabilities of a GraphQL server and is used to determine if a query is valid. The type system also describes the input types of query variables to determine if&hellip;",
             "favorite": false,
             "date_archived": "2016-07-19T06:48:31",
-            "article__url": "https://facebook.github.io/graphql/",
+            "article__url": "https://facebook.github.io/graphql/October2016/",
             "date_added": "2016-06-24T17:50:16",
             "date_favorited": null,
             "article__title": "GraphQL",
index b9fd570df9887f9bc23729e2806a9765e467c09a..ba7be5bfa2dcaad5bd719c7f82748933c3a5b80c 100644 (file)
@@ -22,7 +22,7 @@
             "date_added": "2016-09-08T11:55:58+0200",
             "favorite": 0,
             "article__title": "90% des dossiers médicaux des Coréens du sud vendus à des entreprises privées - ZATAZ",
-            "article__url": "http://www.zataz.com/90-des-dossiers-medicaux-des-coreens-du-sud-vendus-a-des-entreprises-privees/"
+            "article__url": "https://www.zataz.com/90-des-dossiers-medicaux-des-coreens-du-sud-vendus-a-des-entreprises-privees/"
         }
    ],
     "recommendations": []
index 0e30d95b826c7c3299d0e9110f5bb000442f8031..63c44cf9eb5eddbd1392eff48cee203037818368 100644 (file)
         "is_starred": 0,
         "id": 608,
         "title": "90% des dossiers médicaux des Coréens du sud vendus à des entreprises privées - ZATAZ",
-        "url": "http://www.zataz.com/90-des-dossiers-medicaux-des-coreens-du-sud-vendus-a-des-entreprises-privees/",
+        "url": "https://www.zataz.com/90-des-dossiers-medicaux-des-coreens-du-sud-vendus-a-des-entreprises-privees/",
         "content": "<p class=\"c2\"><strong>La Corée du Sud vibre en ce moment à la lecture d’une information qui pend aux nez des Français. Une entreprise privée a récupéré 90% des dossiers médicaux des habitants du pays du matin calme au soleil levant pour les revendre.</strong></p>\n<p>Une entreprise spécialisée dans le développement de logiciels en charge de gérer les frais médicaux, programmes utilisés dans les hôpitaux et la Korean Pharmaceutical Information Center, a offert il y a quelques mois ses logiciels de gestion d’officines. Plus de la moitié des pharmacies du pays ont utilisé l’outil. Sauf que <a href=\"http://www.koreaherald.com/view.php?ud=20150726000368\" target=\"_blank\">les données sauvegardées ont été revendues</a> à IMS Health Korea. Cette entreprise, dont le siège social est basé aux USA, a ensuite commercialisé, illégalement, les données à d’autres sociétés en Corée.</p>\n<p>La loi 2011 sur le droit de la protection des renseignements personnels interdit l’utilisation des renseignements personnels et des renseignements médicaux sans le consentement des patients. Le Pharmaceutical Information Center est actuellement jugé pour cette collecte illégale, qui date de 2013, et la distribution des informations médicales de 90% des Coréens.</p>\n<blockquote readability=\"4\">\n<p><strong>Un cas qui pourrait toucher la France ?</strong></p>\n</blockquote>\n<p class=\"c2\">Depuis février 2015, l’ouverture des données de santé dans l’hexagone a été décidée par le législateur. L’assurance-maladie a annoncé qu’elle proposait, en accès libre, sa base de données « <em>Damir</em> » sur le site data.gouv.fr. Un big data de la santé qui regroupe les informations issues de 1,2 milliard de feuilles de soins, de 500 millions d’actes médicaux et de 11 millions d’hospitalisations. Ce big data ne propose pas les identités (pas de nom, de numéro de sécurité sociale, …), uniquement des millions de chiffres et de  données de santé. Cette faramineuse base de données, qui double de volume chaque année, permet d’extraire, par exemple, des statistiques liées à la santé dans les régions. <a href=\"http://www.assemblee-nationale.fr/14/amendements/2302/CION-SOC/AS1387.pdf\" target=\"_blank\">L’article 47 de loi</a> permet aux acteurs privés d’accéder aux données de la CNAMTS. C’est l’Institut national des données de santé (<a href=\"http://www.institut-des-donnees-de-sante.fr/\" target=\"_blank\">INDS</a>) qui a en charge de répondre aux demandes du « privé » pour accéder aux données plus ciblées (et payantes).</p>\n",
         "annotations": [],
         "mimetype": "text/html",
         "language": "fr-FR",
         "reading_time": 1,
         "domain_name": "www.zataz.com",
-        "preview_picture": "http://www.zataz.com/wp-content/uploads/HD-Virus.png",
+        "preview_picture": "https://www.zataz.com/wp-content/uploads/HD-Virus.png",
         "tags": []
     },
     {