際際滷

際際滷Share a Scribd company logo
Getting started with Sylius
Pawe Jdrzejewski
eZ International Days, 3rd June 2014 in Oslo, Norway
Who am I?
Pawe Jdrzejewski
Huge beliver in Open Source
Creator of Sylius
BDD evangelist
!
Getting started with Sylius
D店, POLAND
?What is most important for
developers productivity?
Happiness!
Happiness!
A story about John
THE PHP developer
JOHNs 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
 Work鍖ows, checkouts, installation wizards and multistep
actions
 Pricing component with customizable price calculators
(volume, regional, per custom group etc.)
 Settings system for easy con鍖guration 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.鍖ickr.com/photos/ilikespoons/8395923694/
https://www.鍖ickr.com/photos/kalexanderson/5421517469
https://www.鍖ickr.com/photos/woolamaloo_gazette/12822529314
https://www.鍖ickr.com/photos/dey/44559604
https://www.鍖ickr.com/photos/suckamc/8474229421
https://www.鍖ickr.com/photos/kwl/4247555680

More Related Content

Getting started with Sylius