attogram/weatherbit-api-wrapper

View on GitHub

Showing 13 of 13 total issues

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

function printForm()
{
    global $data;

    print '<html><head><title>' . $data['pageTitle'] . '</title></head><body>
Severity: Minor
Found in public/example.php - About 1 hr to fix

    A file should declare new symbols (classes, functions, constants, etc.) and cause no other side effects, or it should execute logic with side effects, but should not do both. The first symbol is defined on line 93 and the first side effect is on line 11.
    Open

    <?php
    Severity: Minor
    Found in public/example.php by phpcodesniffer

    Remove error control operator '@' on line 405.
    Open

        private function get()
        {
            if (empty($this->url)) {
                throw new WeatherbitException('Missing URL for API Call');
            }
    Severity: Minor
    Found in src/Weatherbit.php by phpmd

    ErrorControlOperator

    Error suppression should be avoided if possible as it doesn't just suppress the error, that you are trying to stop, but will also suppress errors that you didn't predict would ever occur. Consider changing error_reporting() level and/or setting up your own error handler.

    Example

    function foo($filePath) {
        $file = @fopen($filPath); // hides exceptions
        $key = @$array[$notExistingKey]; // assigns null to $key
    }

    Source http://phpmd.org/rules/cleancode.html#errorcontroloperator

    The function printResults() calls the typical debug function print_r() which is mostly only used during development.
    Open

            print '<pre style="background-color:lightgreen;padding:10px;">RESPONSE: ' . print_r($response, true) . '</pre>';
    Severity: Minor
    Found in public/example.php by phpmd

    DevelopmentCodeFragment

    Since: 2.3.0

    Functions like vardump(), printr() etc. are normally only used during development and therefore such calls in production code are a good indicator that they were just forgotten.

    Example

    class SuspectCode {
    
        public function doSomething(array $items)
        {
            foreach ($items as $i => $item) {
                // …
    
                if ('qafoo' == $item) var_dump($i);
    
                // …
            }
        }
    }

    Source https://phpmd.org/rules/design.html#developmentcodefragment

    printForm accesses the super-global variable $_SERVER.
    Open

    function printForm()
    {
        global $data;
    
        print '<html><head><title>' . $data['pageTitle'] . '</title></head><body>
    Severity: Minor
    Found in public/example.php by phpmd

    Superglobals

    Since: 0.2

    Accessing a super-global variable directly is considered a bad practice. These variables should be encapsulated in objects that are provided by a framework, for instance.

    Example

    class Foo {
        public function bar() {
            $name = $_POST['foo'];
        }
    }

    Source

    Define a constant instead of duplicating this literal "longitude" 3 times.
    Open

    $data['longitude'] = isset($_GET['long'])     ? $_GET['long']         : '';
    Severity: Critical
    Found in public/example.php by sonar-php

    Duplicated string literals make the process of refactoring error-prone, since you must be sure to update all occurrences.

    On the other hand, constants can be referenced from many places, but only need to be updated in a single place.

    Noncompliant Code Example

    With the default threshold of 3:

    function run() {
      prepare('action1');                              // Non-Compliant - 'action1' is duplicated 3 times
      execute('action1');
      release('action1');
    }
    

    Compliant Solution

    ACTION_1 = 'action1';
    
    function run() {
      prepare(ACTION_1);
      execute(ACTION_1);
      release(ACTION_1);
    }
    

    Exceptions

    To prevent generating some false-positives, literals having less than 5 characters are excluded.

    Define a constant instead of duplicating this literal "usage" 3 times.
    Open

    $data['call']      = isset($_GET['call'])     ? $_GET['call']         : 'usage';
    Severity: Critical
    Found in public/example.php by sonar-php

    Duplicated string literals make the process of refactoring error-prone, since you must be sure to update all occurrences.

    On the other hand, constants can be referenced from many places, but only need to be updated in a single place.

    Noncompliant Code Example

    With the default threshold of 3:

    function run() {
      prepare('action1');                              // Non-Compliant - 'action1' is duplicated 3 times
      execute('action1');
      release('action1');
    }
    

    Compliant Solution

    ACTION_1 = 'action1';
    
    function run() {
      prepare(ACTION_1);
      execute(ACTION_1);
      release(ACTION_1);
    }
    

    Exceptions

    To prevent generating some false-positives, literals having less than 5 characters are excluded.

    Define a constant instead of duplicating this literal "units" 9 times.
    Open

    $data['units']     = isset($_GET['units'])    ? $_GET['units']        : 'M';
    Severity: Critical
    Found in public/example.php by sonar-php

    Duplicated string literals make the process of refactoring error-prone, since you must be sure to update all occurrences.

    On the other hand, constants can be referenced from many places, but only need to be updated in a single place.

    Noncompliant Code Example

    With the default threshold of 3:

    function run() {
      prepare('action1');                              // Non-Compliant - 'action1' is duplicated 3 times
      execute('action1');
      release('action1');
    }
    

    Compliant Solution

    ACTION_1 = 'action1';
    
    function run() {
      prepare(ACTION_1);
      execute(ACTION_1);
      release(ACTION_1);
    }
    

    Exceptions

    To prevent generating some false-positives, literals having less than 5 characters are excluded.

    Define a constant instead of duplicating this literal "country" 5 times.
    Open

    $data['country']   = isset($_GET['country'])  ? $_GET['country']      : '';
    Severity: Critical
    Found in public/example.php by sonar-php

    Duplicated string literals make the process of refactoring error-prone, since you must be sure to update all occurrences.

    On the other hand, constants can be referenced from many places, but only need to be updated in a single place.

    Noncompliant Code Example

    With the default threshold of 3:

    function run() {
      prepare('action1');                              // Non-Compliant - 'action1' is duplicated 3 times
      execute('action1');
      release('action1');
    }
    

    Compliant Solution

    ACTION_1 = 'action1';
    
    function run() {
      prepare(ACTION_1);
      execute(ACTION_1);
      release(ACTION_1);
    }
    

    Exceptions

    To prevent generating some false-positives, literals having less than 5 characters are excluded.

    Define a constant instead of duplicating this literal "ipAddress" 4 times.
    Open

    $data['ipAddress'] = isset($_GET['ip'])       ? $_GET['ip']           : '';
    Severity: Critical
    Found in public/example.php by sonar-php

    Duplicated string literals make the process of refactoring error-prone, since you must be sure to update all occurrences.

    On the other hand, constants can be referenced from many places, but only need to be updated in a single place.

    Noncompliant Code Example

    With the default threshold of 3:

    function run() {
      prepare('action1');                              // Non-Compliant - 'action1' is duplicated 3 times
      execute('action1');
      release('action1');
    }
    

    Compliant Solution

    ACTION_1 = 'action1';
    
    function run() {
      prepare(ACTION_1);
      execute(ACTION_1);
      release(ACTION_1);
    }
    

    Exceptions

    To prevent generating some false-positives, literals having less than 5 characters are excluded.

    Define a constant instead of duplicating this literal "latitude" 4 times.
    Open

    $data['latitude']  = isset($_GET['lat'])      ? $_GET['lat']          : '';
    Severity: Critical
    Found in public/example.php by sonar-php

    Duplicated string literals make the process of refactoring error-prone, since you must be sure to update all occurrences.

    On the other hand, constants can be referenced from many places, but only need to be updated in a single place.

    Noncompliant Code Example

    With the default threshold of 3:

    function run() {
      prepare('action1');                              // Non-Compliant - 'action1' is duplicated 3 times
      execute('action1');
      release('action1');
    }
    

    Compliant Solution

    ACTION_1 = 'action1';
    
    function run() {
      prepare(ACTION_1);
      execute(ACTION_1);
      release(ACTION_1);
    }
    

    Exceptions

    To prevent generating some false-positives, literals having less than 5 characters are excluded.

    Define a constant instead of duplicating this literal "language" 7 times.
    Open

    $data['language']  = isset($_GET['language']) ? $_GET['language']     : 'en';
    Severity: Critical
    Found in public/example.php by sonar-php

    Duplicated string literals make the process of refactoring error-prone, since you must be sure to update all occurrences.

    On the other hand, constants can be referenced from many places, but only need to be updated in a single place.

    Noncompliant Code Example

    With the default threshold of 3:

    function run() {
      prepare('action1');                              // Non-Compliant - 'action1' is duplicated 3 times
      execute('action1');
      release('action1');
    }
    

    Compliant Solution

    ACTION_1 = 'action1';
    
    function run() {
      prepare(ACTION_1);
      execute(ACTION_1);
      release(ACTION_1);
    }
    

    Exceptions

    To prevent generating some false-positives, literals having less than 5 characters are excluded.

    Define a constant instead of duplicating this literal "pageTitle" 3 times.
    Open

    $data['pageTitle'] = 'weatherbit-api-wrapper v' . Weatherbit::VERSION;
    Severity: Critical
    Found in public/example.php by sonar-php

    Duplicated string literals make the process of refactoring error-prone, since you must be sure to update all occurrences.

    On the other hand, constants can be referenced from many places, but only need to be updated in a single place.

    Noncompliant Code Example

    With the default threshold of 3:

    function run() {
      prepare('action1');                              // Non-Compliant - 'action1' is duplicated 3 times
      execute('action1');
      release('action1');
    }
    

    Compliant Solution

    ACTION_1 = 'action1';
    
    function run() {
      prepare(ACTION_1);
      execute(ACTION_1);
      release(ACTION_1);
    }
    

    Exceptions

    To prevent generating some false-positives, literals having less than 5 characters are excluded.

    Severity
    Category
    Status
    Source
    Language