src/Shop/Product.php

Summary

Maintainability
A
1 hr
Test Coverage

Method init has 48 lines of code (exceeds 25 allowed). Consider refactoring.
Open

    function init()
    {
        parent::init();
        $this->_a['table'] = 'shop_product';
        $this->_a['verbose'] = 'Shop_Product';
Severity: Minor
Found in src/Shop/Product.php - About 1 hr to fix

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

                'taxes' => array(
    Severity: Critical
    Found in src/Shop/Product.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 "editable" 5 times.
    Open

                    'editable' => true,
    Severity: Critical
    Found in src/Shop/Product.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 "blank" 4 times.
    Open

                    'blank' => true,
    Severity: Critical
    Found in src/Shop/Product.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 "relate_name" 3 times.
    Open

                    'relate_name' => 'products',
    Severity: Critical
    Found in src/Shop/Product.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 "Varchar" 3 times.
    Open

                    'type' => 'Varchar',
    Severity: Critical
    Found in src/Shop/Product.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 "products" 3 times.
    Open

                    'relate_name' => 'products',
    Severity: Critical
    Found in src/Shop/Product.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 "is_null" 4 times.
    Open

                    'is_null' => true,
    Severity: Critical
    Found in src/Shop/Product.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 "readable" 5 times.
    Open

                    'readable' => true
    Severity: Critical
    Found in src/Shop/Product.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.

    Each class must be in a namespace of at least one level (a top-level vendor name)
    Open

    class Shop_Product extends Shop_PricedObject
    Severity: Minor
    Found in src/Shop/Product.php by phpcodesniffer

    The class Shop_Product is not named in CamelCase.
    Open

    class Shop_Product extends Shop_PricedObject
    {
    
        /**
         * @brief مدل داده‌ای را بارگذاری می‌کند.
    Severity: Minor
    Found in src/Shop/Product.php by phpmd

    CamelCaseClassName

    Since: 0.2

    It is considered best practice to use the CamelCase notation to name classes.

    Example

    class class_name {
    }

    Source

    Visibility must be declared on method "toString"
    Open

        function toString(){
    Severity: Minor
    Found in src/Shop/Product.php by phpcodesniffer

    Method name "Shop_Product::clean_off" is not in camel caps format
    Open

        function clean_off(){
    Severity: Minor
    Found in src/Shop/Product.php by phpcodesniffer

    Visibility must be declared on method "init"
    Open

        function init()
    Severity: Minor
    Found in src/Shop/Product.php by phpcodesniffer

    Visibility must be declared on method "clean_off"
    Open

        function clean_off(){
    Severity: Minor
    Found in src/Shop/Product.php by phpcodesniffer

    The closing brace for the class must go on the next line after the body
    Open

    }
    Severity: Minor
    Found in src/Shop/Product.php by phpcodesniffer

    Opening brace should be on a new line
    Open

        function toString(){
    Severity: Minor
    Found in src/Shop/Product.php by phpcodesniffer

    Opening brace should be on a new line
    Open

        function clean_off(){
    Severity: Minor
    Found in src/Shop/Product.php by phpcodesniffer

    Expected 1 space after closing parenthesis; found 0
    Open

            if(isset($this->model)){
    Severity: Minor
    Found in src/Shop/Product.php by phpcodesniffer

    Expected 1 space after closing parenthesis; found 0
    Open

            if($this->off !== null){
    Severity: Minor
    Found in src/Shop/Product.php by phpcodesniffer

    Class name "Shop_Product" is not in camel caps format
    Open

    class Shop_Product extends Shop_PricedObject
    Severity: Minor
    Found in src/Shop/Product.php by phpcodesniffer

    Expected 1 space after IF keyword; 0 found
    Open

            if(isset($this->model)){
    Severity: Minor
    Found in src/Shop/Product.php by phpcodesniffer

    Expected 1 space after IF keyword; 0 found
    Open

            if($this->off !== null){
    Severity: Minor
    Found in src/Shop/Product.php by phpcodesniffer

    The method clean_off is not named in camelCase.
    Open

        function clean_off(){
            if($this->off !== null){
                return $this->off;
            }
            return 0;
    Severity: Minor
    Found in src/Shop/Product.php by phpmd

    CamelCaseMethodName

    Since: 0.2

    It is considered best practice to use the camelCase notation to name methods.

    Example

    class ClassName {
        public function get_name() {
        }
    }

    Source

    There are no issues that match your filters.

    Category
    Status