THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline


Bonjour,

J'ai actuellement un problème. J'essaie d'importer un grand nombre de produit mais lorsque j'en importe un grand nombre j'ai une erreur.

PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted (tried to allocate 32 bytes) in /Users/moi/Documents/Developpement/test_thelia/core/vendor/propel/propel/src/Propel/Runtime/ActiveQuery/Criterion/InCriterion.php on line 48

Pour importer mes données j'utilise un fichier json du format que j'ai choisi et j'utilise un module afin d'importer le fichier json.
Voici mon module.


class Importe extends BaseModule
{

    public function postActivation(ConnectionInterface $con = null) {
        $all_product=$this->acces_json();
        $this->add_prod($all_product[0],$all_product[1]);
    }


    public function acces_json() {
        $path = "/Users/moi/Documents/Developpement/test_thelia/local/modules/Importe/Config/test.json";
        $json = file_get_contents($path);
        if($json==FALSE) {
            $parsed_json_vailable = FALSE;
        } else {
            $parsed_json = json_decode($json);
            if($parsed_json==true) {
                $parsed_json_vailable = true;
            }
            else {
                $parsed_json_vailable = null;
            }
        }
        return array($parsed_json,$parsed_json_vailable);
    }

    public function add_prod($parsed_json,$parsed_json_vailable) {
        if($parsed_json_vailable){
            foreach ($parsed_json as $current_prod) {
                $production = new Product();
                $production->create(4, 120, 1, 1, 50);
                $production->setDescription($current_prod->description);
                $production->setTitle($current_prod->title);
                $production->setRef($current_prod->ref);
                $production->setVisible(1);
                $production->save();
                $production = null;
            }
        }
    }
}

Je pense qu'il existe des méthode plus élégante pour le faire mais je voulais arrivé à un résultat rapidement.

Avez vous une idée comment régler le problème?

Offline


Je précise que le module fonction mais parfois j'ai cette erreur et notamment lorsque j'essaie d'importer 500 produit.