use Tito10047\PersistentStateBundle\Selection\Service\SelectionManagerInterface;
class CartController
{
public function __construct(
private readonly SelectionManagerInterface $selectionManager,
) {}
public function add(User $user, Product $product)
{
$cartSelection = $this->selectionManager->getSelection( 'cart',$user);
$cartSelection->select($product, [
'quantity' => 1,
'added_at' => new \DateTime()
]);
}
public function clear(User $user)
{
$this->selectionManager->getSelection('cart',$user)->destroy();
}
}
use Tito10047\PersistentStateBundle\Preference\Service\PreferenceManagerInterface;
class SettingsController
{
public function __construct(
private readonly PreferenceManagerInterface $prefManager,
) {}
public function updateTheme(User $user, string $theme)
{
$preferences = $this->prefManager->getPreference($user);
$preferences->set('theme', $theme);
}
}
public function deleteSelected(User $user)
{
$selection = $this->selectionManager->getSelection('main_logs', $user);
$ids = $selection->getSelectedIdentifiers();
// ... perform deletion
}