![Page 1: Unleash your Symfony projects with eZ Platform](https://reader034.vdocuments.site/reader034/viewer/2022042605/58e735c31a28ab49038b479f/html5/thumbnails/1.jpg)
Unleash your Symfony project with eZ Platform
At @Cloudflare for @sf_php by @NovactiveSF
![Page 2: Unleash your Symfony projects with eZ Platform](https://reader034.vdocuments.site/reader034/viewer/2022042605/58e735c31a28ab49038b479f/html5/thumbnails/2.jpg)
![Page 3: Unleash your Symfony projects with eZ Platform](https://reader034.vdocuments.site/reader034/viewer/2022042605/58e735c31a28ab49038b479f/html5/thumbnails/3.jpg)
๏ Digital Consulting
๏ Web Development
๏ e-Commerce
๏ Web Marketing
๏ Mobile Apps
๏ CRM
๏ 21 year old company
๏ ~80 employees
๏ Open Source Specialists
๏ First eZ project in 2005
๏ First Symfony project 2012
![Page 4: Unleash your Symfony projects with eZ Platform](https://reader034.vdocuments.site/reader034/viewer/2022042605/58e735c31a28ab49038b479f/html5/thumbnails/4.jpg)
Let’s get started!
![Page 5: Unleash your Symfony projects with eZ Platform](https://reader034.vdocuments.site/reader034/viewer/2022042605/58e735c31a28ab49038b479f/html5/thumbnails/5.jpg)
Projects are getting complex
![Page 6: Unleash your Symfony projects with eZ Platform](https://reader034.vdocuments.site/reader034/viewer/2022042605/58e735c31a28ab49038b479f/html5/thumbnails/6.jpg)
Standards➡ Latest stable technology
➡ Scalable
➡ Performant
➡ Robust
➡ Secure
➡ Open Source
➡ Best practices
![Page 7: Unleash your Symfony projects with eZ Platform](https://reader034.vdocuments.site/reader034/viewer/2022042605/58e735c31a28ab49038b479f/html5/thumbnails/7.jpg)
➡ HTTP Foundation
➡ Request/Response
➡ Caching
➡ Dependency Injection Container
➡ Twig
➡ Event Dispatcher
➡ PSR
➡ Tests
➡ YAML for configuration
➡ HMVC
➡ Routing
➡ Forms
➡ Security
➡ Command
➡ Deployment
![Page 8: Unleash your Symfony projects with eZ Platform](https://reader034.vdocuments.site/reader034/viewer/2022042605/58e735c31a28ab49038b479f/html5/thumbnails/8.jpg)
How about features?
A framework does not provide any!
« Symfony is a set of PHP Components, a Web Application framework, a Philosophy, and a
Community — all working together in harmony. »
http://symfony.com
![Page 9: Unleash your Symfony projects with eZ Platform](https://reader034.vdocuments.site/reader034/viewer/2022042605/58e735c31a28ab49038b479f/html5/thumbnails/9.jpg)
–Bill Gates (1/3/1996)
“Content Is King.Content is where I expect much of the real money
will be made on the Internet, just as it was in broadcasting.”
![Page 10: Unleash your Symfony projects with eZ Platform](https://reader034.vdocuments.site/reader034/viewer/2022042605/58e735c31a28ab49038b479f/html5/thumbnails/10.jpg)
Features to manage Content
CRUDVersionning
Multilingual
Archive Multi websites
Media libraryUsers Permissions
Should we re develop all of them all the time?
Workflows WYSIWYG
![Page 11: Unleash your Symfony projects with eZ Platform](https://reader034.vdocuments.site/reader034/viewer/2022042605/58e735c31a28ab49038b479f/html5/thumbnails/11.jpg)
Content Management System
![Page 12: Unleash your Symfony projects with eZ Platform](https://reader034.vdocuments.site/reader034/viewer/2022042605/58e735c31a28ab49038b479f/html5/thumbnails/12.jpg)
Full-stack CMSYour project as a bundle Bundle 1 Bundle 2 Bundle 3
Symfony “full stack”
HTTP Foundation Routing HTTP FoundationRouting
Drupal
Your project
CMS with Components
Full stack / Components
![Page 13: Unleash your Symfony projects with eZ Platform](https://reader034.vdocuments.site/reader034/viewer/2022042605/58e735c31a28ab49038b479f/html5/thumbnails/13.jpg)
Advantages✓ A leading PHP framework
✓ Faster development by using any bundle in the ecosystem
✓ Standardization
✓ Reduce learning curve for developers
![Page 14: Unleash your Symfony projects with eZ Platform](https://reader034.vdocuments.site/reader034/viewer/2022042605/58e735c31a28ab49038b479f/html5/thumbnails/14.jpg)
Headless/DecoupledVersus Traditional
![Page 15: Unleash your Symfony projects with eZ Platform](https://reader034.vdocuments.site/reader034/viewer/2022042605/58e735c31a28ab49038b479f/html5/thumbnails/15.jpg)
Decoupled CMS
Separates the content creation process from the delivery process
![Page 16: Unleash your Symfony projects with eZ Platform](https://reader034.vdocuments.site/reader034/viewer/2022042605/58e735c31a28ab49038b479f/html5/thumbnails/16.jpg)
Headless CMSCONTENT
REPOSITORY
CONTENT CREATION
&CONTENT
MANAGEMENT
CUSTOMFRONT-ENDDELIVERYSYSTEM
APIs RAW CONTENT
HEADLESS CMS
Writer
Site Managers
Chief Editor
Graphic Designer
Translator
Content Consumers
Content Creators
JSON
CONTENTREPOSITORY
CONTENT CREATION
&CONTENT
MANAGEMENT
CUSTOMFRONT-ENDDELIVERYSYSTEM
APIs RAW CONTENT
HEADLESS CMS
Writer
Site Managers
Chief Editor
Graphic Designer
Translator
Content Consumers
Content Creators
JSON
Content creation, storage and delivery only—presentation not handled in the CMS
![Page 17: Unleash your Symfony projects with eZ Platform](https://reader034.vdocuments.site/reader034/viewer/2022042605/58e735c31a28ab49038b479f/html5/thumbnails/17.jpg)
Introducing eZ Platform
A “Symfony full-stack” CMS
![Page 18: Unleash your Symfony projects with eZ Platform](https://reader034.vdocuments.site/reader034/viewer/2022042605/58e735c31a28ab49038b479f/html5/thumbnails/18.jpg)
eZ History1999 - 2003 eZ Publish 2.x
2003 - 2008 eZ Publish 3.x
Simple PHP CMS
Flexible model, workflows , PHP 4, Templates etc.
2007 - 2012 eZ Publish 4.xPHP 5, 6-months release cycle, introduction of an Enterprise version
2012 - 2016 eZ Publish Platform Dual kernel, full Symfony stack and Legacy
End of 2016 eZ Platform Full Symfony stackPHP 7
![Page 19: Unleash your Symfony projects with eZ Platform](https://reader034.vdocuments.site/reader034/viewer/2022042605/58e735c31a28ab49038b479f/html5/thumbnails/19.jpg)
eZ Approach
CONTENTREPOSITORY
CONTENT CREATION
&CONTENT
MANAGEMENT
APIs
Writer
Chief Editor
Graphic Designer
Translator
ContentConsumers
HeadlessWay
Content Creators
RAW CONTENT
JSON
TEMPLATE-BASED
CONTENT&
PAGEMANAGEMENT
PAGES
CUSTOMFRONT-ENDDELIVERYSYSTEM
ContentConsumers
TraditionalWay
Content Authoring Content Delivery
Traditionalway
Headlessway
![Page 20: Unleash your Symfony projects with eZ Platform](https://reader034.vdocuments.site/reader034/viewer/2022042605/58e735c31a28ab49038b479f/html5/thumbnails/20.jpg)
eZ ArchitectureA Premiere Web Framework Clean, Separate and Stable APIsV
Fast and Scalable Storage Layer Best-in-Class Repository
![Page 21: Unleash your Symfony projects with eZ Platform](https://reader034.vdocuments.site/reader034/viewer/2022042605/58e735c31a28ab49038b479f/html5/thumbnails/21.jpg)
SolrEngine
Solr
eZ 5.4.5
SQLEngine
DB
Doctrine
IOHandler
FS
FlySystem
IOSearch
SQLStorageEngine
DB
Doctrine
FutureStora
EngineDB /
NOSQL
Cache Stash
PersistenceSPI
PHP Public API
Symfony
Rest API v2eZ Controllers/eZ Helpers
Your website
HTTP Cache (sf, Varnish, ..) FosHTTP cache
Plaftorm Admin UIUI: End users
UI: Admin and power users
PHP: HandlersDrivers
PHP: Bundles
Extensions
REST:WebserviceIntegration
CLI:DevelopersSysadmin
Users
CMS Business Logic (Symfony bundles)
![Page 22: Unleash your Symfony projects with eZ Platform](https://reader034.vdocuments.site/reader034/viewer/2022042605/58e735c31a28ab49038b479f/html5/thumbnails/22.jpg)
Basic Built-in Features✓ SiteAccess (multi websites)
✓ Multi Languages
✓ Content Types
✓ Content Versioning
✓ Semantic Content Model (Hierarchical Content Tree, associate relationships between content items, etc)
✓ Administration Interface
✓ REST API
✓ Workflows
✓ Roles and Permissions
![Page 23: Unleash your Symfony projects with eZ Platform](https://reader034.vdocuments.site/reader034/viewer/2022042605/58e735c31a28ab49038b479f/html5/thumbnails/23.jpg)
Separation of concernsNo design nor html in the database
Lorem ipsumLorem ipsum
Raw content Design Web page
![Page 24: Unleash your Symfony projects with eZ Platform](https://reader034.vdocuments.site/reader034/viewer/2022042605/58e735c31a28ab49038b479f/html5/thumbnails/24.jpg)
Data storageNo configuration in the database
eZ Platform
Database
File System
Lorem ipsum
Content Design Settings
Database
File System
TextStructureImagesFiles
HTML + CSSTemplates Yaml files
![Page 25: Unleash your Symfony projects with eZ Platform](https://reader034.vdocuments.site/reader034/viewer/2022042605/58e735c31a28ab49038b479f/html5/thumbnails/25.jpg)
Hierarchical organization
Content on one sideLocation on the other side
![Page 26: Unleash your Symfony projects with eZ Platform](https://reader034.vdocuments.site/reader034/viewer/2022042605/58e735c31a28ab49038b479f/html5/thumbnails/26.jpg)
Multiple locations capability
Contents Locations
Content ID: 30 Name: Home
Type: Landing Page
Content ID: 31 Name: AboutType: Article
Content ID: 32 Name: NewsType: Folder
Content ID: 33 Name: Company
Type: Folder
Location ID: 2Parent Location: 1
Content ID: 30
Location ID: 46Parent Location: 2
Content ID: 32
Location ID: 48Parent Location: 46
Content ID: 33
Location ID: 46Parent Location: 2
Content ID: 32
Location ID: 46Parent Location: 2
Content ID: 32
![Page 27: Unleash your Symfony projects with eZ Platform](https://reader034.vdocuments.site/reader034/viewer/2022042605/58e735c31a28ab49038b479f/html5/thumbnails/27.jpg)
SiteAccess✓ eZ Invention for DX
✓ Matches a certain URL to a specific combination of configurations
✓ http://example.co.uk/ || http://example.com/uk/ || http://uk.example.com/
✓ Mobile, Intranets, unlimited options!
![Page 28: Unleash your Symfony projects with eZ Platform](https://reader034.vdocuments.site/reader034/viewer/2022042605/58e735c31a28ab49038b479f/html5/thumbnails/28.jpg)
http://www.yourwebsite.com
Location ID: 2Parent Location: 1
Content ID: 30
Location ID: 46Parent Location: 2
Content ID: 32
Location ID: 48Parent Location: 46
Content ID: 33
Location ID: 46Parent Location: 2
Content ID: 32
Location ID: 46Parent Location: 2
Content ID: 32
http://www.yourwebsite.com/fr
http://sport.yourwebsite.comhttp://sport.yourwebsite.com/fr
SiteAccess
![Page 29: Unleash your Symfony projects with eZ Platform](https://reader034.vdocuments.site/reader034/viewer/2022042605/58e735c31a28ab49038b479f/html5/thumbnails/29.jpg)
VERSIONNING
+
MULTILANGUAGE
Element ValueContent ID 13
Name “SF PHP Meetup March 2017”Type Blog Post[…] […]
VersionsVersion Language Fields and values
1eng-US
Title: Meetup March 2017
Introduction: An intro
Body Todo
Version Language Fields and values
2eng-US
Title: SF PHP Meetup March 2017
Introduction: Welcome…
Body Today we are going to..
fre-FR
Titre: SF PHP Meetup Mars 2017
Introduction: Bienvenue…
Corps de l’article Aujourd’hui nous allons…
![Page 30: Unleash your Symfony projects with eZ Platform](https://reader034.vdocuments.site/reader034/viewer/2022042605/58e735c31a28ab49038b479f/html5/thumbnails/30.jpg)
Access Control Concepts
ROLE
USER GROUPUSER
POLICIES
Assigned to
is part of
Consists of
Assigned to
![Page 31: Unleash your Symfony projects with eZ Platform](https://reader034.vdocuments.site/reader034/viewer/2022042605/58e735c31a28ab49038b479f/html5/thumbnails/31.jpg)
Let’s install and do a first controller
Demo Time
![Page 32: Unleash your Symfony projects with eZ Platform](https://reader034.vdocuments.site/reader034/viewer/2022042605/58e735c31a28ab49038b479f/html5/thumbnails/32.jpg)
Installation
Composer Download Platform.sh
![Page 33: Unleash your Symfony projects with eZ Platform](https://reader034.vdocuments.site/reader034/viewer/2022042605/58e735c31a28ab49038b479f/html5/thumbnails/33.jpg)
Composer install$ curl -sS https://getcomposer.org/installer | php
$ docker run --rm --p 3333:3306 --name ezdbcontainer -e MYSQL_ROOT_PASSWORD=ezplatform mariadb:10.0
$ php -d memory_limit=-1 composer.phar create-project ezsystems/ezplatform
$ cd ezplatform
$ php app/console doctrine:database:create
$ php app/console ezplatform:install clean
$ SYMFONY_ENV=dev php app/console server:run
![Page 34: Unleash your Symfony projects with eZ Platform](https://reader034.vdocuments.site/reader034/viewer/2022042605/58e735c31a28ab49038b479f/html5/thumbnails/34.jpg)
Start
✓ PHP Storm: Install Symfony Plugin
✓ Create a bundle
✓ Create a route
✓ Use the eZ PHP API to fetch contents
![Page 35: Unleash your Symfony projects with eZ Platform](https://reader034.vdocuments.site/reader034/viewer/2022042605/58e735c31a28ab49038b479f/html5/thumbnails/35.jpg)
View System
![Page 36: Unleash your Symfony projects with eZ Platform](https://reader034.vdocuments.site/reader034/viewer/2022042605/58e735c31a28ab49038b479f/html5/thumbnails/36.jpg)
View System
{%extends layout %}
{%Controller/Action.html.twig %}
{%include OR render controller %}
![Page 37: Unleash your Symfony projects with eZ Platform](https://reader034.vdocuments.site/reader034/viewer/2022042605/58e735c31a28ab49038b479f/html5/thumbnails/37.jpg)
View System
View full
{%extends layout %}
![Page 38: Unleash your Symfony projects with eZ Platform](https://reader034.vdocuments.site/reader034/viewer/2022042605/58e735c31a28ab49038b479f/html5/thumbnails/38.jpg)
View System
View full
{{ title }}{{ description }}
View line
View line
View line
![Page 39: Unleash your Symfony projects with eZ Platform](https://reader034.vdocuments.site/reader034/viewer/2022042605/58e735c31a28ab49038b479f/html5/thumbnails/39.jpg)
View System
{{ title }}{{ description }}
View line
View line
View line
view block
view block
view block
View full
![Page 40: Unleash your Symfony projects with eZ Platform](https://reader034.vdocuments.site/reader034/viewer/2022042605/58e735c31a28ab49038b479f/html5/thumbnails/40.jpg)
View System
{{ title }}{{ description }}
View line
View line
View line
view block
view block
view block
View full ContentId: 12LocationId: 14
ContentId: 15LocationId: 21
ContentId: 45LocationId: 64
ContentId: 46LocationId: 65
ContentId: xxLocationId: xx
ContentId: xxLocationId: xx
ContentId: xxLocationId: xx
![Page 41: Unleash your Symfony projects with eZ Platform](https://reader034.vdocuments.site/reader034/viewer/2022042605/58e735c31a28ab49038b479f/html5/thumbnails/41.jpg)
Template selection# ezpublish/config/ezpublish.ymlezpublish: system: front_siteaccess: location_view: full: # A simple unique key for your matching ruleset folderRuleset: # The template identifier to load template: eZDemoBundle:full:folder.html.twig match: Identifier\ContentType: [folder]
![Page 42: Unleash your Symfony projects with eZ Platform](https://reader034.vdocuments.site/reader034/viewer/2022042605/58e735c31a28ab49038b479f/html5/thumbnails/42.jpg)
API RESThttp://127.0.0.1:8001/api/ezp/v2/content/objects/54
![Page 43: Unleash your Symfony projects with eZ Platform](https://reader034.vdocuments.site/reader034/viewer/2022042605/58e735c31a28ab49038b479f/html5/thumbnails/43.jpg)
ConclusionCustom Code
System
PHP
Symfony
eZ Platform
Business Logic </>
System
PHP
Symfony
Business Logic </>
CMS Features </>
System
PHP
Business Logic </>
CMS Features </>
Std Features </>
Custom PHP Symfony basedSymfony
eZ Platform based
![Page 44: Unleash your Symfony projects with eZ Platform](https://reader034.vdocuments.site/reader034/viewer/2022042605/58e735c31a28ab49038b479f/html5/thumbnails/44.jpg)
“Symfony makes it eZ”
Extend everything
![Page 45: Unleash your Symfony projects with eZ Platform](https://reader034.vdocuments.site/reader034/viewer/2022042605/58e735c31a28ab49038b479f/html5/thumbnails/45.jpg)
eZ Community
๏ > 50 000 referenced developers
๏ 300 000 declared installations
๏ > 600 Enterprise Edition actives
๏ Slack ~ 600 members for now
merging with the Symfony Community
![Page 46: Unleash your Symfony projects with eZ Platform](https://reader034.vdocuments.site/reader034/viewer/2022042605/58e735c31a28ab49038b479f/html5/thumbnails/46.jpg)
Thank you!https://twitter.com/NovactiveSFhttps://twitter.com/Plopix
https://www.facebook.com/NovactiveSFhttp://www.novactive.us
http://symfony.com
http://ezplatform.com
is a trademark of Fabien Potencier. All rights reserved.