Beschrijving van de gegevensstructuur
Beschrijving van de gegevensstructuur
Om在PHP中遇到甚至数据库te威尔服务员我们gebruik范这个词学说图书馆,甚至死ons, ontwikkelaars helpt om遇到数据库om te服务员:教义DBAL(即使数据库abstractie laag),教义ORM (om甚至图书馆数据库inhoud te manipuleren门gebruik te van PHP objecten)这个词,在教义迁移。
教义ORM configureren
锄头知道教义见过维尔克数据库te verbinden吗?教义的食谱voegde甚至configuratiebestand脚趾配置/包/ doctrine.yaml
,dat zijn gedrag regelt。De belangrijkste instelling De数据库DSN,即使字符串死阿莱informatie / de verbinding bevat: gebruikersnaam, wachtwoord,主机,要隘,劳动部。Standaard probeert教义deze gegevens外的德DATABASE_URL
omgevingsvariabele te海伦。
Bijna阿莱geinstalleerde包bevatten configuratie de配置/包/
地图。Meestal zijn de standaardinstellingen zorgvuldig gekozen om voor de meeste toepassingen te威尔。
Conventies van ob娱乐下载Symfony-omgevingsvariabelen begrijpen
我直DATABASE_URL
在het handmatig.env
的.env.local
bestand definieren。Dankzij het配方zie我bijvoorbeeld van de包DATABASE_URL
在jouw.env
bestand。低平火山口omdat码头工人de lokale要隘voor PostgreSQL vrij肯塔基州,dat hinderlijk。呃是即使betere许多。
在plaats van deDATABASE_URL
困难甚至bestand te coderen, kunnen我们阿莱突击队的满足ob娱乐下载
prefixen。说zorgt ervoor dat的码头工人en /平台。sh (wanneer de隧道开放)服务gedetecteerd沃顿en automatisch als omgevingsvariabele ingesteld沃顿。
码头工人平台组成。sh威尔naadloos samen遇到Symfony dob娱乐下载ankzij deze omgevingsvariabelen。
het uitvoeren van Bekijk阿莱beschikbare omgevingsvariabelen大门ob娱乐下载symfony var:出口
:
1
美元ob娱乐下载symfony var:出口
1 2
DATABASE_URL = postgres: / /主要:main@127.0.0.1:32781 /主要吗?sslmode = disable&charset = utf8 #……
自打我我数据库
servicenaam死在德码头工人在平台。sh configuraties wordt gebruikt吗?De servicenamen沃顿gebruikt als前缀bij het definieren van omgevingsvariabelen zoalsDATABASE_URL
。Als服务de Symfony ob娱乐下载naamgevingsconventies volgen, er geen额外configuratie nodig。
请注意
德不行De enige服务数据库profiteert van De Symfony conventies死去。ob娱乐下载Hetzelfde geldt bijvoorbeeld voor梅勒(通过德MAILER_DSN
omgevingsvariabele)。
在.env De standaard DATABASE_URL waarde aanpassen
我们zullen het.env
bestand钉战马aanpassen om de standaardDATABASE_URL
在te stellen voor het gebruik van PostgreSQL:
1 2 3 4 5 6 7 8 9 10 11
- - - a / .env+ + + b / .env@@ -29 7 + 29 7 @@ MESSENGER_TRANSPORT_DSN =学说:/ /默认吗?auto_setup = 0 # # DATABASE_URL = " sqlite: / / / % kernel.project_dir % / var /数据。db”# DATABASE_URL =“mysql: / / app: ! ChangeMe ! @127.0.0.1:3306 / app ? serverVersion = 8 charset = utf8mb4”-DATABASE_URL = " postgresql: / / app: ChangeMe ! @127.0.0.1:5432 / app ? serverVersion = 14 charset = utf8 "+ DATABASE_URL = " postgresql: / / 127.0.0.1:5432 / db ? serverVersion = 14 charset = utf8 "# # # <教义/ doctrine-bundle # # # # # # ob娱乐下载> symfony /信使# # #
Waarom酩悦德informatie op矫饰的verschillende plaatsen沃顿herhaald吗?Omdat op sommige云ob直播appplatformen tijdens de构建,德URL van de数据库支撑onbekend菅直人zijn,低平火山口教义逢het数据库systeem酩悦kennen om de configuratie te kunnen opbouwen。du,主机,gebruikersnaam wachtwoord多恩嗯不行脚趾。
实体类aanmaken
即使conferentie kunnen我们河畔beschrijven de van甚至aantal eigenschappen:
- 德stadwaar de conferentie wordt georganiseerd;
- Het基列耶琳就寻见van de conferentie;
- 即使国际歌河畔vlag om te判定de conferentie lokaal internationaal (SymfonyLive vs Sob娱乐下载ymfonyCon)。
De制造商包菅直人ons helpen om甚至类(甚至实体类)te genereren voor de conferentie。
Hetνtijd om de会议
实体te genereren:
1
美元ob娱乐下载symfony控制台:实体会议
说特种兵interactief: het begeleidt我bij het toevoegen van de nodige velden。Gebruik de volgende antwoorden (de meeste zijn de standaard antwoorden,杜我kunt op“输入”toets drukken om泽te aanvaarden):
城市
,字符串
,255年
,没有
;一年
,字符串
,4
,没有
;的国际
,布尔
,没有
。
说的是德volledige uitvoer van het突击队:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17日18 19 20 21日22日23日24日25日26日27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
创建:src /实体/会议。php创建:src /仓库/ ConferenceRepository。php生成实体!现在让我们添加一些字段!你可以添加多个字段后手动或通过重新运行这个命令。新的属性名(按<返回>停止添加字段):>城市字段类型(输入?查看所有类型)[string]: >字段长度[255]:>可以在数据库中该字段为null(可以为空)(yes / no)[不]:>更新:src /实体/会议。php添加另一个属性吗?输入属性名称(或按<返回>停止添加字段):>年字段类型(输入?查看所有类型)[string]: >字段长度[255]:> 4可以在数据库中该字段为null(可以为空)(yes / no)[不]:>更新:src /实体/会议。php添加另一个属性吗?输入属性名称(或按<返回>停止添加字段):>国际字段类型(输入?看到所有类型)(布尔):>可以在数据库中该字段为null(可以为空)(yes / no)[不]:>更新:src /实体/会议。php添加另一个属性吗? Enter the property name (or press to stop adding fields): > Success! Next: When you're ready, create a migration with make:migration
德会议
类是opgeslagen出席应用实体\ \
名称空间。
Het突击队genereerde本书甚至学说存储库类:App \ Repository \ ConferenceRepository
。
De gegenereerde代码ziet er als volgt外的(slechts甚至克莱因deel van het bestand wordt海尔getoond):
默克op dat de类甚至gewone PHP类探测器invloeden van教义。Attributen沃顿gebruikt om元数据脚趾te voegen死教条gebruikt om de类te kunnen河畔koppelen de bijhorende databasetabel。
教义heeft甚至id
eigenschap toegevoegd om de primaire sleutel van de rij te bewaren de tabel。Deze sleutel (ORM \ Id ()
)wordt automatisch gegenereerd (ORM \ GeneratedValue ()
)通过即使那个死afhankelijk van het gebruikte databasesysteem。
Genereerν甚至实体类voor reacties op de conferentie:
1
美元ob娱乐下载symfony控制台:实体发表评论
Geef de volgende antwoorden:
作者
,字符串
,255年
,没有
;文本
,文本
,没有
;电子邮件
,字符串
,255年
,没有
;createdAt
,datetime_immutable
,没有
。
河畔实体elkaar koppelen
De矫饰的实体,在会议上发表评论,河畔moeten elkaar沃顿gekoppeld。即使conferentie菅直人nul的米尔reacties hebben,窟甚至一对多相对wordt genoemd。
Gebruik het:实体
突击队opnieuw om德河畔相对脚趾te voegen de会议
类:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17日18 19 20 21日22日23日24日25日26日27 28 29 30
你的实体已经存在!让我们添加一些新领域!新的属性名(按<返回>停止添加字段):>注释字段类型(输入?查看所有类型)[string]: >对这个实体应该与哪个班?:>评论一个新的属性也将被添加到评论类…新字段名在评论(会议):>是评论。会议性质允许null(可以为空)?(yes / no)[是]:>没有你想激活orphanRemoval你们的关系?评论是“孤儿”时从相关会议。例如$会议- > removeComment(评论美元)注:如果评论可能* *从一个会议到另一个改变,回答“不”。你想自动删除孤儿App \实体\评论对象(orphanRemoval) ?(yes / no)[不]:>是的更新:src /实体/会议。php更新:src /实体/ Comment.php
请注意
Als我吗?
als antwoord voor het类型intypt krijg我甚至lijst遇到阿莱ondersteunde类型:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17日18 19 20 21日22日23日24日25日26日27 28 29 30 31 32
主要类型*文本字符串* *布尔*整数(或短整型、长整型数字)/协会* *浮动关系关系(一个向导将帮助您构建的关系)* ManyToOne * OneToMany * ManyToMany * OneToOne数组/对象类型*数组(或simple_array) * json对象* *二进制*团日期/时间* datetime类型(或datetime_immutable) * datetimetz(或datetimetz_immutable) *日期(或date_immutable) *时间(或time_immutable) * dateinterval其他类型*十进制* * json_array guid
Bekijk de volledige diff van de实体类na het toevoegen van de相对:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17日18 19 20 21日22日23日24日25日26日27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
- - - / src /实体/ Comment.php+ + + b / src /实体/ Comment.php@@ -36 6 + 36 12 @@类评论* /私人createdAt美元;+ # [ORM \ ManyToOne (inversedBy:“评论”)]+ # (ORM \ JoinColumn(可以为空:false))美元+私人会议会议;+公共函数getId (): int ?{返回$ this - > id;@@ -88、4 + 94,16美元@@类评论返回;}++公共职能getConference(): ?会议+ {+ $ this - >返回会议;+}++公共函数setConference (?会议会议美元):自我+ {= $ + $ this - >会议会议;+美元+返回;+}}- - - / src /实体/ Conference.php+ + + b / src /实体/ Conference.php@@ 2,6 + 2,8 @@名称空间的应用程序\实体;+使用原则\常见\ \ ArrayCollection集合;+使用原则\常见\集合\集合;使用原则\ ORM \ ORM映射;/ * * @@ -31 6 + 33岁16 @@类* /私人美元的国际会议;+ # [ORM \ OneToMany (targetEntity:评论::类的mappedBy:“会议”,orphanRemoval: true))+私人美元评论;++公共__construct()函数+ {+ $ this - >评论= new ArrayCollection ();+}+公共函数getId (): int ?{返回$ this - > id;@@ -71、4 + 83,35美元@@类会议返回;}++ / * *+ * @return收集< int、评论>+ * /+公共职能getComments():收集+ {+返回$ this - >评论;+}++公共职能addComment(评论评论美元):自我+ {+如果(! $ this - >评论>包含(评论美元)){+ $ this - >评论[]= $评论;+ $评论- > setConference ($);+}+美元+返回;+}++公共职能removeComment(评论评论美元):自我+ {+如果($ this - >评论- >包含(评论美元)){+ $ this - >评论- > removeElement($评论);+ / /拥有端设置为null(除非已经改变了)+如果($评论- > getConference () = = = $) {+ $评论- > setConference(空);+}+}+美元+返回;+}}
一切窟nodig是om de相对te beherenνvoor我gegenereerd。Eenmaal gegenereerd, wordt说jouw代码;我弯vrij om代码长te passen als dat nodig。
额外eigenschappen toevoegen
本土知识realiseerde我净dat我们vergeten zijn甚至eigenschap脚趾te河畔voegen de评论实体:de deelnemers willen misschien甚至有意者van de conferentie toevoegen om匈奴人反馈kracht bij te zetten。
到:实体
opnieuw voeg甚至外的photoFilename
eigenschap / kolom van het类型字符串
脚趾,低平火山口laat零
脚趾omdat het uploaden van甚至有意者optioneel是:
1
美元ob娱乐下载symfony控制台:实体发表评论
De数据库migreren
Het模型van Het项目wordtνvolledig beschreven门德矫饰的gegenereerde类。
Vervolgens moeten我们显得钉de databasetabellen aanmaken死bij deze horen PHP实体。
教义迁移是hiervoor het beste gereedschap。Het werd al geinstalleerd als onderdeel van deorm
依赖。
即使migratie即使类死亡数据库schemawijzigingen beschrijft。见过死schemawijzigingen菅直人我德数据库van de huidige naar de nieuwe versie brengen。De schemawijzigingen沃顿gegenereerd op基础van De attributen死op德实体gedefinieerd zijn。De数据库momenteel leeg杜·德·migratie邹De首创van矫饰的tabellen moeten bevatten。
变迟我们皇后区genereert bekijken窟学说:
1
美元ob娱乐下载symfony控制台:迁移
让op de gegenereerde bestandsnaam (ziet eruit als迁移/ Version20191019083640.php
):
Bijwerken van de lokale数据库
我菅直人νgegenereerde migratie uitvoeren om het lokale数据库模式bij te威尔:
1
美元ob娱乐下载symfony控制台学说:迁移:迁移
Het lokaleν最新的数据库模式,klaar om gegevens te bewaren。
De productiedatabase bijwerken
De stappen死nodig zijn om De productiedatabase te migreren zijn dezelfde als死waarmee我艾尔bekend弯曲:提交De wijzigingen en deze部署。
Bij het deployen van het项目brengt平台。sh de代码更新en voert显得de databasemigraties外的(印度het原则:迁移:迁移
突击队bestaat)。
佛得角服务员
- 数据库在教义ORM在Syob娱乐下载mfony applicaties;
- ob娱乐下载SymfonyCasts理论教程;
- 威尔遇见主义协会/关系;
- DoctrineMigrationsBundle documentatie。
美元ob娱乐下载symfony控制台:实体会议