The Clean Architecture in php



Download 2,26 Mb.
Pdf ko'rish
bet164/179
Sana24.06.2021
Hajmi2,26 Mb.
#100337
1   ...   160   161   162   163   164   165   166   167   ...   179
Bog'liq
The-Clean-Architecture-in-PHP-Kristopher-Wilson

class
InvoiceRepository
extends
AbstractDoctrineRepository
implements
InvoiceRepositoryInterface {
protected
$entityClass
=
'CleanPhp\Invoicer\Domain\Entity\Invoice'
;
}
Entity Mapping
Doctrine relies on
mapping files⁵⁸
to gain information about the database schema and how to
map that database schema to the entity objects. Doctrine is an example over configuration over
convention. Other ORMs, especially ones that use the
ActiveRecord⁵⁹
pattern, require way less
configuration, but also make deep assumptions about the database.
There are three methods we can use to generate these mappings:
1. DocBlock class annotations on the entities themselves
2. XML Mapping Files
3. YAML Mapping Files
The first option is by far the most common, and is even a
recommended standard by Symfony⁶⁰
.
The second option is for super enterprise people, and the third option is the one we’re going to
go with.
I have two reasons for not using DocBlocks:
• it leaks persistence information into the domain layer, and the domain layer should not be
concerned with how the data is persisted
• it makes the code rely on comments to function properly. I’m a strong believer that
comments should not have a direct effect on how code behaves at runtime.
The second complaint mostly goes away if PHP ever implements true annotations in the
language, but for now, it’s a giant code smell for me.
I have one reason for not using XML: it’s XML.
Really, though, go with whatever method you think is best. It’s small potatoes in the grand
scheme of things, and none of the three methods will affect how the repositories work.
We’ll store these mapping files in in the
Persistence/Doctrine/Mapping
folder.
⁵⁸
http://doctrine-orm.readthedocs.org/en/latest/reference/basic-mapping.html
⁵⁹
http://www.martinfowler.com/eaaCatalog/activeRecord.html
⁶⁰
http://symfony.com/doc/current/best_practices/business-logic.html#doctrine-mapping-information


Doctrine 2
202

Download 2,26 Mb.

Do'stlaringiz bilan baham:
1   ...   160   161   162   163   164   165   166   167   ...   179




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish