SlideShare ist ein Scribd-Unternehmen logo
1 von 51
Downloaden Sie, um offline zu lesen
Getting started with Sylius
Paweł Jędrzejewski
eZ International Days, 3rd June 2014 in Oslo, Norway
Who am I?
Paweł Jędrzejewski
Huge beliver in Open Source
Creator of Sylius
BDD evangelist
!
ŁÓDŹ, POLAND
?What is most important for
developer’s productivity?
Happiness!
Happiness!
A story about John
THE PHP developer
JOHN’s applications on the outside
JOHN IS DEALING WITH that EVERY DAY
Have you heard
about this new tool/
methodology called
ABC?
Yeah, I wish I could
use it in my XYZ
project, but it is not
compatible or used.
?What is the answer?
Sylius
Modern e-commerce for Symfony2
What is sylius
• E-Commerce framework for PHP
• Set of bundles for Symfony2
• Platform based on Symfony2
e-commerce framework for php
• Collection of decoupled components
• Usable with any PHP project
• Common E-Commerce patterns and domain
models implemented in „raw” PHP code
• Loosely integrated with other libraries
Set of bundles for symfony2
• Standalone Symfony2 bundles
• Every E-Commerce feature lives in a separate
package available through Composer
• Can be integrated into existing application
• Bundles as integration layers for Symfony
e-commerce symfony2 app
• Online-selling platform
• Can be used as a base for project or „as is”
• Integration with other Symfony2 app is possible and
easy
• Consists of two main bundles containing Core and
Web interface
?How does it look?
administration interface
Work in progress
?What can you build
using Sylius?
sommelier-prive.de
colorscience.com
artlantis.com
?What makes Sylius
different?
PROPER OBJECT ORIENTED PHP
• No singletons and static access all over the place
• Testable code
• Lack of magic
• DependencyInjection and many other design
patterns
vendors managed using composer
• All Sylius components, bundles and distributions
are available through Composer
• Sylius uses Composer to manage its dependencies
• No NIH allowed
• A lot of community libraries
Symfony as framework
• Sylius, just like eZ Publish, is built on top of full-
stack Symfony2
• Based on Standard Edition, should be familiar for
any Symfony developer
• Does not reinvent the wheel and shares part of
community
Doctrine as orm
• No ActiveRecord
• Fully featured ORM as the foundation for data
storage
• Whole data persistence hidden behind elegant
interfaces
• Potentially supports MongoDB and other platforms
Behavior DRIVEN DEVELOPMENT
• StoryBDD with Behat maintains high level of
communication quality among the community
• We communicate using examples
• Behat scenarios are executed as acceptance tests
automatically on every change
• SpecBDD using phpspec punishes us for any bad design
decision
• CodeQuality
Feature descriptions
Executed on travis-ci.org
Code quality
Compared to „old” solutions
?How to get started?
Require a single component
$ composer require sylius/product:v0.10.0
<?php
!
$product = new Product();
!
$product
->setName(’T-Shirt’)
->setDescription(’Really cool t-shirt’)
;
Install symfony2 bundle
$ composer require sylius/cart-bundle:v0.10.0
<?php
!
class FooController extends Controller
{
public function barAction()
{
$cart = $this->get(’sylius.cart_provider’)->getCart();
}
}
And follow the installation instructions from the documentation
DOCS.sylius.org
Install Sylius app
$ composer create-project sylius/sylius -s dev
$ cd sylius
$ app/console sylius:install
components and bundles
Resource Layer
• Lives on top of Doctrine
• Extends and uses Doctrine Common Persistence
interfaces
• Contains basic interfaces, like
TimestampableInterface,
SoftDeleteableInterface etc.
• Integrated through SyliusResourceBundle
Products Attributes and variations
Options and Variants
• Component and bundle for common entity
Attributes handling
• Processing of object variations using options
• Product integrates both Attributes and Variants
Orders and Carts
Sales and Shopping Cart
• Cart is an Order with appropriate state „checkout”
• Support of Adjustments for discounts and fees
• Order items can contain any type of object or plain
text, quantity and price
Other components and bundles
We have few of them
• Taxation with categorization and different calculators support
• Complex shipping management with different shipping methods
and cost calculators
• Inventory tracking with backorders support
• Promotions system with coupons, actions and custom rules
support
• Addresses management with geographical zones for precise
shipping and taxation rates
• Payum integration for payments
Okay, a bit more than „few”
More fun
• Workflows, checkouts, installation wizards and multistep
actions
• Pricing component with customizable price calculators
(volume, regional, per custom group etc.)
• Settings system for easy configuration via GUI
• Taxonomies for categorization of products
• Theming, Plugins, Reviews, Subscriptions, Multi-Channel
(coming soon)
What about content management?
Symfony CMF Integration
• Very basic integration with the CMF
• Simple content types and blocks
• Big plans to take this integration even further
ez Publish + Sylius
Can we work together?
translate.sylius.org
sylius.org
@pjedrzejewski
@Sylius
!
pjedrzejewski.com
sylius.org
THANK YOU!
Image Credits
https://www.flickr.com/photos/ilikespoons/8395923694/
https://www.flickr.com/photos/kalexanderson/5421517469
https://www.flickr.com/photos/woolamaloo_gazette/12822529314
https://www.flickr.com/photos/dey/44559604
https://www.flickr.com/photos/suckamc/8474229421
https://www.flickr.com/photos/kwl/4247555680

Weitere ähnliche Inhalte

Andere mochten auch

Andere mochten auch (7)

Développer avec le sylius resourcebundle (Symfony live Paris 2015)
Développer avec le sylius resourcebundle (Symfony live Paris 2015) Développer avec le sylius resourcebundle (Symfony live Paris 2015)
Développer avec le sylius resourcebundle (Symfony live Paris 2015)
 
Meetic Backend Mutation With Symfony
Meetic Backend Mutation With SymfonyMeetic Backend Mutation With Symfony
Meetic Backend Mutation With Symfony
 
Php spec en 5 minutes
Php spec en 5 minutesPhp spec en 5 minutes
Php spec en 5 minutes
 
Paris Job Talk
Paris Job TalkParis Job Talk
Paris Job Talk
 
Meetup scala paris user group - conflation like @ meetic
Meetup scala paris user group - conflation like @ meeticMeetup scala paris user group - conflation like @ meetic
Meetup scala paris user group - conflation like @ meetic
 
Software Design Patterns in Laravel by Phill Sparks
Software Design Patterns in Laravel by Phill SparksSoftware Design Patterns in Laravel by Phill Sparks
Software Design Patterns in Laravel by Phill Sparks
 
Transition Agile @ Meetic
Transition Agile @ MeeticTransition Agile @ Meetic
Transition Agile @ Meetic
 

Ähnlich wie Getting started with Sylius

Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®
Hannes Lowette
 
Model-driven and low-code development for event-based systems | Bobby Calderw...
Model-driven and low-code development for event-based systems | Bobby Calderw...Model-driven and low-code development for event-based systems | Bobby Calderw...
Model-driven and low-code development for event-based systems | Bobby Calderw...
HostedbyConfluent
 
Native OSGi, Modular Software Development in a Native World - Alexander Broek...
Native OSGi, Modular Software Development in a Native World - Alexander Broek...Native OSGi, Modular Software Development in a Native World - Alexander Broek...
Native OSGi, Modular Software Development in a Native World - Alexander Broek...
mfrancis
 
Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®
Hannes Lowette
 

Ähnlich wie Getting started with Sylius (20)

4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski
4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski
4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski
 
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket KnifePolyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
 
What we talk about when we talk about DevOps
What we talk about when we talk about DevOpsWhat we talk about when we talk about DevOps
What we talk about when we talk about DevOps
 
DevOps! What, Why and How?
DevOps! What, Why and How?DevOps! What, Why and How?
DevOps! What, Why and How?
 
Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®
 
The Developers World
The Developers WorldThe Developers World
The Developers World
 
Staging and Deployment
Staging and DeploymentStaging and Deployment
Staging and Deployment
 
Top 10 dev ops tools (1)
Top 10 dev ops tools (1)Top 10 dev ops tools (1)
Top 10 dev ops tools (1)
 
Handling 1 Billion Requests/hr with Minimal Latency Using Docker
Handling 1 Billion Requests/hr with Minimal Latency Using DockerHandling 1 Billion Requests/hr with Minimal Latency Using Docker
Handling 1 Billion Requests/hr with Minimal Latency Using Docker
 
Model-driven and low-code development for event-based systems | Bobby Calderw...
Model-driven and low-code development for event-based systems | Bobby Calderw...Model-driven and low-code development for event-based systems | Bobby Calderw...
Model-driven and low-code development for event-based systems | Bobby Calderw...
 
Native OSGi, Modular Software Development in a Native World - Alexander Broek...
Native OSGi, Modular Software Development in a Native World - Alexander Broek...Native OSGi, Modular Software Development in a Native World - Alexander Broek...
Native OSGi, Modular Software Development in a Native World - Alexander Broek...
 
Library automation software
Library automation softwareLibrary automation software
Library automation software
 
Mcroservices with docker kubernetes, goang and grpc, overview
Mcroservices with docker kubernetes, goang and grpc, overviewMcroservices with docker kubernetes, goang and grpc, overview
Mcroservices with docker kubernetes, goang and grpc, overview
 
Continuous delivery with open source tools
Continuous delivery with open source toolsContinuous delivery with open source tools
Continuous delivery with open source tools
 
Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®
 
What is SaaS vs Open Source | Open Source CMS (Content Management System) vs ...
What is SaaS vs Open Source | Open Source CMS (Content Management System) vs ...What is SaaS vs Open Source | Open Source CMS (Content Management System) vs ...
What is SaaS vs Open Source | Open Source CMS (Content Management System) vs ...
 
WordPress & Other Content Management Systems
WordPress & Other Content Management SystemsWordPress & Other Content Management Systems
WordPress & Other Content Management Systems
 
Domain Driven Design Ruby Ways - JURNAL 05/10/2017
Domain Driven Design Ruby Ways -  JURNAL 05/10/2017Domain Driven Design Ruby Ways -  JURNAL 05/10/2017
Domain Driven Design Ruby Ways - JURNAL 05/10/2017
 
Molecular content
Molecular contentMolecular content
Molecular content
 
Deployment is the new build
Deployment is the new buildDeployment is the new build
Deployment is the new build
 

Kürzlich hochgeladen

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Kürzlich hochgeladen (20)

presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 

Getting started with Sylius