Hey Mario,
On 5 May 2015 at 00:04, mbneto <[email protected]> wrote:
> Ok. Let's try this.
>
> My app handles products which are made of scalar values (like price, name)
> and of details, themselves made of other scalar values (size, weight etc)
> in a one->many relationship
>
> So
>
> Step 1 : action showProduct
> $product = $documentManager->find('Product', $id);
> $this->view->product = $product;
> $_SESSION['product'] = $product; // This is saving the product so I don't
> have to fetch it again and to guarantee that I will use the same no matter
> if the db changes from now until the end of the process
>
Is this action needed? Why can't you store a "session-safe" version of the
object? ($product->toSerializableProductDTO(), kind-of)
>
> // Displays a form and the product information. The user decides if he
> wants to use this product. If he decides to do so calls Step 2
>
> Step 2 : action confirm
> $this->view->product = $_SESSION['product'];
> $context->save(session_id, $product); // This context serializes the
> product object for future use and saves in a persistence medium (db, file,
> redis, memcache). in real life this context would save other objects needed
> as well
>
If you redesign the product form around the DTO, this will also work.
>
> // Display a confirmation page with the details
>
> Step 3: action postback // At some point we will get called with the
> session_id saved on step 2.
> $id = $_GET['id'];
> $product = $context->restore($id);
>
Here, something like
$productRepository->loadFromSerializableProductDTO($context->restore($id));.
This sort of operation merges data (manually) into the entity.
> $myClass->process($product);
>
Keep on rocking!
Marco Pivetta
http://twitter.com/Ocramius
http://ocramius.github.com/
--
You received this message because you are subscribed to the Google Groups
"doctrine-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/doctrine-user.
For more options, visit https://groups.google.com/d/optout.