Descrivere la struttura达缇女士
Descrivere la struttura达缇女士
每gestire il数据库da PHP, il progetto dipendera哒学说,联合国insieme di librerie格瓦拉aiutano gli sviluppatori gestire我数据库:教义DBAL(联合国每个数据库层di astrazione)教义ORM (una libreria manipolare il contenuto del数据库utilizzando oggetti PHP), e原则迁移。
Configurare l 'ORM di教义
fa教义conoscere la connessione al数据库来吗?La ricetta di教义ha aggiunto di configurazione联合国文件,配置/包/ doctrine.yaml
锁,格瓦拉controlla comportamento。'impostazione主要eDSN(数据源名称),una stringa contenente tutte le informazioni苏拉connessione: credenziali,主机,门,ecc。每impostazione predefinita,教义cerca una variabile d 'ambienteDATABASE_URL
。
准合唱我pacchetti installati汉诺una configurazione la cartella配置/包/
。所以Nella maggior杰克逊一些属于接近,我valori predefiniti园子stati scelti accuratamente每funzionare con le applicazioni稍comuni。
Comprendere le convenzioni delle variabili d 'ambiente diob娱乐下载 Symfony
E相信definire variabileDATABASE_URL
manualmente nel文件.env
o nel文件.env.local
。La ricetta del pacchetto ha inserito联合国valore di esempio /DATABASE_URL
nel文件.env
。马poiche la门地区di PostgreSQL esposta da码头工人potrebbe cambiare,故事definizione e piuttosto imprecisa。Cerchiamo una soluzione米利。
Invece di specificare manualmente valore diDATABASE_URL
在联合国文件,possiamo aggiungere我comandi il prefisso合奏ob娱乐下载
。Questo prefisso consentira di rilevare我servizi eseguiti da码头工人e / o平台。sh (quando il隧道e aperto) e impostera automaticamente la variabile d 'ambiente。
码头工人组成e平台。sh funzionano perfettamente con ob娱乐下载Symfony,谢谢人们variabili d 'ambiente。
Controllare tutte le variabili d 'ambiente esposte eseguendoob娱乐下载symfony var:出口
:
1
美元ob娱乐下载symfony var:出口
1 2
DATABASE_URL = postgres: / /主要:main@127.0.0.1:32781 /主要吗?sslmode = disable&charset = utf8 #……
Ricordate il省del servizio数据库
usato内尔configurazioni码头工人Platform.sh吗?我无关一些servizi园子usati来prefissi每definire variabili d 'ambiente来DATABASE_URL
。Se我servizi园子nominati第二声部le convenzioni di Symfony,非园子ob娱乐下载necessarie altre configurazioni。
请注意
我数据库非园子l 'unico servizio格瓦拉beneficia delle convenzioni di Symfony。ob娱乐下载每梅勒罗stesso淡水河谷,每esempio tramite la variabile d 'ambienteMAILER_DSN
)。
Modifica del valore predefinito DATABASE_URL .env
Modificheremo又il文件.env
,cambiando valore predefinito diDATABASE_URL
,affinche utilizzi PostgreSQL:
1 2 3 4 5 6 7 8 9 10 11
- - - a / .env+ + + b / .env@@ -28 7 + 28 7 @@ MESSENGER_TRANSPORT_DSN =学说:/ /默认吗?auto_setup = 0 # # DATABASE_URL = " sqlite: / / / % kernel.project_dir % / var /数据。db“# DATABASE_URL = " mysql: / / db_user: db_password@127.0.0.1:3306 / db_name ? serverVersion = 5.7 "-DATABASE_URL = " postgresqlob娱乐下载: / / symfony: ChangeMe@127.0.0.1:5432 / app ? serverVersion = 13 charset = utf8 "+ DATABASE_URL = " postgresql: / / 127.0.0.1:5432 / db ? serverVersion = 13 charset = utf8 "# # # <教义/ doctrine-bundle # # # # # # ob娱乐下载> symfony /信使# # #
佩尔什勒informazioni devono essere复制在适当punti diversi吗?鲈鱼苏alcune piattaforme云ob直播app熔丝迪compilazionel 'URL del数据库potrebbe非essere又能登,马主义ha bisogno di conoscere il蒂波di数据库(MySQL, PostgreSQL SQLite, ecc) / costruire la sua configurazione。篇,l 'host省utente e la密码非汉诺molta importanza。
Creazione di抚慰心灵实体
年青一代Una conferenza essere descritta con alcune proprieta:
- 拉异食癖鸽子viene organizzata la conferenza;
- L '伊斯兰教纪元德拉conferenza;
- 联合国坎波国际每indicare se la conferenza e地区o国际米兰(SymfonyLive vs Symfonob娱乐下载yCon)。
年青一代MakerBundle aiutarci generare una架势(una架势实体格瓦拉rappresenta una conferenza。
di generare l 'entitaẼgiunto il纪念品会议
1
美元ob娱乐下载symfony控制台:实体会议
Questo第一e interattivo: vi guidera nel processo di aggiunta di我皮necessari合奏。Scegliere le seguenti risposte (la maggior部分索诺迪实在您predefinite,在modo da poterle Scegliere premendo il tasto“Invio”):
城市
,字符串
,255年
,没有
;一年
,字符串
,4
,没有
;的国际
,布尔
,没有
。
Ecco l 'output completo quando如果esegue第一:
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
洛杉矶的架势会议
e占据salvata il名称空间应用实体\ \
。
Il第一ha传递与否una架势存储库di学说:App \ Repository \ ConferenceRepository
。
Il配置与否公顷Il seguente aspetto (una piccola独奏部分del文件viene riportata):
如果noti格瓦拉la架势stessa e una单纯的架势PHP,无segni di教义。Gli attributi园子usati每aggiungere metadati utili教义/ mappare la架势真主安拉relativa片del数据库。
ha aggiunto una proprieta学说id
每memorizzare la chiave primaria德拉里加所以nella片del数据库。,chiave (ORM \ Id ()
)viene generata automaticamente (ORM \ GeneratedValue ()
)tramite una strategia格瓦拉dipende dal蒂波迪数据库。
奥拉,generiamo una架势实体/我commenti真主安拉conferenza:
1
美元ob娱乐下载symfony控制台:实体发表评论
Inserire le seguenti risposte:
作者
,字符串
,255年
,没有
;文本
,文本
,没有
;电子邮件
,字符串
,255年
,没有
;createdAt
,datetime_immutable
,没有
。
Collegare le实体
Le实体,由于会议e评论,dovrebbero essere collegate洛。年青一代Una conferenza avere零o稍commenti,格瓦拉e detta relazioneuno-a-molti。
Usare迪莱伊尔第一:实体
每aggiungere, relazione真主安拉的架势会议
:
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
请注意
Se si inserisce吗?
risposta阿尔蒂波,如果ottengono合唱我帐篷supportati:
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
日期联合国'occhiata al diff completo / le抚慰心灵实体dopo断言aggiunto la relazione:
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收藏|评论[]+ * /+公共职能getComments():收集+ {+返回$ this - >评论;+}++公共职能addComment(评论评论美元):自我+ {+如果(! $ this - >评论>包含(评论美元)){+ $ this - >评论[]= $评论;+ $评论- > setConference ($);+}+美元+返回;+}++公共职能removeComment(评论评论美元):自我+ {+如果($ this - >评论- >包含(评论美元)){+ $ this - >评论- > removeElement($评论);+ / /拥有端设置为null(除非已经改变了)+如果($评论- > getConference () = = = $) {+ $评论- > setConference(空);+}+}+美元+返回;+}}
全体的cio迪崔si每公顷bisogno gestire la relazione e stato与否。Una volta与否,配置爱情sviluppatore报称,格瓦拉e自由人di personalizzarlo preferisce来。
Aggiungere altre proprieta
何鸿燊appena realizzato切词我们是dimenticati di aggiungere una proprieta黄化'entity评论:我partecipanti potrebbero田鼠allegare una有意者德拉conferenza每illustrare il洛反馈。
Eseguire:实体
又una volta e aggiungere una proprieta /报摊photoFilename
迪蒂波字符串
,马consentendo格瓦拉accetti valore零
在modo da rendere opzionale il caricamento:
1
美元ob娱乐下载symfony控制台:实体发表评论
Migrazione del数据库
Il modello di progetto e奥拉这些descritto装饰板材由于抚慰心灵。
Successivamente, abbiamo bisogno di creare le tabelle del PHP数据库相对人们实体。
教义迁移e la soluzione perfetta /联合国compito del genere。E gia stato installato德拉杰克逊dipendenza来orm
。
Unamigrazionee una架势格瓦拉descrive le modifiche necessarie每aggiornare lo模式di联合国数据库锁dal档案馆attuale quello诺沃,definito dagli attributi delle实体。每ora il数据库e vuoto Poiche, la migrazione dovrebbe essere composta dalla苍井空creazione由于tabelle di。
Vediamo科属学说:
1
美元ob娱乐下载symfony控制台:迁移
如果noti省del文件与否内尔'output(联合国省切assomiglia迁移/ Version20191019083640.php
):
现代化del数据库语言环境
奥拉e相信eseguire la migrazione generata每aggiornare lo模式del数据库语言环境:
1
美元ob娱乐下载symfony控制台学说:迁移:迁移
罗模式del数据库语言环境e ora aggiornato e pronto memorizzare达缇女士。
现代化德尔迪produzione数据库
我passi necessari每migrare il数据库di produzione园子gli stessi visti precedenza:提交delle modifiche e部署。
Quando如果esegue部署del progetto平台。sh aggiorna自由配置,马esegue传递l 'eventuale migrazione del数据库(verificando presenza del第一原则:迁移:迁移
)。
而oltre
- 数据库e di ORM教义内尔applicazioni di Symfob娱乐下载ony;
- 教程苏SymfonyCasts学说ob娱乐下载;
- Lavorare con Associazioni / Relazioni di教义;
- Documentazione di DoctrineMigrationsBundle。
美元ob娱乐下载symfony控制台:实体会议