Search code examples
phpprestashop

How check if new function is working on prestashop


I'm new in prestashop and there is a thing that i don't understand.

I need to add a function that get a file CSV and stock all in a array. This function will be added in a exixsting Class in this path "/modules/sdevmanomano/classes/MyClass.php" Now i have to test the new function, and it the end of the class (out of the {}), i did a var_dump of my object.method(). When i go at the adress of file in my browser, i get nothing. (i m in the correct path). Why? Exemple:

/modules/sdevmanomano/classes/MyClass.php
if (!defined('_PS_VERSION_')) {
    exit;
}

include_once(dirname(__FILE__) . '/OtherClass.php');

class MyClass
{
...
//Before execute the code i want check if he has open correctly the CSV in tmpName
    private function getDeliveryPrices(){
        $tmpName = fopen(dirname(dirname(__FILE__)) . '/prices/prezzi_spedizione_francia.csv', 'r');
        if ($tmpName){
           $csvAsArray = 'ok';
        } else {
            $csvAsArray = 'errore';
        }

        return $csvAsArray;
    }
}
// end of class
$test = new MyClass();

$res = $test->getDeliveryPrice();
var_dump($res);

Normally at this point, at the adresse https:/.../modules/sdevmanomano/classes/MyClass.php i have to see my dump, but didn' happen. Why ?


Solution

  • Assuming you would want to use your php script outside a PrestaShop session within the module context, here is how you could require the PrestaShop configuration when on a stand-alone php script:

    // /modules/sdevmanomano/classes/MyClass.php
    
    /*
     * Require the PrestaShop configuration
     * relative to the location of this script
     */
    reqire_once(dirname(__FILE__) . '../../../config/config.inc.php';
    
    // Then you have access to _PS_VERSION_
    if (!defined('_PS_VERSION_')) {
        exit;
    }