East Website

Create PHP Website following the #East programming philosophy.


Package, to use with East Foundation, to implement a basic CMS able to manage page with several types of pages (and layout, categories (menus), images and user/author.

This package is also built on MongoDb (and Doctrine ODM) to persist all contents into a MongoDB database, but it can be configured to use other system.

The Frontend is framework free, and can be easily integrated with any framework. An administration panel is provided on Symfony 4.4+.

A default integration to Symfony is available.

This website is built on this package with Symfony 4.4.

...

Features


MongoDb

All dynamics contents are stored into a MongoDb.

sf

Symfony 4.4

Usable with Symfony 4.4+.

PSR-11

Interoperable with any framework implementing the PSR-11 recommendation.

Extendable

Thanks to Recipe, can be extendable only via the DI's configuration.

GitHub


Fork the project on GitHub

It is open source! It's hosted, developed, and maintained on GitHub by folks like you.


View GitHub Project

Patreon


Support this project on Patreon

This project is free and will remain free, but it is developed on my free time. If you like it and help me maintain it and evolve it, don't hesitate to support me on Patreon. Thanks :) Richard.


Support it

Example



<?php

//These operations are not reauired with teknoo/east-website-symfony

//config/packages/di_bridge.yaml:
di_bridge:
    
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'

//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'
    
'%kernel.project_dir%/vendor/teknoo/east-website/infrastructures/symfony/Resources/config/di.php'
    
'%kernel.project_dir%/vendor/teknoo/east-website/infrastructures/di.php'
    
import:
    
Doctrine\Persistence\ObjectManager'doctrine_mongodb.odm.default_document_manager'

//bundles.php
...
Teknoo\East\FoundationBundle\EastFoundationBundle::class => ['all' => true],
Teknoo\East\WebsiteBundle\TeknooEastWebsiteBundle::class => ['all' => true],
Teknoo\DI\SymfonyBridge\DIBridgeBundle::class => ['all' => true],

//In doctrine config
doctrine_mongodb:
    
document_managers:
    default:
        
auto_mappingtrue
        mappings
:
        
TeknooEastWebsite:
            
type'yml'
            
dir'%kernel.root_dir%/../vendor/teknoo/east-website/src/config/doctrine'
            
is_bundlefalse
            prefix
'Teknoo\East\Website\Object'

//In security.yml
security:
    
//..
    
providers:
    
main:
        
id'teknoo.east.website.bundle.user_provider'

//In routing.yml
website:
    
resource'@TeknooEastWebsiteBundle/Resources/config/routing.yml'