4developers 2015: sylius - e-commerce framework for php - pawel jedrzejewski

60
Sylius - E-Commerce for Symfony2 4Developers, 20th April 2015 in Warsaw, Poland

Upload: proidea

Post on 28-Jul-2015

81 views

Category:

Software


5 download

TRANSCRIPT

Page 1: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

Sylius - E-Commerce for Symfony2

4Developers, 20th April 2015 in Warsaw, Poland

Page 2: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

Paweł Jędrzejewski

Huge believer in Open Source

Creator of Sylius

Co-Founder

at

!

Page 3: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

!!!Open Source is Awesome.

Page 4: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

?What is Sylius?

Page 5: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

SyliusE-Commerce Platform for PHP

Page 6: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

197 Code contributors800,000+ Downloads

320+ Translatorsrunning in production

thousands of man-hours

Combined experience

Page 7: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

?Why new e-commerce?

Page 8: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski
Page 9: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

OLD PHP

MONOLITHIC

NOT Developer-friendlyUntesteble

hacky And pseudo-oop

Page 10: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski
Page 11: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

?How does it look?

Page 12: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

PROTOTYPE ALERT!

Page 13: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski
Page 14: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

RESPONSIVE BY DEFAULT!

Page 15: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

?What can you build using Sylius?

Page 16: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski
Page 17: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski
Page 18: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski
Page 19: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski
Page 20: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski
Page 21: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski
Page 22: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

You need to innovate, in order to compete.

Page 23: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

Innovation requires flexibility.

Page 24: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

?What makes Sylius different?

Page 25: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

sylius STACK

Sylius components

Sylius bundles

Sylius platform

Page 26: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

Sylius components

Sylius bundles

Sylius platform

sylius STACK

Page 27: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

components and bundles

Page 28: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

sylius e-Commerce toolset

Product Cart Order

Shipping Taxation Payment

Inventory Currency Pricing

Promotion Money Addressing

Page 29: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

sylius Generic toolset

Flow Settings Taxonomy

Resource Sequence Variation

Attribute Locale

Grid

Page 30: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

Sylius platform

Core Web Interface

Symfony Doctrine

CMF Payum

Page 31: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski
Page 32: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski
Page 33: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

Payum

Page 34: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

PayumPaypal Express Checkout

Paypal Pro Checkout

Paypal Rest

Stripe.js

Stripe Checkout

Authorize.Net AIM

Be2Bill CreditCard

Be2Bill Onsite

Payex

Page 35: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

PayumPaypal Express Checkout

Paypal Pro Checkout

Paypal Rest

Stripe.js

Stripe Checkout

Authorize.Net AIM

Be2Bill CreditCard

Be2Bill Onsite

Payex

Offline

Klarna Checkout

DineroMail

BitPay

Paydollar

PaylinkJustpay

TcomPayWay

Sagepay

Redsys

Page 36: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

PayumPaypal Express Checkout

Paypal Pro Checkout

Paypal Rest

Stripe.js

Stripe Checkout

Authorize.Net AIM

Be2Bill CreditCard

Be2Bill Onsite

Payex

Offline

Klarna Checkout

DineroMail

BitPay

Paydollar

PaylinkJustpay

TcomPayWay

Sagepay

Redsys

2Checkout

Authorize.Net

Buckaroo

CardSave

Dummy

eWAY

First Data

GoCardless

Manual

Page 37: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

Paypal Express Checkout

Paypal Pro Checkout

Paypal Rest

Stripe.js

Stripe Checkout

Authorize.Net AIM

Be2Bill CreditCard

Be2Bill Onsite

Payex

Offline

Klarna Checkout

DineroMail

BitPay

Paydollar

PaylinkJustpay

TcomPayWay

Sagepay

Redsys

2Checkout

Authorize.Net

Buckaroo

CardSave

Dummy

eWAY

First Data

GoCardless

Manual

Migs

Mollie

MultiSafepay

Netaxept (BBS)

Netbanx

Pacnet

PayFast

Payflow

PaymentExpress (DPS)

Page 38: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

CLEAN CODE

• Decoupled architecture

• DRY, SOLID, KISS

• Testable code

• DependencyInjection and many other design patterns

Page 39: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

Modern Foundation

• Symfony full-stack combined with tons of excellent libraries from the community

• Shares the platform with great projects like OroCRM, Akeneo PIM, Drupal, eZ Publish

• Built on the shoulders of the open source giants

Page 40: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski
Page 41: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

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 42: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

Feature descriptions

Page 43: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

Executed on travis-ci.org

Page 44: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

Code quality

Page 45: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

Compared to „old” solutions

Page 46: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

!!!Show me the code!

Page 47: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

<?php !namespace App\Bundle\CoreBundle\Entity; !use Doctrine\ORM\Mapping as ORM; use Sylius\Component\Core\Model\Product as BaseProduct; !/** * @ORM\Entity */ class Product extends BaseProduct { /** * @ORM\Column(type="decimal") */ private $fee; ! // Getters/setters. }

Page 48: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

$ app/console do:sc:up —force

# app/config.yml

!

sylius_product:

classes:

product:

model: App\Bundle\CoreBundle\Entity\Product

+

Page 49: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

<?php !namespace App\Bundle\CoreBundle\Form\Type; !use Sylius\Bundle\CoreBundle\Form\Type\ProductType as BaseProductType; use Symfony\Component\Form\FormBuilderInterface; !class ProductType extends BaseProductType { public function buildForm(FormBuilderInterface $builder, array $options) { parent::buildForm($builder, $options); ! $builder ->add('fee', 'percentage') ->remove('price') ; } }

Page 50: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

ENJOY!

# app/config.yml

!

sylius_product:

classes:

product:

model: App\Bundle\CoreBundle\Entity\Product

form: App\Bundle\CoreBundle\Form\Type\ProductType

+

Page 51: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

# app/config.yml

!

sylius_product:

classes:

product:

model: App\Bundle\CoreBundle\Entity\Product

controller: Your\Class

repository: Your\Class

form: App\Bundle\CoreBundle\Form\Type\ProductType

Page 52: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

?How to get started?

Page 53: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

Install SyliuS

$ composer create-project sylius/sylius -s dev

$ cd sylius

$ app/console sylius:install

$ composer create-project sylius/sylius-standard

or

Page 54: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

State of the union Sylius

• Components used in production in very complex apps

• Platform used in many live projects, but requires a lot of work and stabilization

• Documentation, documentation, documentation

• Better community support

Page 55: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

DOCS.sylius.org

Page 56: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

sylius.org

Page 57: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

326 issues & 87 PRs… Good or bad?

Page 58: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

github.com/sylius/sylius

Page 59: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

@pjedrzejewski

@Sylius

@Lakion

pjedrzejewski.com

sylius.org

lakion.com

THANK YOU!

Page 60: 4Developers 2015: Sylius - E-Commerce framework for PHP - Pawel Jedrzejewski

Image Creditshttps://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

https://www.flickr.com/photos/radekkolakowski/9107577859/