Fab 29fe81737c Ajout de système de traduction / gallery / file manager | 3 år sedan | |
---|---|---|
Authenticator | 3 år sedan | |
Command | 3 år sedan | |
Controller | 3 år sedan | |
DependencyInjection | 3 år sedan | |
Entity/Translation | 3 år sedan | |
Event/EntityManager | 3 år sedan | |
EventSubscriber/Translation | 3 år sedan | |
Field | 3 år sedan | |
Form/Type | 3 år sedan | |
IModel | 3 år sedan | |
Manager | 3 år sedan | |
Model | 3 år sedan | |
Repository | 3 år sedan | |
Resources | 3 år sedan | |
LcAdminBundle.php | 3 år sedan | |
README.md | 3 år sedan | |
composer.json | 3 år sedan |
Administration basé sur EasyAdmin 3. Développé par la Clic!
Require :
Si tu démarres un nouveau projet il te suffit de cloner le projet : https://gitea.laclic.fr/Laclic/DefaultProjectSf5
Dans le dossier Lc/AdminBundle :
git clone https://gitea.laclic.fr/Laclic/AdminBundle.git .
Initialisation :
Création des entités de base, créer une entité User.php et File.php, ajouter dans la configuration de doctrine les lignes suivantes
doctrine:
orm:
resolve_target_entities:
Lc\AdminBundle\IModel\User\UserInterface: App\Entity\User
Lc\AdminBundle\IModel\Cms\FileInterface: App\Entity\File
#...
Instalation ckeditor
php bin/console ckeditor:install
php bin/console assets:install public
Enjoy !
Compare ton .gitignore avec le gitignore de DefaultProjectSf5 et ajoute les lignes manquantes
Modifier composer.json dans “autoload” ajouter :
"autoload": {
"psr-4": {
"App\\": "src/",
"Lc\\": "Lc/"
}
},
Dans le dossier config
de ton projet :
bundles.php
et ajouter :
Lc\AdminBundle\LcAdminBundle::class => ['all' => true],
services.yaml
et ajouter :
Lc\AdminBundle\:
resource: '../Lc/AdminBundle/'
exclude:
- '../Lc/AdminBundle/DependencyInjection/'
- '../Lc/AdminBundle/Entity/'
- '../Lc/AdminBundle/Kernel.php'
- '../Lc/AdminBundle/Tests/'
et
Lc\AdminBundle\Controller\:
resource: '../Lc/AdminBundle/Controller/'
tags: ['controller.service_arguments']
packages/security.yml
guard:
authenticators:
- Lc\AdminBundle\Authenticator\LoginFormAuthenticator
packages/doctrine.yaml
resolve_target_entities:
Lc\AdminBundle\IModel\User\UserInterface: App\Entity\User
routes.yaml
login:
path: /login
controller: Lc\AdminBundle\Controller\Admin\SecurityController::login
logout:
path: /logout
controller: Lc\AdminBundle\Admin\SecurityController::logout
Dans le dossier src/
de ton projet :
Controller/Admin/SecurityController.php
.Controller/Admin/AbstractCrudController.php
.Controller/Admin/DashboardController.php
.
````
use Lc\AdminBundle\Controller\Admin\DashboardController as LcDashboardController;
class DashboardController extends LcDashboardController { // … le code spécifique }
- Modifier l'en tête des controllers. Exemple `Controller/Admin/PageCrudController.php`.
use Lc\AdminBundle\Controller\Admin\AbstractCrudController;
class PageCrudController extends AbstractCrudController { // … le code spécifique }
- Modifier `Entity/User.php`.
<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM; use Lc\AdminBundle\IModel\User\UserInterface; use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity; use Lc\AdminBundle\Model\User\User as LcUserModel;
/**
@UniqueEntity(fields={“email”}, message=“There is already an account with this email”) */ class User extends LcUserModel implements UserInterface { /**
public function getId(): ?int {
return $this->id;
}
}
- Modifier les entités pour que les Use pointe dans AdminBundle exemple avec `Entity/Page.php`.
use Lc\AdminBundle\IModel\Cms\ImageInterface; use Lc\AdminBundle\Model\Cms\AbstractDocument; use Lc\AdminBundle\Model\Cms\ImageTrait;
/**
// … le code spécifique
}
- Modifier les repository pour qu'il fonctionne avec AdminBundle exemple avec `Repository/PageRepository.php.php`.
<?php
namespace App\Repository;
use App\Entity\Page; use Lc\AdminBundle\Repository\BaseRepository;
/**
@method Page[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) */ class PageRepository extends BaseRepository { public function getInterfaceClass() {
return Page::class;
}
// … le code spécifique }
- Supprimer `Repository/UserRepository.php.php`.
Sauf si il contient des fonctions autres que `__contruct()` et `upgradePassword-()`
Si c'est le cas le réécrire en faisant un extends de UserRepository dans AdminBundle
- Faire un `composer install`
- Tester l'application connectes toi à l'admin, édites un doc ou deux
- Si tout est ok tu peux supprimer les dossiers :
src/IModel/ src/Model/ src/Security/ src/Command/