East Website
Créer des sites web tout en suivant la philosophie #East programming.
Package, à utiliser avec East Foundation, pour implémenter un CMS basic pour pages dynamiques de différents types (et templates). Chaque élément publiable (pages / contenus et menus) sont traduisibles.
Ce package est également construit sur MongoDB (et Doctrine ODM) pour enregistrer tous les contenus, mais peut-être utilisé sur d'autres configurations. Le système de traduction provient de l'extension de Doctrine Gedmo, mais elle a été entièrement retravaillée et réécrite et incluse dans ce package (Gedmo n'est plus requis). Cette fonctionnalité est maintenant fournie grâce au package East Translation, inclus avec ce package.
Website est interopérable avec n'importe quel framework. Une interface d'administration est proposée avec Symfony 6.4+
Une implémentation avec Symfony est également proposée par défaut.
Fonctionnalités
MongoDb
Tous les contenus sont stockés sur MongoDb.
Symfony 6.4
Utilisable avec Symfony 6.4+.
PSR-11
Interopérable avec tout framework implémentant la recommandation PSR 11.
Extendable
Grâce à Recipe, peut être complété via la configuration de la DI.
Cloner le projet sur GitHub
Projet sous licence open source! Hébergé, développé et maintenu sur GitHub.
Voir le projet sur GitHub
Supporter le projet sur Patreon
Ce projet est logiciel libre et le restera, mais son développement a un coût. Si vous l'appréciez et si vous souhaitez nous aider à le maintenir et à le faire évoluer. N'hésitez pas à nous supporter sur Patreon.
Supporter le p[rojet
Exemple
//These operations are not reauired with teknoo/east-website-symfony //config/packages/di_bridge.yaml: di_bridge: compilation_path: '%kernel.project_dir%/var/cache/phpdi' definitions: - '%kernel.project_dir%/config/di.php' //config/packages/east_foundation.yaml: di_bridge: definitions: - '%kernel.project_dir%/vendor/teknoo/east-foundation/src/di.php' - '%kernel.project_dir%/vendor/teknoo/east-foundation/infrastructures/symfony/Resources/config/di.php' - '%kernel.project_dir%/vendor/teknoo/east-foundation/infrastructures/symfony/Resources/config/laminas_di.php' import: Psr\Log\LoggerInterface: 'logger' //config/packages/east_common_di.yaml: di_bridge: definitions: - '%kernel.project_dir%/vendor/teknoo/east-common/src/di.php' - '%kernel.project_dir%/vendor/teknoo/east-common/infrastructures/symfony/Resources/config/di.php' - '%kernel.project_dir%/vendor/teknoo/east-common/infrastructures/symfony/Resources/config/laminas_di.php' - '%kernel.project_dir%/vendor/teknoo/east-common/infrastructures/doctrine/di.php' - '%kernel.project_dir%/vendor/teknoo/east-common/infrastructures/di.php' import: Doctrine\Persistence\ObjectManager: 'doctrine_mongodb.odm.default_document_manager' //config/packages/east_website_di.yaml: di_bridge: definitions: - '%kernel.project_dir%/vendor/teknoo/east-website/src/di.php' - '%kernel.project_dir%/vendor/teknoo/east-website/infrastructures/doctrine/di.php' //bundles.php ... Teknoo\DI\SymfonyBridge\DIBridgeBundle::class => ['all' => true], Teknoo\East\FoundationBundle\EastFoundationBundle::class => ['all' => true], Teknoo\East\CommonBundle\TeknooEastCommonBundle::class => ['all' => true], Teknoo\East\WebsiteBundle\TeknooEastWebsiteBundle::class => ['all' => true], //In doctrine config (east_website_doctrine_mongodb.yaml) doctrine_mongodb: document_managers: default: auto_mapping: true mappings: TeknooEastCommon: type: 'xml' dir: '%kernel.project_dir%/vendor/teknoo/east-common/infrastructures/doctrine/config/universal' is_bundle: false prefix: 'Teknoo\East\Common\Object' TeknooEastWebsite: type: 'xml' dir: '%kernel.project_dir%/vendor/teknoo/east-website/infrastructures/doctrine/config/universal' is_bundle: false prefix: 'Teknoo\East\Website\Object' TeknooEastWebsiteDoctrine: type: 'xml' dir: '%kernel.project_dir%/vendor/teknoo/east-website/infrastructures/doctrine/config/doctrine' is_bundle: false prefix: 'Teknoo\East\Website\Doctrine\Object' //In security.yaml security: providers: with_password: id: 'Teknoo\East\CommonBundle\Provider\PasswordAuthenticatedUserProvider' password_hashers: Teknoo\East\CommonBundle\Object\PasswordAuthenticatedUser: algorithm: '%teknoo.east.common.bundle.password_authenticated_user_provider.default_algo%' //In routes/website.yaml admin_website: resource: '@TeknooEastWebsiteBundle/Resources/config/admin_routing.yaml' prefix: '/admin' admin_common: resource: '@TeknooEastCommonBundle/Resources/config/admin_routing.yaml' prefix: '/admin' website: resource: '@TeknooEastWebsiteBundle/Resources/config/routing.yaml'