getting started with sylius

51
Getting started with Sylius Paweł Ję drzejewski eZ International Days, 3rd June 2014 in Oslo, Norway

Upload: pawel-jedrzejewski

Post on 18-Nov-2014

1.234 views

Category:

Technology


0 download

DESCRIPTION

Introduction for the eZ Publish Community at eZ International Days in Oslo.

TRANSCRIPT

Page 1: Getting started with Sylius

Getting started with Sylius Paweł Jędrzejewski

eZ International Days, 3rd June 2014 in Oslo, Norway

Page 2: Getting started with Sylius

Who am I?Paweł Jędrzejewski

Huge beliver in Open Source

Creator of Sylius

BDD evangelist

!

Page 3: Getting started with Sylius
Page 4: Getting started with Sylius

ŁÓDŹ, POLAND

Page 5: Getting started with Sylius

?What is most important for developer’s productivity?

Page 6: Getting started with Sylius

Happiness!

Page 7: Getting started with Sylius

Happiness!

Page 8: Getting started with Sylius

A story about John THE PHP developer

Page 9: Getting started with Sylius

JOHN’s applications on the outside

Page 10: Getting started with Sylius

JOHN IS DEALING WITH that EVERY DAY

Page 11: Getting started with Sylius

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.

Page 12: Getting started with Sylius

?What is the answer?

Page 13: Getting started with Sylius

SyliusModern e-commerce for Symfony2

Page 14: Getting started with Sylius

What is sylius

• E-Commerce framework for PHP

• Set of bundles for Symfony2

• Platform based on Symfony2

Page 15: Getting started with Sylius

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

Page 16: Getting started with Sylius

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

Page 17: Getting started with Sylius

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

Page 18: Getting started with Sylius

?How does it look?

Page 19: Getting started with Sylius

administration interface

Page 20: Getting started with Sylius

Work in progress

Page 21: Getting started with Sylius

?What can you build using Sylius?

Page 22: Getting started with Sylius

sommelier-prive.de

Page 23: Getting started with Sylius

colorscience.com

Page 24: Getting started with Sylius

artlantis.com

Page 25: Getting started with Sylius

?What makes Sylius different?

Page 26: Getting started with Sylius

PROPER OBJECT ORIENTED PHP

• No singletons and static access all over the place

• Testable code

• Lack of magic

• DependencyInjection and many other design patterns

Page 27: Getting started with Sylius

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

Page 28: Getting started with Sylius

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

Page 29: Getting started with Sylius

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

Page 30: Getting started with Sylius

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

Page 31: Getting started with Sylius

Feature descriptions

Page 32: Getting started with Sylius

Executed on travis-ci.org

Page 33: Getting started with Sylius

Code quality

Page 34: Getting started with Sylius

Compared to „old” solutions

Page 35: Getting started with Sylius

?How to get started?

Page 36: Getting started with Sylius

Require a single component

$ composer require sylius/product:v0.10.0

<?php

!$product = new Product();

!$product

->setName(’T-Shirt’)

->setDescription(’Really cool t-shirt’)

;

Page 37: Getting started with Sylius

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

Page 38: Getting started with Sylius

DOCS.sylius.org

Page 39: Getting started with Sylius

Install Sylius app

$ composer create-project sylius/sylius -s dev

$ cd sylius

$ app/console sylius:install

Page 40: Getting started with Sylius

components and bundles

Page 41: Getting started with Sylius

Resource Layer

• Lives on top of Doctrine

• Extends and uses Doctrine Common Persistence interfaces

• Contains basic interfaces, like TimestampableInterface, SoftDeleteableInterface etc.

• Integrated through SyliusResourceBundle

Page 42: Getting started with Sylius

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

Page 43: Getting started with Sylius

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

Page 44: Getting started with Sylius

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

Page 45: Getting started with Sylius

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)

Page 46: Getting started with Sylius

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

Page 47: Getting started with Sylius

ez Publish + Sylius Can we work together?

Page 48: Getting started with Sylius

translate.sylius.org

Page 49: Getting started with Sylius

sylius.org

Page 50: Getting started with Sylius

@pjedrzejewski

@Sylius

!

pjedrzejewski.com

sylius.org

THANK YOU!

Page 51: Getting started with Sylius

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