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.

Website illustration

Fonctionnalités


MongoDb

Tous les contenus sont stockés sur MongoDb.

sf

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.

GitHub


Cloner le projet sur GitHub

Projet sous licence open source! Hébergé, développé et maintenu sur GitHub.


Voir le projet sur GitHub

Patreon


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'