Ik heb een probleem waar ik niet uit komen. Hopelijk heeft iemand tips, alvast bedankt!
Via een webservices krijg ik een object terug, dit is een salesorder object. In dit object zitten op verschillende diepte niveaus informatie in verschillende nodes. Voorbeeldje:
En zo nog veel meer properties/nodes onder het SalesOrder object, maar ook in het InvoiceAddress en ShippingAddress node.
Om de informatie in de DB op te slaan wil ik graag een Flatten functie, die alles naar één niveau gaat verwerken, die vervolgens een MySQL::Insert functie in kan. Klein voorbeeldje van de Flatten functie:
Het probleem is dat deze functie een memory lek bevat, maar waar/waarom is mij onbekend
. Er worden zo'n 75 velden omgezet. Ik heb al geprobeerd om met unset ($oOrder->Discount) en resterende velden te werken, maar dit helpt niet. Ik weet dat PHP niet netjes het geheugen weer opruimt omtrent objecten en heb bijvoorbeeld gc_enable(); gebruikt. Ook al gezocht op andere object flatten functies, maar niet kunnen vinden. Hopelijk kan iemand mij tips geven
!
Via een webservices krijg ik een object terug, dit is een salesorder object. In dit object zitten op verschillende diepte niveaus informatie in verschillende nodes. Voorbeeldje:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| salesorder |- CreateDateTime |- OrderNumber |- OrderPrice |- SentPrice |- Discount |- User |- Id |- Discount_Percentage |- Customer |- InvoiceAddress |- FirstName |- LastName |- Street |- HouseNumber |- ShippingAddress |- FirstName |- LastName |- Street |- HouseNumber |- SalesOrderRows |
En zo nog veel meer properties/nodes onder het SalesOrder object, maar ook in het InvoiceAddress en ShippingAddress node.
Om de informatie in de DB op te slaan wil ik graag een Flatten functie, die alles naar één niveau gaat verwerken, die vervolgens een MySQL::Insert functie in kan. Klein voorbeeldje van de Flatten functie:
code:
1
2
3
4
5
6
7
8
9
10
11
12
| private function Flatten($oOrder){ $oOrder->UserId = (!isset($oOrder->User->Id) ? null : $oOrder->User->Id); $oOrder->UserDiscount_Percentage = (!isset($oOrder->User->Discount_Percentage) ? null : $oOrder->User->Discount_Percentage); $oOrder->DiscountCoupon_Code = (!isset($oOrder->DiscountCoupon->Code) ? null : $oOrder->DiscountCoupon->Code); $oOrder->DiscountCoupon_Discount = (!isset($oOrder->DiscountCoupon->Discount) ? null : $oOrder->DiscountCoupon->Discount); $oOrder->DiscountCoupon_Type = (!isset($oOrder->DiscountCoupon->Type) ? KNIP return $oOrder; } |
Het probleem is dat deze functie een memory lek bevat, maar waar/waarom is mij onbekend

20x SF170s + SMA SB3000TL-21 | PV Output