Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
N
ne-soyez-plus-l-esclave-de-doctrine
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Greg0ire
ne-soyez-plus-l-esclave-de-doctrine
Commits
f7bbb758
Commit
f7bbb758
authored
7 years ago
by
Greg0ire
Browse files
Options
Downloads
Plain Diff
Merge branch 'more-integration' into 'master'
More integration See merge request
!12
parents
56664145
9ba0278e
Branches
Branches containing commit
No related tags found
1 merge request
!12
More integration
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
hello.css
+19
-1
19 additions, 1 deletion
hello.css
index.md
+53
-25
53 additions, 25 deletions
index.md
with
72 additions
and
26 deletions
hello.css
+
19
−
1
View file @
f7bbb758
...
@@ -37,6 +37,11 @@ code {
...
@@ -37,6 +37,11 @@ code {
font-family
:
Circular
,
"League Gothic"
,
Impact
,
sans-serif
;
font-family
:
Circular
,
"League Gothic"
,
Impact
,
sans-serif
;
font-weight
:
bold
;
font-weight
:
bold
;
letter-spacing
:
1px
;
letter-spacing
:
1px
;
text-transform
:
none
;
/*text-shadow: #1E19C2 1px 1px 4px;*/
}
.reveal
h4
{
font-size
:
1.5em
;
}
}
.reveal
pre
{
.reveal
pre
{
...
@@ -67,6 +72,19 @@ code {
...
@@ -67,6 +72,19 @@ code {
height
:
150px
;
height
:
150px
;
}
}
#hello
{
line-height
:
1.1
;
}
#hello
img
{
border-radius
:
50%
!important
;
-webkit-box-shadow
:
1px
1px
2px
0px
rgba
(
0
,
0
,
0
,
0.51
);
-moz-box-shadow
:
1px
1px
2px
0px
rgba
(
0
,
0
,
0
,
0.51
);
box-shadow
:
1px
1px
2px
0px
rgba
(
0
,
0
,
0
,
0.51
);
}
#hello
.job
{
font-size
:
0.7em
;
}
#universcine
,
#manomano
{
#universcine
,
#manomano
{
display
:
inline-block
;
display
:
inline-block
;
}
}
...
@@ -150,4 +168,4 @@ code {
...
@@ -150,4 +168,4 @@ code {
blockquote
.twitter-tweet
{
blockquote
.twitter-tweet
{
/*transform: scale(2);*/
/*transform: scale(2);*/
}
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
index.md
+
53
−
25
View file @
f7bbb758
# N
e soyez plus l'esclave de Doctrine
# N
E SOYEZ PLUS L'ESCLAVE DE DOCTRINE
---
---
<!-- .slide: id="hello" -->
## Hello!
## Hello!
<div
style=
"width: 50%; float: left;"
>
<div
style=
"width: 50%; float: left;"
>
Grégoire Paris
<br
/>
Software Engineer
<br
/>
<span
id=
"gregoire"
>

</span><br
/>
<span
id=
"gregoire"
>

</span><br
/>
<div
id=
"gregoire_company"
>
**Grégoire PARIS**
<br
/>
<div
id=
"universcine"
>
<span
class=
"job"
>
!
[
LogoUniversCine
](
./universcine_light.svg
)
Software Engineer
<br
/>
</div>
Universciné → ManoMano
<br
/>
<div
id=
"universcine"
>
➡
</div>
</span>
<div
id=
"manomano"
>
!
[
LogoManomano
](
./Logo_MAnoMano_HD.svg
)
</div>
</div>
</div>
</div>
<div
style=
"width: 50%; float: right;"
id=
"maxime"
>
<div
style=
"width: 50%; float: right;"
id=
"maxime"
>
Maxime Veber
<br
/>

<br
/>
Backend developer
<br
/>
**Maxime VEBER**
<br
/>

<span
class=
"job"
>
Backend Developer
<br
/>
Agence BiiG
</span>
</div>
</div>
---
---
...
@@ -36,6 +34,7 @@ Backend developer<br />
...
@@ -36,6 +34,7 @@ Backend developer<br />
Notes: Juste pour dire que nous n'avons rien à voir avec la team de Doctrine et qu'il faut les remercier.
Notes: Juste pour dire que nous n'avons rien à voir avec la team de Doctrine et qu'il faut les remercier.
---
---
<!-- .slide: class="lot_of_code" -->
## Vous avez dit entité ?
## Vous avez dit entité ?
```
php
```
php
...
@@ -72,13 +71,15 @@ Notes:
...
@@ -72,13 +71,15 @@ Notes:
-
Pas de setter pour id, il est setté par Doctrine après la persistence
-
Pas de setter pour id, il est setté par Doctrine après la persistence
---
---
## ️
❤️
Domain Driven Design
❤️
## ️ Domain Driven Design
-
Représenter les
**règles métier**
dans les entités
-
Représenter les
**règles métier**
dans les entités
-
Avoir une API expressive
-
Avoir une API expressive
-
Respecter l'encapsulation
-
Respecter l'encapsulation
-
Séparer le
**domaine**
de l'infrastructure
-
Séparer le
**domaine**
de l'infrastructure
<span
style=
"font-size: 1.5em;"
>
❤️
</span>
Notes:
Notes:
-
Il existe d'autres architectures, cf le talk sur le clean code de Romain Kuzniak
-
Il existe d'autres architectures, cf le talk sur le clean code de Romain Kuzniak
...
@@ -326,10 +327,10 @@ class Article
...
@@ -326,10 +327,10 @@ class Article
}
}
```
```
<span
style=
"font-size:
3
em;color: red;"
>
❌
</span>
<span
style=
"font-size:
2
em;color: red;"
>
❌
</span>
---
---
##
#
tarifhaus/doctrine-nullable-embeddable
## tarifhaus/doctrine-nullable-embeddable
Nécessite un setter.
Nécessite un setter.
...
@@ -343,7 +344,30 @@ Nécessite un setter.
...
@@ -343,7 +344,30 @@ Nécessite un setter.
✨ _sisi, c'est possible_ ✨
✨ _sisi, c'est possible_ ✨
---
---
## Repository as a Service
## Repository as a Service: before
```
php
class
ArticleRepository
extends
EntityRepository
{
// your methods
}
```
```
yaml
app.infrastructure.doctrine.user_repository
:
class
:
App\Infrastructure\Doctrine\UserRepository
factory
:
[
"
@doctrine.orm.entity_manager"
,
getRepository
]
arguments
:
-
App\Model\User
```
```
[Doctrine\ORM\ORMException]
The EntityManager is closed.
```
---
## Repository as a Service: after
Depuis DoctrineBundle 1.8.0 (novembre 2017) :
Depuis DoctrineBundle 1.8.0 (novembre 2017) :
...
@@ -362,10 +386,12 @@ class ArticleRepository extends ServiceEntityRepository
...
@@ -362,10 +386,12 @@ class ArticleRepository extends ServiceEntityRepository
✔ Enregistrement en tant que service simple
✔ Enregistrement en tant que service simple
---
---
## L
es repositories
## L
'interface ServiceEntityRepositoryInterface
```
php
```
php
final
class
DoctrineArticleRepository
implements
ArticleRepositoryInterface
,
ServiceEntityRepositoryInterface
final
class
DoctrineArticleRepository
implements
ArticleRepositoryInterface
,
ServiceEntityRepositoryInterface
{
{
private
$entityManager
;
private
$entityManager
;
...
@@ -400,6 +426,8 @@ coup… slide suivant
...
@@ -400,6 +426,8 @@ coup… slide suivant
$repository
=
$entityManager
->
getRepository
(
Article
::
class
);
$repository
=
$entityManager
->
getRepository
(
Article
::
class
);
```
```
<span
style=
"font-size: 1.5em;"
>
👍
</span>
---
---
## Les repositories, ça peut grossir
## Les repositories, ça peut grossir
...
@@ -537,7 +565,7 @@ Note:
...
@@ -537,7 +565,7 @@ Note:
<!-- .slide
:
data-background="./iwantmore.gif" -->
<!-- .slide
:
data-background="./iwantmore.gif" -->
---
---
##
#
Quelle API pour interroger la base de données?
## Quelle API pour interroger la base de données
?
<table>
<table>
<tr>
<tr>
...
@@ -600,7 +628,7 @@ $comments = $query->getResult();
...
@@ -600,7 +628,7 @@ $comments = $query->getResult();
SQL + Objets
SQL + Objets
---
---
##
#
Les dépendances circulaires entre paquets
## Les dépendances circulaires entre paquets
Problème :
Problème :
...
@@ -621,14 +649,14 @@ doctrine:
...
@@ -621,14 +649,14 @@ doctrine:
```
```
---
---
# What's next
# What's next
?
---
---
# Support de MariaDB dans Doctrine 3
# Support de MariaDB dans Doctrine 3
---
---
<!-- .slide: data-background="./explosion2.gif" -->
<!-- .slide: data-background="./explosion2.gif" -->
# La configuration YAML est dépréciée
# La configuration
Doctrine
YAML est dépréciée
---
---
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment