98 lines
3.3 KiB
Plaintext
98 lines
3.3 KiB
Plaintext
# Générer un CRUD dans Murph
|
|
|
|
* 2022-05-10 20:00:00
|
|
* Développement, Logiciel libre, Projets personnels
|
|
|
|
Murph est un **framework open-source pour construire des CMS**. Il est développé à l'aide de **Symfony** et permet de gérer des sites web avec **plusieurs noms de domaines et en plusieurs langues**.
|
|
|
|
Je vais entamer une
|
|
=> %7B%7Burl://blog_menu_search?page=1&tag=murph-tuto%7D%7D série de tutoriaux pour présenter les fonctionnalités de Murph
|
|
.
|
|
|
|
Cet article va pour expliquer comment utiliser Murph et générer des
|
|
=> https://developer.mozilla.org/fr/docs/Glossary/CRUD interfaces de CRUD
|
|
afin de créer, voir, mettre à jour et supprimer des entités.
|
|
|
|
Dans un premier temps, il faut créer une nouvelle entité `Example`. Si vous avez déjà réaliser cette opération, vous pouvez passer à l'étape suivante.
|
|
|
|
```{class="language-shell-session window"}
|
|
dev@project $ php bin/console make:entity Example
|
|
```
|
|
|
|
j'ai décidé d'ajouter ces attributs :
|
|
|
|
* `label` de type `string` obligatoire
|
|
* `content` de type `text` obligatoire
|
|
|
|
On doit maintenant éditer `App\Entity\Example` et implémenter l'interface `App\Core\Entity\EntityInterface` :
|
|
|
|
```{.language-php data-title="src/Entity/Example.php"}
|
|
<?php
|
|
|
|
namespace App\Entity;
|
|
|
|
use App\Core\Entity\EntityInterface;
|
|
use App\Repository\ExampleRepository;
|
|
use Doctrine\ORM\Mapping as ORM;
|
|
|
|
/**
|
|
* @ORM\Entity(repositoryClass=ExampleRepository::class)
|
|
*/
|
|
class Example implements EntityInterface
|
|
{
|
|
```
|
|
|
|
Puis il faut mettre à jour la base de données :
|
|
|
|
```{class="language-shell-session window"}
|
|
dev@project $ make doctrine-migration
|
|
```
|
|
|
|
Ensuite on va générer :
|
|
|
|
* le générateur de requête `App\Repository\ExampleRepositoryQuery`
|
|
* la fabrique `App\Factory\ExampleFactory`
|
|
* le formulaire d'édition `App\Form\ExampleType`
|
|
|
|
```{class="language-shell-session window"}
|
|
dev@project $ php bin/console make:repository-query ExampleRepository
|
|
dev@project $ php bin/console make:factory ExampleFactory Example
|
|
dev@project $ php bin/console make:form ExampleType Example
|
|
```
|
|
|
|
Générons à présent le CRUD :
|
|
|
|
```{class="language-shell-session window"}
|
|
dev@project $ php bin/console make:crud-controller \
|
|
ExampleAdminController \
|
|
Example \
|
|
ExampleRepositoryQuery \
|
|
ExampleFactory \
|
|
ExampleType
|
|
```
|
|
|
|
Enfin, ajoutons le lien dans le menu du backoffice :
|
|
|
|
```{.language-twig data-title="templates/admin/menu.html.twig"}
|
|
{{ include('@Core/admin/module/_menu_section.html.twig', {label: 'My section'}) }}
|
|
|
|
<ul class="nav flex-column">
|
|
{{ include('@Core/admin/module/_menu_item.html.twig', {
|
|
id: 'example',
|
|
label: 'Examples',
|
|
route: path('admin_example_index'),
|
|
icon: 'fa fa-pen'
|
|
}) }}
|
|
</ul>
|
|
```
|
|
|
|
…et c'est terminé !
|
|
|
|
Vous pouvez commencer à personnaliser le CRUD en modifiant `ExampleAdminController` et sa methode `getConfiguration`.
|
|
=> https://doc.murph-project.org/crud/configuration/ La documentation est ici
|
|
.
|
|
|
|
```html
|
|
<iframe title="Murph - Générer un CRUD dans Murph" src="https://peertube.fr/videos/embed/08422ab9-3ed8-4904-8b43-25a2aa7210f9" allowfullscreen="" sandbox="allow-same-origin allow-scripts allow-popups" style="aspect-ratio: 16 / 9; width: 100%; height: auto" frameborder="0"></iframe>
|
|
```
|