Skip to content

resolvePartialStructuralElementName gives wrong namespace #82

@webmake

Description

@webmake

Hello, I have 2 classes in different namespaces, and trait connecting them, ex:

namespace Command\Common\Traits; use Command\Model\Payment\UserAccountDetails; trait UserDetailsAwareTrait { /** * @var UserAccountDetails */ protected $userAccountDetails; public function getUserAccountDetails(): UserAccountDetails { return $this->userAccountDetails; } public function setUserAccountDetails(UserAccountDetails $userAccountDetails): void { $this->userAccountDetails = $userAccountDetails; } } 
namespace Command\Bank; use Command\Common\Traits\UserDetailsAwareTrait; use Command\Model\Payment\UserData; use Money\Money; use Ramsey\Uuid\UuidInterface; class DepositCommand { use UserDetailsAwareTrait; } 
namespace Command\Model\Payment; class UserAccountDetails { /** * @var bool|null */ private $accountVerified; public function isAccountVerified(): ?bool { return $this->accountVerified; } public function setAccountVerified(?bool $accountVerified): UserAccountDetails { $this->accountVerified = $accountVerified; return $this; } } 

And logic failure occurs in resolvePartialStructuralElementName.

$context variable content:
image
and $type = "UserAccountDetails".

So it cannot be just simple $namespace . $type, I guess it should check within trait namespace of UserAccountDetails, but I don't know where it cames from.

It seems that another library have already resolved this issue, you can take a look and this one

Maybe $context should include UserDetailsAwareTrait trait uses, so it would be resolved as $namespaceAliases[$typeParts[0]]

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions