私はいくつかの属性をcsvファイルに書き込むmagento製品エクスポーターを書いています。1 つの属性は「カテゴリ文字列」と呼ばれ、そのメソッドは次のようになります。
...
foreach($products as $_product) {
...
$productId = $_product->getSku();
$productCategory = getCategoryString($_product['category_ids']);
...
}
...
function getCategoryString($numbers) {
$catString = '';
$catModel = Mage::getModel('catalog/category')->setStoreId(Mage_Core_Model_App::ADMIN_STORE_ID);
$ex = explode(',', $numbers);
foreach ($ex as $i => $e) {
if ($i > 0) {
$catString .= $catModel->load($e)->getName();
if ($i < (count($ex)-1))
$catString .= ' > ';
}
}
$ex = NULL;
$numbers = NULL;
$catModel->unsetData();
unset($catModel);
$catModel = NULL;
return $catString;
}
しかし、各反復の後、メソッド呼び出しのコストは製品ごとに約 1MB で、約 9000 個の製品があります! $catModel 変数をクリーンアップできません! $catModel = NULL および unset($catModel) 行は効果がありません。私は何を間違っていますか?オブジェクトを強制的に設定解除するにはどうすればよいですか?!