Revision: Thu, 22 Feb 2024 17:58:45 GMT
v2.14 – outdated
This version of the documentation is outdated. Consider upgrading your project to Spiral Framework 3.11
Edit this page

Cycle ORM - Transactions

To persist entity changes, your application services and controllers will require Cycle\ORM\EntityManagerInterface.

Default Configuration

By default, the framework will automatically create a transaction on-demand from the container. Considering that transactions always clean after the run operation, you can request it as a constructor parameter.

use Cycle\ORM\EntityManagerInterface;

class MyService
    private EntityManagerInterface $entityManager;
    public function __construct(EntityManagerInterface $entityManager)
        $this->entityManager = $entityManager;

Make sure that persist/delete and run methods are always called within one method scope while using service-specific transactions.


You can always test the service by mocking Cycle\ORM\EntityManagerInterface, consider binding mocked transaction object to your application instance to see what is being persisted.

Read more how to use Create, Update and Delete entities here.