East Common
Créer des sites web tout en suivant la philosophie #East programming.
Package pour fournir des outils pour créer des applications (webapp, site Web et wrokers) avec East Foundation. Il fournit une gestion des utilisateurs et des médias et fournit des services persistants et des services d'interrogation de bases de données agnostiques (prend actuellement en charge MongoDB et Doctrine ODM mais il est compatible avec Doctrine DBAL et ORM ou toute autre bibliothèque persistante)
Common prend également en charge le rendu des templates et de twig et fournit des outils pour faciliter la transmission des objets des Recipe aux vues. Des outils pour minifier sans webpack les assets à envoyer aux navigateurs (Javascript et CSS), pour éviter d'installer NPM sur un environnement PHP complet, sont également fournis dans ce package.
Common est sans framework et peut être facilement intégré à n'importe quel framework PSR 7. Un panneau d'administration est fourni sur Symfony 6.4+ et Recipe pour gérer tout objet persistant.
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.
Extensible
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 required with teknoo/east-common-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/doctrine/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/di.php' import: Doctrine\Persistence\ObjectManager: 'doctrine_mongodb.odm.default_document_manager' #bundles.php ... Teknoo\DI\SymfonyBridge\DIBridgeBundle::class => ['all' => true], Teknoo\East\FoundationBundle\EastFoundationBundle::class => ['all' => true], Teknoo\East\CommonBundle\TeknooEastCommonBundle::class => ['all' => true], #In doctrine config (east_common_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' TeknooEastCommonDoctrine: type: 'xml' dir: '%kernel.project_dir%/vendor/teknoo/east-common/infrastructures/doctrine/config/doctrine' is_bundle: false prefix: 'Teknoo\East\Common\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/common.yaml admin_common: resource: '@TeknooEastCommonBundle/Resources/config/admin_routing.yaml' prefix: '/admin' common: resource: '@TeknooEastCommonBundle/Resources/config/routing.yaml'