Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

抽象化レイヤー: Doctrine/ORM #10

Open
kiy0taka opened this issue Apr 18, 2023 · 0 comments
Open

抽象化レイヤー: Doctrine/ORM #10

kiy0taka opened this issue Apr 18, 2023 · 0 comments
Assignees

Comments

@kiy0taka
Copy link
Contributor

EntityManager

アダプターを作成する。Exceptionもここで変換する。

Doctrine\ORM\ORMException

独自のExceptionに変換する。必要に応じてサブクラスも作成する。

Doctrine\ORM\Mapping

Mapping Doctrineサポート 対応案 懸念事項
Atrributes final classで定義されているので継承して利用することは不可。コードをコピーして名前空間を変更。AnnotationDriver を拡張して独自のアノテーションをロードして仕様変更に対応する。 結構なコード量をコピーして利用することになりそう
XML XSLT変換させれば独自のXMLで利用できそう。 ファイルが分かれるのはめんどくさい。4.2系のやり方と大きく変わる
PHP PHPファイルによるマッピング定義は3.0で削除予定 - staticメソッドでのマッピングはEntity拡張できなさそう。
Annotation 3.0で削除予定。Attributesに移行。 -
YAML バリデーションが効かないので3.0で削除予定。 -
独自のマッピング方法 未定

Doctrine\ORM\{Query,QueryBuilder}

アダプターを作成する。めんどくさい。

Doctrine\ORM\Tools

InstallerControllerでのみ利用されている。インストーラーは別扱いしたほうがいいかも。

Doctrine\ORM\UnitOfWork

CartServiceで利用されている。

EntityManagerのアダプターで吸収できないか検討。

// 前
UnitOfWork::STATE_MANAGED === $this->entityManager->getUnitOfWork()->getEntityState($removed)
// 後
$this->entityManager->isStateManaged($removed);
@kiy0taka kiy0taka converted this from a draft issue Apr 18, 2023
@kiy0taka kiy0taka self-assigned this Apr 18, 2023
@kiy0taka kiy0taka moved this from 🔎 In refinement to 🔖 Ready in next-poc Apr 18, 2023
@kiy0taka kiy0taka moved this from 🔖 Ready to 🏗 In progress in next-poc May 31, 2023
@kiy0taka kiy0taka moved this from 🏗 In progress to ✅ Done in next-poc Jun 26, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done
Development

No branches or pull requests

1 participant