gdbots/pbjx-php

View on GitHub

Showing 94 of 107 total issues

File DynamoDbEventStore.php has 619 lines of code (exceeds 250 allowed). Consider refactoring.
Open

<?php
declare(strict_types=1);

namespace Gdbots\Pbjx\EventStore\DynamoDb;

Severity: Major
Found in src/EventStore/DynamoDb/DynamoDbEventStore.php - About 1 day to fix

    Method doPipeAllEvents has 154 lines of code (exceeds 25 allowed). Consider refactoring.
    Open

        protected function doPipeAllEvents(?Microtime $since = null, ?Microtime $until = null, array $context = []): \Generator
        {
            $tableName = $this->getTableNameForRead($context);
            $reindexing = filter_var($context['reindexing'] ?? false, FILTER_VALIDATE_BOOLEAN);
            $skipErrors = filter_var($context['skip_errors'] ?? false, FILTER_VALIDATE_BOOLEAN);
    Severity: Major
    Found in src/EventStore/DynamoDb/DynamoDbEventStore.php - About 6 hrs to fix

      Method getStreamSlice has 95 lines of code (exceeds 25 allowed). Consider refactoring.
      Open

          final public function getStreamSlice(StreamId $streamId, ?Microtime $since = null, int $count = 25, bool $forward = true, bool $consistent = false, array $context = []): StreamSlice
          {
              $context['stream_id'] = $streamId;
              $context = $this->enrichContext(__FUNCTION__, $context);
              $tableName = $this->getTableNameForRead($context);
      Severity: Major
      Found in src/EventStore/DynamoDb/DynamoDbEventStore.php - About 3 hrs to fix

        File ElasticaEventSearch.php has 318 lines of code (exceeds 250 allowed). Consider refactoring.
        Open

        <?php
        declare(strict_types=1);
        
        namespace Gdbots\Pbjx\EventSearch\Elastica;
        
        
        Severity: Minor
        Found in src/EventSearch/Elastica/ElasticaEventSearch.php - About 3 hrs to fix

          Function cancelJobs has a Cognitive Complexity of 22 (exceeds 5 allowed). Consider refactoring.
          Open

              public function cancelJobs(array $jobIds, array $context = []): void
              {
                  $context = $this->enrichContext(__FUNCTION__, $context);
                  $tableName = $this->getTableName($context);
          
          
          Severity: Minor
          Found in src/Scheduler/DynamoDb/DynamoDbScheduler.php - About 3 hrs to fix

          Cognitive Complexity

          Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

          A method's cognitive complexity is based on a few simple rules:

          • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
          • Code is considered more complex for each "break in the linear flow of the code"
          • Code is considered more complex when "flow breaking structures are nested"

          Further reading

          Function doPipeAllEvents has a Cognitive Complexity of 21 (exceeds 5 allowed). Consider refactoring.
          Open

              protected function doPipeAllEvents(?Microtime $since = null, ?Microtime $until = null, array $context = []): \Generator
              {
                  $tableName = $this->getTableNameForRead($context);
                  $reindexing = filter_var($context['reindexing'] ?? false, FILTER_VALIDATE_BOOLEAN);
                  $skipErrors = filter_var($context['skip_errors'] ?? false, FILTER_VALIDATE_BOOLEAN);
          Severity: Minor
          Found in src/EventStore/DynamoDb/DynamoDbEventStore.php - About 2 hrs to fix

          Cognitive Complexity

          Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

          A method's cognitive complexity is based on a few simple rules:

          • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
          • Code is considered more complex for each "break in the linear flow of the code"
          • Code is considered more complex when "flow breaking structures are nested"

          Further reading

          Function getStreamSlice has a Cognitive Complexity of 20 (exceeds 5 allowed). Consider refactoring.
          Open

              final public function getStreamSlice(StreamId $streamId, ?Microtime $since = null, int $count = 25, bool $forward = true, bool $consistent = false, array $context = []): StreamSlice
              {
                  $context['stream_id'] = $streamId;
                  $context = $this->enrichContext(__FUNCTION__, $context);
                  $tableName = $this->getTableNameForRead($context);
          Severity: Minor
          Found in src/EventStore/DynamoDb/DynamoDbEventStore.php - About 2 hrs to fix

          Cognitive Complexity

          Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

          A method's cognitive complexity is based on a few simple rules:

          • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
          • Code is considered more complex for each "break in the linear flow of the code"
          • Code is considered more complex when "flow breaking structures are nested"

          Further reading

          File DynamoDbScheduler.php has 280 lines of code (exceeds 250 allowed). Consider refactoring.
          Open

          <?php
          declare(strict_types=1);
          
          namespace Gdbots\Pbjx\Scheduler\DynamoDb;
          
          
          Severity: Minor
          Found in src/Scheduler/DynamoDb/DynamoDbScheduler.php - About 2 hrs to fix

            Method sendAt has 65 lines of code (exceeds 25 allowed). Consider refactoring.
            Open

                public function sendAt(Message $command, int $timestamp, ?string $jobId = null, array $context = []): string
                {
                    $context['causator'] = $command;
                    $context = $this->enrichContext(__FUNCTION__, $context);
                    $ttl = strtotime('+7 days', $timestamp);
            Severity: Major
            Found in src/Scheduler/DynamoDb/DynamoDbScheduler.php - About 2 hrs to fix

              Method startExecution has 63 lines of code (exceeds 25 allowed). Consider refactoring.
              Open

                  protected function startExecution(
                      string $stateMachineArn,
                      int $timestamp,
                      string $jobId,
                      ?string $tenantId = null
              Severity: Major
              Found in src/Scheduler/DynamoDb/DynamoDbScheduler.php - About 2 hrs to fix

                Method searchEvents has 59 lines of code (exceeds 25 allowed). Consider refactoring.
                Open

                    final public function searchEvents(Message $request, ParsedQuery $parsedQuery, Message $response, array $curies = [], array $context = []): void
                    {
                        $context = $this->enrichContext(__FUNCTION__, $context);
                        $skipValidation = filter_var($context['skip_validation'] ?? true, FILTER_VALIDATE_BOOLEAN);
                        $client = $this->getClientForRead($context);
                Severity: Major
                Found in src/EventSearch/Elastica/ElasticaEventSearch.php - About 2 hrs to fix

                  Function trigger has a Cognitive Complexity of 17 (exceeds 5 allowed). Consider refactoring.
                  Open

                      public function trigger(Message $message, string $suffix, ?PbjxEvent $event = null, bool $recursive = true, bool $throw = true): static
                      {
                          $suffix = '.' . trim($suffix, '.');
                          if ('.' === $suffix) {
                              throw new InvalidArgumentException('Trigger requires a non-empty suffix.');
                  Severity: Minor
                  Found in src/SimplePbjx.php - About 2 hrs to fix

                  Cognitive Complexity

                  Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

                  A method's cognitive complexity is based on a few simple rules:

                  • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
                  • Code is considered more complex for each "break in the linear flow of the code"
                  • Code is considered more complex when "flow breaking structures are nested"

                  Further reading

                  Method run has 55 lines of code (exceeds 25 allowed). Consider refactoring.
                  Open

                      final public function run(int $maxRuntime = 300): void
                      {
                          if ($this->isRunning) {
                              $this->logger->notice(sprintf('Consumer [%s] is already running.', $this->consumerName));
                              return;
                  Severity: Major
                  Found in src/Consumer/AbstractConsumer.php - About 2 hrs to fix

                    Method indexEvents has 54 lines of code (exceeds 25 allowed). Consider refactoring.
                    Open

                        final public function indexEvents(array $events, array $context = []): void
                        {
                            if (empty($events)) {
                                return;
                            }
                    Severity: Major
                    Found in src/EventSearch/Elastica/ElasticaEventSearch.php - About 2 hrs to fix

                      Method getEvent has 54 lines of code (exceeds 25 allowed). Consider refactoring.
                      Open

                          final public function getEvent(Identifier $eventId, array $context = []): Message
                          {
                              $context = $this->enrichContext(__FUNCTION__, $context);
                              $tableName = $this->getTableNameForRead($context);
                              $key = $this->getItemKeyByEventId($eventId, $context);
                      Severity: Major
                      Found in src/EventStore/DynamoDb/DynamoDbEventStore.php - About 2 hrs to fix

                        Method putEvents has 54 lines of code (exceeds 25 allowed). Consider refactoring.
                        Open

                            final public function putEvents(StreamId $streamId, array $events, ?string $expectedEtag = null, array $context = []): void
                            {
                                if (!count($events)) {
                                    // ignore empty events array
                                    return;
                        Severity: Major
                        Found in src/EventStore/DynamoDb/DynamoDbEventStore.php - About 2 hrs to fix

                          Method create has 47 lines of code (exceeds 25 allowed). Consider refactoring.
                          Open

                              public function create(DynamoDbClient $client, string $tableName): void
                              {
                                  try {
                                      $client->describeTable(['TableName' => $tableName]);
                                      return;
                          Severity: Minor
                          Found in src/EventStore/DynamoDb/EventStoreTable.php - About 1 hr to fix

                            Method deleteEvents has 46 lines of code (exceeds 25 allowed). Consider refactoring.
                            Open

                                final public function deleteEvents(array $eventIds, array $context = []): void
                                {
                                    if (empty($eventIds)) {
                                        return;
                                    }
                            Severity: Minor
                            Found in src/EventSearch/Elastica/ElasticaEventSearch.php - About 1 hr to fix

                              Method getItemKeyByEventId has 46 lines of code (exceeds 25 allowed). Consider refactoring.
                              Open

                                  protected function getItemKeyByEventId(Identifier $eventId, array $context = []): ?array
                                  {
                                      $tableName = $this->getTableNameForRead($context);
                                      $params = [
                                          'TableName'                 => $tableName,
                              Severity: Minor
                              Found in src/EventStore/DynamoDb/DynamoDbEventStore.php - About 1 hr to fix

                                Method updateAnalyzers has 45 lines of code (exceeds 25 allowed). Consider refactoring.
                                Open

                                    protected function updateAnalyzers(Index $index, string $name): void
                                    {
                                        $settings = $index->getSettings();
                                        $customAnalyzers = $this->getCustomAnalyzers();
                                        $missingAnalyzers = [];
                                Severity: Minor
                                Found in src/EventSearch/Elastica/IndexManager.php - About 1 hr to fix
                                  Severity
                                  Category
                                  Status
                                  Source
                                  Language