# user-access-manager/trunk/src/ObjectMembership/ObjectMembershipHandlerFactory.php

User Access Manager, version trunk. 77 lines.

- Page: https://pluginprobe.com/plugins/user-access-manager/trunk/code/src/ObjectMembership/ObjectMembershipHandlerFactory.php
- Raw: https://pluginprobe.com/plugins/user-access-manager/trunk/raw/src/ObjectMembership/ObjectMembershipHandlerFactory.php
- Modified: 2026-08-06T11:11:24+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/user-access-manager/trunk/code/src/ObjectMembership/ObjectMembershipHandlerFactory.php#L10-L20`.

```php
<?php

declare(strict_types=1);

namespace UserAccessManager\ObjectMembership;

use Exception;
use UserAccessManager\Database\Database;
use UserAccessManager\ObjectMembership\Type\PostMembershipHandler;
use UserAccessManager\ObjectMembership\Type\RoleMembershipHandler;
use UserAccessManager\ObjectMembership\Type\TermMembershipHandler;
use UserAccessManager\ObjectMembership\Type\UserMembershipHandler;
use UserAccessManager\Object\ObjectHandler;
use UserAccessManager\Object\ObjectMapHandler;
use UserAccessManager\UserGroup\AssignmentInformationFactory;
use UserAccessManager\Wrapper\Php;
use UserAccessManager\Wrapper\Wordpress;

class ObjectMembershipHandlerFactory
{
    public function __construct(
        private Php $php,
        private Wordpress $wordpress,
        private Database $database,
        private ObjectMapHandler $objectMapHandler,
        private AssignmentInformationFactory $assignmentInformationFactory
    ) {
    }

    /**
     * @throws Exception
     */
    public function createPostMembershipHandler(ObjectHandler $objectHandler): PostMembershipHandler
    {
        return new PostMembershipHandler(
            $this->assignmentInformationFactory,
            $this->wordpress,
            $objectHandler,
            $this->objectMapHandler
        );
    }

    /**
     * @throws Exception
     */
    public function createRoleMembershipHandler(): RoleMembershipHandler
    {
        return new RoleMembershipHandler($this->assignmentInformationFactory, $this->wordpress);
    }

    /**
     * @throws Exception
     */
    public function createTermMembershipHandler(ObjectHandler $objectHandler): TermMembershipHandler
    {
        return new TermMembershipHandler(
            $this->assignmentInformationFactory,
            $this->wordpress,
            $objectHandler,
            $this->objectMapHandler
        );
    }

    /**
     * @throws Exception
     */
    public function createUserMembershipHandler(ObjectHandler $objectHandler): UserMembershipHandler
    {
        return new UserMembershipHandler(
            $this->assignmentInformationFactory,
            $this->php,
            $this->database,
            $objectHandler
        );
    }
}

```
