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?