SlideShare ist ein Scribd-Unternehmen logo
1 von 153
Downloaden Sie, um offline zu lesen
PRESENTED BY
JOSHUA WARREN
PRESENTED AT
ZENDCON 2015
Magento 2
AN INTRODUCTION
TO A MODERN PHP-
BASED SYSTEM
JoshuaWarren.com
150 slides in ~50 minutes
lots of code
focus on the concepts,
download the slides later
#ZendCon
MY
EXPERIENCE
JoshuaWarren.com
My Experience
PHP Developer Since 1999
Founded Creatuity in 2008
Focused on the Magento platform
Magento 2 contributor
#ZendCon
JoshuaWarren.com
early adopter of both Magento 1
and Magento 2
#ZendCon
JoshuaWarren.com
Frequent Magento presenter
#ZendCon
JoshuaWarren.com
Led the Creatuity team in building
3 Magento 2 extensions (more on
the way!)
#ZendCon
JoshuaWarren.com
Already migrating a few
merchants from Magento 1 to
Magento 2
#ZendCon
JoshuaWarren.com
Wrote Writing the book on
Magento 2
#ZendCon
JoshuaWarren.com
Not a Magento employee, but
working closely with the
development, documentation &
product teams on Magento 2
#ZendCon
A BRIEF
HISTORY OF
MAGENTO
Photo courtesy of @YoavKutner
JoshuaWarren.com
Magento 1 development began in
2007 by Varien, a PHP development
agency.
#ZendCon
JoshuaWarren.com
A look at the state of the art when Magento 1 was built
PHP & Ecommerce in 2007
osCommerce is state of the art
Cloud-based / SaaS ecommerce doesn’t exist yet
PHP 5.2 is cutting-edge
Composer doesn’t exist - PHP has no dependency management
There’s this new thing called ZF, otherwise it’s Cake or Symfony
Testing? You might find a few people using PHPUnit
#ZendCon
JoshuaWarren.com
The Painful World of osCommerce
PHP & Ecommerce in 2007
Want to add an attribute? Modify your database schema on live.
Looking at add new features? Modify core PHP files.
Want to upgrade your store? Good luck!
#ZendCon
JoshuaWarren.com
Magento 1 was built to resolve the
pain points of osCommerce.
#ZendCon
JoshuaWarren.com
Designed to be more flexible and to
provide standardized ways to
customize the platform.
#ZendCon
JoshuaWarren.com
By 2010, Magento had been
downloaded 1.5 million times.
#ZendCon
JoshuaWarren.com
Attracted by Magento’s free, open-
source approach, hundreds of
thousands of sites were launched
using Magento 1
#ZendCon
JoshuaWarren.com
There’s just one problem…
#ZendCon
JoshuaWarren.com
Ecommerce development is hard.
#ZendCon
JoshuaWarren.com
Lightly documented ecommerce
development is even harder.
#ZendCon
JoshuaWarren.com
Varien, now known as Magento Inc,
is acquired by eBay in 2011.
#ZendCon
JoshuaWarren.com
Work begins on Magento 2 almost
immediately.
#ZendCon
JoshuaWarren.com
Now the most widely-used
eCommerce platform, powering over
250,000 sites, expectations are high
for the Magento 2 team.
#ZendCon
JoshuaWarren.com
Fewer than 30 commits are made to
Magento 2 in 2012.
#ZendCon
JoshuaWarren.com
Internal priorities continue to shift,
and finally at the end of 2014,
Magento 2 development is made
public on Github.
#ZendCon
JoshuaWarren.com
Magento commits to a release
schedule for Magento 2, and
announces the acceptance of pull
requests.
#ZendCon
JoshuaWarren.com
devdocs.magento.com launches with
significant documentation of
Magento 2.
#ZendCon
JoshuaWarren.com
Developer Beta is released in
December 2014; Merchant Beta in
July 2015
#ZendCon
JoshuaWarren.com
Production-ready release scheduled
for Q4 2015
#ZendCon
Timely Twitter Question!
JoshuaWarren.com #ZendCon
JoshuaWarren.com
Magento 2 team has committed to
quarterly releases. I’m targeting the
Q1 2016 release for more cautious
brands.
#ZendCon
Timely Twitter Answer about Q1 Release
JoshuaWarren.com #ZendCon
JoshuaWarren.com
A quick note for any Magento 1
developers in the audience…
#ZendCon
JoshuaWarren.com #ZendCon
JoshuaWarren.com
…for PHP developers new to
Magento.
#ZendCon
JoshuaWarren.com
PHP developers are learning
Magento 2 faster than many
Magento 1 developers.
#ZendCon
JoshuaWarren.com
Approach Magento 2 with a desire
to learn and understand the
underlying patterns.
#ZendCon
JoshuaWarren.com
Don’t approach Magento 2 with the
thought “how do I make my
Magento 1 code work here”
#ZendCon
JoshuaWarren.com
With that mind, let’s dive into
Magento 2…
#ZendCon
MAGENTO 2
github.com/magento/magento2
JoshuaWarren.com
Technologies
#ZendCon
JoshuaWarren.com #ZendCon
Composer
composer create-project magento/product-community-edition --stability="beta"
<installation directory name>
JoshuaWarren.com
Each Magento 2 module is a
separate Composer package
#ZendCon
JoshuaWarren.com
PSR-0 thru PSR-4
#ZendCon
JoshuaWarren.com
Testing built in from the start.
phpunit, selenium, JMeter, Jasmine
#ZendCon
JoshuaWarren.com
HTML5, CSS3, LESS CSS
Preprocessor, JQuery, RequireJS
#ZendCon
JoshuaWarren.com
Components from Zend
Framework 1, Zend Framework 2,
Symfony
#ZendCon
JoshuaWarren.com
Technical Architecture
#ZendCon
JoshuaWarren.com
Presentation Layer, Service Layer,
Domain Layer, Persistence Layer
#ZendCon
JoshuaWarren.com #ZendCon
JoshuaWarren.com
Presentation Layer - views,
literally and figuratively
#ZendCon
JoshuaWarren.com
Service Layer - an intermediary
between the presentation and
model layers
#ZendCon
JoshuaWarren.com
Service layer provides a stable,
backwards-compatible interface
and forms the foundation for
dependency injection.
#ZendCon
JoshuaWarren.com
Domain layer - business logic,
including models. Contains the
implementation of service
contracts.
#ZendCon
JoshuaWarren.com
Persistence Layer - resource
models that perform CRUD
operations on database tables.
#ZendCon
JoshuaWarren.com
Some models use a single table,
others continue to use the
Entity-Attribute-Value design
pattern used in Magento 1.
#ZendCon
JoshuaWarren.com
Design Patterns
#ZendCon
JoshuaWarren.com
Loose Coupling
#ZendCon
JoshuaWarren.com
Dependency Injection
#ZendCon
JoshuaWarren.com
Service Contracts
#ZendCon
JoshuaWarren.com
Interceptors
#ZendCon
JoshuaWarren.com
Semantic Versioning
#ZendCon
JoshuaWarren.com
Start your Magento 2 journey
learning the basics of these
design patterns
#ZendCon
DEPENDENCY
INJECTION
Sorry - no cool photo here, because I don’t like needles…
JoshuaWarren.com
DI is exactly what it sounds like -
injecting dependencies into the
objects that need them.
#ZendCon
JoshuaWarren.com
DI is designed to reduce
dependencies and promote loose
coupling
#ZendCon
JoshuaWarren.com
DI makes unit testing much easier
#ZendCon
JoshuaWarren.com
Magento 2 uses the Constructor
Injection pattern of DI
#ZendCon
JoshuaWarren.com
DI in Magento 2 is handled via XML
files
#ZendCon
JoshuaWarren.com #ZendCon
di.xml
<config xmlns:xsi=“[…]” xsi:noNamespaceSchemaLocation=“[…]”>

<virtualType name="MagentoSamplePaymentProviderBlockFormPayinstore"
type="MagentoPaymentBlockForm" shared="false">
<arguments>

<argument name="data" xsi:type="array">

<item name="template" xsi:type=“string">
Magento_SamplePaymentProvider::form/payinstore.phtml
</item>

</argument>

</arguments>

</virtualType>

</config>
INTERCEPTORS
JoshuaWarren.com
Plugin system based on the
interceptor pattern
#ZendCon
JoshuaWarren.com
Calls to almost any module can
be intercepted and altered
#ZendCon
JoshuaWarren.com
Vast improvement over the
rewrite pattern in Magento 1 - no
more rewrite conflicts
#ZendCon
JoshuaWarren.com #ZendCon
di.xml
<config>

<type name="{ObservedType}">

<plugin name="{pluginName}" type="{PluginClassName}" sortOrder="1" disabled="false"/>

</type>

</config>
JoshuaWarren.com
Sort order defines order if
multiple plugins intercept the
same item
#ZendCon
JoshuaWarren.com
Possible to intercept before,
after and around a function
#ZendCon
JoshuaWarren.com #ZendCon
‘Before’ Interceptor
class Plugin

{

public function beforeSetName(MagentoCatalogModelProduct $subject, $name)

{

return array('(' . $name . ')');

}

}
JoshuaWarren.com #ZendCon
‘After’ Interceptor
class Plugin

{

public function afterGetName(MagentoCatalogModelProduct $subject, $result)

{

return '|' . $result . '|';

}

}
JoshuaWarren.com #ZendCon
‘Around’ Interceptor
class Plugin

{

public function aroundSave(MagentoCatalogModelProduct $subject, Closure $proceed)

{

$this->doSomethingBeforeProductIsSaved();

$returnValue = $proceed();

if ($returnValue) {

$this->postProductToFacebook();

}

return $returnValue;

}

}
SERVICE
CONTRACTS
Credit to Allan MacGregor for the Soylent Green joke.
JoshuaWarren.com
Set of interfaces to define the public
API of a module
#ZendCon
JoshuaWarren.com
This API is the interface provided to
other modules to access its
implementation
#ZendCon
JoshuaWarren.com
Designed to hide business logic
behind a stable interface
#ZendCon
JoshuaWarren.com
Service contracts + semantic
versioning = minor releases will not
break existing code
#ZendCon
JoshuaWarren.com
@deprecated = will be removed
with the next major version release
#ZendCon
JoshuaWarren.com #ZendCon
CustomerRepositoryInterface.php


namespace MagentoCustomerApi;

/**

* Customer CRUD interface.

*/

interface CustomerRepositoryInterface

{

/**

* Create customer.

*

* @api

* @param MagentoCustomerApiDataCustomerInterface $customer

* @param string $passwordHash

* @return MagentoCustomerApiDataCustomerInterface

* @throws MagentoFrameworkExceptionInputException If bad input is provided

* @throws MagentoFrameworkExceptionStateInputMismatchException If the provided email is already used

* @throws MagentoFrameworkExceptionLocalizedException

*/

public function save(MagentoCustomerApiDataCustomerInterface $customer, $passwordHash = null);
JoshuaWarren.com #ZendCon
CustomerRepositoryInterface.php
/**

* Retrieve customer.

*

* @api

* @param string $email

* @param int|null $websiteId

* @return MagentoCustomerApiDataCustomerInterface

* @throws MagentoFrameworkExceptionNoSuchEntityException If customer with the specified email does not exist.

* @throws MagentoFrameworkExceptionLocalizedException

*/

public function get($email, $websiteId = null);

/**

* Retrieve customer.

*

* @api

* @param int $customerId

* @return MagentoCustomerApiDataCustomerInterface

* @throws MagentoFrameworkExceptionNoSuchEntityException If customer with the specified ID does not exist.

* @throws MagentoFrameworkExceptionLocalizedException

*/

public function getById($customerId);

JoshuaWarren.com
Service Contracts include Data
Interfaces and Service Interfaces
#ZendCon
JoshuaWarren.com
Data Interfaces return information
about data entities
#ZendCon
JoshuaWarren.com
Service Interfaces handle business
logic
#ZendCon
JoshuaWarren.com
Three types of service interfaces in
Magento 2 (so far)
#ZendCon
JoshuaWarren.com
Repository Interfaces provide access
to persistent data entities
#ZendCon
JoshuaWarren.com
CustomerRepositoryInterface,
AddressRepositoryInterface, etc.
#ZendCon
JoshuaWarren.com
Repository interfaces contain the
CRUD operations
#ZendCon
JoshuaWarren.com
Management interfaces contain
management functions not related
to repositories
#ZendCon
JoshuaWarren.com
Validators, createAccount,
changePassword, etc
#ZendCon
JoshuaWarren.com
Metadata interfaces provide meta
information - primarily about
custom attributes
#ZendCon
JoshuaWarren.com
Most service contracts are in the Api
folder - but not all. There are SPIs
annotated with @Api but in the
Model folder, not Api
#ZendCon
EXTENDING
MAGENTO 2
JoshuaWarren.com
Check out the Magento 2 sample
extensions - 12 official samples,
including 1 theme
#ZendCon
JoshuaWarren.com
Create your basic module file
structure
#ZendCon
JoshuaWarren.com #ZendCon
App/Code/<Vendor>/<Module>/
composer.json
etc/module.xml
Test/Unit/<tests go here>
JoshuaWarren.com #ZendCon
Composer.json
{
"name": "joshuaswarren/sample-module-minimal",
"description": "A minimal sample Magento 2 module",
"type": "magento2-module",
"version": "1.0.0",
"license": [
"OSL-3.0",
"AFL-3.0"
],
"require": {
"php": "~5.5.0|~5.6.0",
"magento/magento-composer-installer": "*"
},
"extra": {
"map": [
[
"*",
"joshuaswarren/SampleMinimal"
]
]
}
}
JoshuaWarren.com #ZendCon
etc/module.xml
<config>
<module name=“Joshuaswarren_SampleMinimal" setup_version="2.0.0">
</module>
</config>
JoshuaWarren.com #ZendCon
NEW! Registration.php
As of last week, Magento 2
modules need a registration.php
file - this allows modules to live
in vendor directory
JoshuaWarren.com #ZendCon
NEW! Registration.php
Thanks to Mage2.Pro for this reusable snippet
JoshuaWarren.com
Optional config files in etc:
acl.xml
config.xml
di.xml
webapi.xml
#ZendCon
JoshuaWarren.com
acl.xml defines new items for
Magento’s ACL system
#ZendCon
JoshuaWarren.com
Config.xml adds new
configuration options
#ZendCon
JoshuaWarren.com
Webapi.xml defines items to
expose via the REST or SOAP APIs
#ZendCon
JoshuaWarren.com
Optional subdirectories in etc:
adminhtml
frontend
webapi_rest
webapi_soap
#ZendCon
JoshuaWarren.com
Items in the main etc directory
apply globally to your extension
#ZendCon
JoshuaWarren.com
Items in the 4 subdirectories apply
only to that area - i.e., adminhtml
only applies to the Magento
backend
#ZendCon
JoshuaWarren.com
Optional subdirectories:
API
Block
Controller
Helper
Model
#ZendCon
JoshuaWarren.com
Optional subdirectories:
Plugin
Setup
Ui
i18n
view
#ZendCon
JoshuaWarren.com
API contains any new service
contracts your extension adds
#ZendCon
JoshuaWarren.com
Plugin contains any interceptors
your extension defines
#ZendCon
JoshuaWarren.com
UI is for Magento 2’s new Magento
UI library
#ZendCon
JoshuaWarren.com
I18n contains internationalization
files - CSV files defining the
translations for your strings
#ZendCon
JoshuaWarren.com
If your extension doesn’t need
one of these items, just omit that
folder
#ZendCon
JoshuaWarren.com
Sample: custom shipping method
to allow for in-store pickup from
several locations
#ZendCon
JoshuaWarren.com #ZendCon
Block/System/Config/Form/Field/Locations.php
namespace MagentoSampleShippingProviderBlockSystemConfigFormField;

use MagentoConfigBlockSystemConfigFormFieldFieldArrayAbstractFieldArray;

/**

* Backend system config array field renderer

*/

class Locations extends AbstractFieldArray

{

/**

* Initialise columns for 'Store Locations'

*

* @return void

*/

protected function _construct()

{

$this->addColumn('title',

['label' => __('Title'), 'class' => 'validate-no-empty validate-alphanum-with-spaces']);

$this->addColumn('street',

['label' => __('Street Address'), 'class' => 'validate-no-empty validate-alphanum-with-spaces']);

$this->addColumn('phone',

['label' => __('Phone Number'), 'class' => 'validate-no-empty validate-no-empty validate-phoneStrict']);

$this->addColumn('message',

['label' => __('Message'), 'class' => 'validate-no-empty']);

$this->_addAfter = false;

parent::_construct();

}

}
JoshuaWarren.com #ZendCon
Model/Type/Plugin/Onepage.php [1/2]
namespace MagentoSampleShippingProviderModelTypePlugin;

use MagentoCheckoutModelTypeOnepage as CheckoutOnePage;

use MagentoSampleShippingProviderModelCarrier;

/**

* Change Shipping Address to selected Store location address

*/

class Onepage

{

/**

* @var Carrier

*/

private $carrier;

/**

* @param Carrier $carrier

*/

public function __construct(Carrier $carrier)

{

$this->carrier = $carrier;

}

JoshuaWarren.com #ZendCon
Model/Type/Plugin/Onepage.php [2/2]
/**

* Replace shipping address with pickup location address

* @param CheckoutOnePage $subject

* @param array $result

* @return $this

*/

public function afterSaveShippingMethod(CheckoutOnePage $subject, array $result)

{

if ($result) {

return $result;

}

$quote = $subject->getQuote();

$shippingAddress = $quote->getShippingAddress();

$shippingMethod = $shippingAddress->getShippingMethod();

/**

* In-Store pickup selected

* Update Shipping Address

*/

if (strpos($shippingMethod, $this->carrier->getCarrierCode()) !== false) {

$locationAddress = $this->carrier->getLocationInfo($shippingMethod);

$shippingAddress->setCountryId($locationAddress['country_id']);

$shippingAddress->setRegionId($locationAddress['region_id']);

$shippingAddress->setPostcode($locationAddress['postcode']);

$shippingAddress->setCity($locationAddress['city']);

$shippingAddress->setStreet($locationAddress['street']);

$shippingAddress->setTelephone($locationAddress['phone']);

}

return $result;

}

}
JoshuaWarren.com #ZendCon
Model/Carrier.php
namespace MagentoSampleShippingProviderModel;

use PsrLogLoggerInterface;

use MagentoFrameworkAppConfigScopeConfigInterface;

use MagentoStoreModelScopeInterface;

use MagentoShippingModelCarrierAbstractCarrier;

use MagentoShippingModelCarrierCarrierInterface;

use MagentoShippingModelConfig;

use MagentoShippingModelRateResultFactory;

use MagentoQuoteModelQuoteAddressRateResultMethodFactory;

use MagentoQuoteModelQuoteAddressRateResultErrorFactory;

/**

* In-Store Pickup shipping model

*/

class Carrier extends AbstractCarrier implements CarrierInterface

{

/**

* @var string

*/

protected $_code = 'storepickup';

/**

* @var bool

*/

protected $_isFixed = true;
… see https://github.com/magento/magento2-samples/blob/master/sample-module-shipping-provider/Model/Carrier.php 

JoshuaWarren.com
model/carrier.php contains all of
the functions a shipping carrier
must have in Magento 2
#ZendCon
JoshuaWarren.com
GetAllowedMethods
CollectRates
GetLocationInfo
BuildRateForLocation
GetLocations
GetShippingOrigin
#ZendCon
JoshuaWarren.com #ZendCon
Etc/Adminhtml/System.xml
<system>

<section id="carriers">

<group id="storepickup" translate="label" type="text" sortOrder="10" showInDefault="1" showInWebsite="1" showInStore="1">

<label>In-Store Pickup</label>

<field id="active" translate="label" type="select" sortOrder="1" showInDefault="1" showInWebsite="1" showInStore="1">

<label>Enabled</label>

<source_model>MagentoConfigModelConfigSourceYesno</source_model>

<comment>

<![CDATA[<strong style="color:red">Warning</strong>: Shipping Origin should be configured to use this method.]]>

</comment>

</field>

<field id="title" translate="label" type="text" sortOrder="2" showInDefault="1" showInWebsite="1" showInStore="1">

<label>Title</label>

</field>

[…]
JoshuaWarren.com #ZendCon
Etc/Frontend/di.xml
<config xmlns:xsi=“[…]” xsi:noNamespaceSchemaLocation=“[…]”>

<type name="MagentoSampleShippingProviderModelTypePluginOnepage"/>

<type name="MagentoCheckoutModelTypeOnepage">

<plugin name="change_shipping_address" type="MagentoSampleShippingProviderModelTypePluginOnepage"/>

</type>

</config>
JoshuaWarren.com #ZendCon
Etc/Module.xml
<config xmlns:xsi=“[…]” xsi:noNamespaceSchemaLocation=“[…]”>

<module name="Magento_SampleShippingProvider" setup_version="2.0.0">

</module>

</config>
JoshuaWarren.com #ZendCon
Composer.json
{
"name": "magento/sample-module-shipping-provider",
"description": "Demonstrate Shipping Provider",
"type": "magento2-module",
"version": "1.0.0",
"license": [
"OSL-3.0",
"AFL-3.0"
],
"require": {
"php": "~5.5.0|~5.6.0",
"magento/magento-composer-installer": "*",
"magento/framework": "~0.74",
"magento/module-store": "~0.74",
"magento/module-shipping": "~0.74",
"magento/module-quote": "~0.74",
"magento/module-checkout": "~0.74"
},
"extra": {
"map": [
[
"*",
"Magento/SampleShippingProvider"
]
]
}
}
JoshuaWarren.com
We now have a complete,
functioning in-store-pickup
shipping extension for Magento 2
#ZendCon
JoshuaWarren.com
Take a look at the Test/Unit
directory on Github for tests for
this extension
#ZendCon
JoshuaWarren.com
Magento 2 unit testing includes
mocking, fixtures, etc. -
everything you need for TDD
#ZendCon
JoshuaWarren.com
Dev Docs includes a great ‘How
Do I’ on the Magento Testing
Framework and testing in
Magento 2
#ZendCon
LEARNING
MORE
Don’t end up like this guy ->
JoshuaWarren.com
devdocs.magento.com - ‘How Do I?’
magento.stackexchange.com/questions/tagged/magento2
https://github.com/magento/magento2-samples
#ZendCon
Dev Docs
Team of hard-working technical writers (not developers)
Writing documentation for a system that has yet to be used ‘in
the wild’
Very eager for feedback and input - they don’t know what
documentation you need
Very open to pull requests of documentation or just open an
issue on Github with feedback + requests
JoshuaWarren.com #ZendCon
JoshuaWarren.com
Magento U Courses
Fundamentals of Magento 2 Development
Front-end Course
#ZendCon
JoshuaWarren.com
AlanStorm.com
AlanKent.me
CoderOnCode.com
github.com/creatuity/LearningMagento2
#ZendCon
JoshuaWarren.com
Upcoming events:
php[world] - November 2015
Magento Imagine - April 2016
#ZendCon
JoshuaWarren.com
As a freelancer…
Learning Magento 2
Set aside time in your week to learn the design patterns Magento 2 uses
Work through the sample code the Magento 2 team has provided
Begin experimenting with developing with Magento 2
Do not try to learn ‘on the job’ - be careful accepting M2 work before you’re ready
#ZendCon
JoshuaWarren.com
As an in-house developer for a merchant…
Learning Magento 2
Determine when your business is likely to migrate to Magento 2
First 2-4 weeks of your Magento 2 migration schedule should be learning Magento 2
Learn the patterns before you start!
#ZendCon
JoshuaWarren.com
As an agency or industry partner…
Learning Magento 2
Create a tiger team of developers focused on Magento 2
Allow those developers time in the day to learn Magento 2
Those developers should implement your first Magento 2 projects
That team then helps the rest of your team through the learning curve
#ZendCon
JoshuaWarren.com
When do I need to be Magento 2 ready?
Learning Magento 2
Magento 2 will be released late enough in the year that most
merchants won’t begin using it immediately.
Merchants will also wait until their mission-critical extensions are
available on Magento 2.
Start learning it now - but don’t panic!
#ZendCon
JoshuaWarren.com
Programming With Magento 2 coming to
amazon.com & phparch.com
#ZendCon
Keep in
Touch!
@JoshuaSWarren
JoshuaWarren.com
Mage2DevBook.com
joind.in/15597
JoshuaWarren.com #ZendCon

Weitere ähnliche Inhalte

Was ist angesagt?

Magento 2 Performance: Every Second Counts
Magento 2 Performance: Every Second CountsMagento 2 Performance: Every Second Counts
Magento 2 Performance: Every Second CountsJoshua Warren
 
MidwestPHP - Getting Started with Magento 2
MidwestPHP - Getting Started with Magento 2MidwestPHP - Getting Started with Magento 2
MidwestPHP - Getting Started with Magento 2Mathew Beane
 
Imagine recap-devhub
Imagine recap-devhubImagine recap-devhub
Imagine recap-devhubMagento Dev
 
How To Install Magento 2 (updated for the latest version)
How To Install Magento 2 (updated for the latest version)How To Install Magento 2 (updated for the latest version)
How To Install Magento 2 (updated for the latest version)Magestore
 
Magento 2 Design Patterns
Magento 2 Design PatternsMagento 2 Design Patterns
Magento 2 Design PatternsMax Pronko
 
Madison PHP - Getting Started with Magento 2
Madison PHP - Getting Started with Magento 2Madison PHP - Getting Started with Magento 2
Madison PHP - Getting Started with Magento 2Mathew Beane
 
Magento 2 Development Best Practices
Magento 2 Development Best PracticesMagento 2 Development Best Practices
Magento 2 Development Best PracticesBen Marks
 
Sergii Shymko: Magento 2: Composer for Extensions Distribution
Sergii Shymko: Magento 2: Composer for Extensions DistributionSergii Shymko: Magento 2: Composer for Extensions Distribution
Sergii Shymko: Magento 2: Composer for Extensions DistributionMeet Magento Italy
 
Your First Magento 2 Module
Your First Magento 2 ModuleYour First Magento 2 Module
Your First Magento 2 ModuleBen Marks
 
Oleh Kobchenko - Configure Magento 2 to get maximum performance
Oleh Kobchenko - Configure Magento 2 to get maximum performanceOleh Kobchenko - Configure Magento 2 to get maximum performance
Oleh Kobchenko - Configure Magento 2 to get maximum performanceMeet Magento Italy
 
How to create theme in Magento 2 - Part 2
How to create theme in Magento 2 - Part 2How to create theme in Magento 2 - Part 2
How to create theme in Magento 2 - Part 2Magestore
 
Max Yekaterynenko: Magento 2 overview
Max Yekaterynenko: Magento 2 overviewMax Yekaterynenko: Magento 2 overview
Max Yekaterynenko: Magento 2 overviewMeet Magento Italy
 
The journey of mastering Magento 2 for Magento 1 developers
The journey of mastering Magento 2 for Magento 1 developersThe journey of mastering Magento 2 for Magento 1 developers
The journey of mastering Magento 2 for Magento 1 developersGabriel Guarino
 
How to Install Magento 2 [Latest Version]
How to Install Magento 2 [Latest Version]How to Install Magento 2 [Latest Version]
How to Install Magento 2 [Latest Version]M-Connect Media
 
Max Yekaterinenko - Magento 2 & Quality
Max Yekaterinenko - Magento 2 & QualityMax Yekaterinenko - Magento 2 & Quality
Max Yekaterinenko - Magento 2 & QualityMeet Magento Italy
 
Hyvä: Compatibility Modules
Hyvä: Compatibility ModulesHyvä: Compatibility Modules
Hyvä: Compatibility Modulesvinaikopp
 
Sergii Shymko - Code migration tool for upgrade to Magento 2
Sergii Shymko - Code migration tool for upgrade to Magento 2Sergii Shymko - Code migration tool for upgrade to Magento 2
Sergii Shymko - Code migration tool for upgrade to Magento 2Meet Magento Italy
 
A Successful Magento Project From Design to Deployment
A Successful Magento Project From Design to DeploymentA Successful Magento Project From Design to Deployment
A Successful Magento Project From Design to DeploymentJoshua Warren
 

Was ist angesagt? (20)

Magento 2 Performance: Every Second Counts
Magento 2 Performance: Every Second CountsMagento 2 Performance: Every Second Counts
Magento 2 Performance: Every Second Counts
 
MidwestPHP - Getting Started with Magento 2
MidwestPHP - Getting Started with Magento 2MidwestPHP - Getting Started with Magento 2
MidwestPHP - Getting Started with Magento 2
 
Imagine recap-devhub
Imagine recap-devhubImagine recap-devhub
Imagine recap-devhub
 
How To Install Magento 2 (updated for the latest version)
How To Install Magento 2 (updated for the latest version)How To Install Magento 2 (updated for the latest version)
How To Install Magento 2 (updated for the latest version)
 
Magento 2 Design Patterns
Magento 2 Design PatternsMagento 2 Design Patterns
Magento 2 Design Patterns
 
Madison PHP - Getting Started with Magento 2
Madison PHP - Getting Started with Magento 2Madison PHP - Getting Started with Magento 2
Madison PHP - Getting Started with Magento 2
 
Magento 2 Development Best Practices
Magento 2 Development Best PracticesMagento 2 Development Best Practices
Magento 2 Development Best Practices
 
Sergii Shymko: Magento 2: Composer for Extensions Distribution
Sergii Shymko: Magento 2: Composer for Extensions DistributionSergii Shymko: Magento 2: Composer for Extensions Distribution
Sergii Shymko: Magento 2: Composer for Extensions Distribution
 
Your First Magento 2 Module
Your First Magento 2 ModuleYour First Magento 2 Module
Your First Magento 2 Module
 
Oleh Kobchenko - Configure Magento 2 to get maximum performance
Oleh Kobchenko - Configure Magento 2 to get maximum performanceOleh Kobchenko - Configure Magento 2 to get maximum performance
Oleh Kobchenko - Configure Magento 2 to get maximum performance
 
How to create theme in Magento 2 - Part 2
How to create theme in Magento 2 - Part 2How to create theme in Magento 2 - Part 2
How to create theme in Magento 2 - Part 2
 
Outlook on Magento 2
Outlook on Magento 2Outlook on Magento 2
Outlook on Magento 2
 
12 Amazing Features of Magento 2
12 Amazing Features of Magento 212 Amazing Features of Magento 2
12 Amazing Features of Magento 2
 
Max Yekaterynenko: Magento 2 overview
Max Yekaterynenko: Magento 2 overviewMax Yekaterynenko: Magento 2 overview
Max Yekaterynenko: Magento 2 overview
 
The journey of mastering Magento 2 for Magento 1 developers
The journey of mastering Magento 2 for Magento 1 developersThe journey of mastering Magento 2 for Magento 1 developers
The journey of mastering Magento 2 for Magento 1 developers
 
How to Install Magento 2 [Latest Version]
How to Install Magento 2 [Latest Version]How to Install Magento 2 [Latest Version]
How to Install Magento 2 [Latest Version]
 
Max Yekaterinenko - Magento 2 & Quality
Max Yekaterinenko - Magento 2 & QualityMax Yekaterinenko - Magento 2 & Quality
Max Yekaterinenko - Magento 2 & Quality
 
Hyvä: Compatibility Modules
Hyvä: Compatibility ModulesHyvä: Compatibility Modules
Hyvä: Compatibility Modules
 
Sergii Shymko - Code migration tool for upgrade to Magento 2
Sergii Shymko - Code migration tool for upgrade to Magento 2Sergii Shymko - Code migration tool for upgrade to Magento 2
Sergii Shymko - Code migration tool for upgrade to Magento 2
 
A Successful Magento Project From Design to Deployment
A Successful Magento Project From Design to DeploymentA Successful Magento Project From Design to Deployment
A Successful Magento Project From Design to Deployment
 

Ähnlich wie Magento 2 - An Intro to a Modern PHP-Based System - ZendCon 2015

Rock-solid Magento Deployments (and Development)
Rock-solid Magento Deployments (and Development)Rock-solid Magento Deployments (and Development)
Rock-solid Magento Deployments (and Development)AOE
 
Rock-solid Magento Development and Deployment Workflows
Rock-solid Magento Development and Deployment WorkflowsRock-solid Magento Development and Deployment Workflows
Rock-solid Magento Development and Deployment WorkflowsAOE
 
Jan Burkl - Zend & Magento
Jan Burkl - Zend & MagentoJan Burkl - Zend & Magento
Jan Burkl - Zend & MagentoGuido X Jansen
 
What is jenkins
What is jenkinsWhat is jenkins
What is jenkinslinuxdady
 
High Stakes Continuous Delivery in the Real World #OpenWest
High Stakes Continuous Delivery in the Real World #OpenWestHigh Stakes Continuous Delivery in the Real World #OpenWest
High Stakes Continuous Delivery in the Real World #OpenWestJoshua Warren
 
Long life to vagrant… Vagrant is dead
Long life to vagrant… Vagrant is deadLong life to vagrant… Vagrant is dead
Long life to vagrant… Vagrant is deadFederico Panini
 
Composer for Magento 1.x and Magento 2
Composer for Magento 1.x and Magento 2Composer for Magento 1.x and Magento 2
Composer for Magento 1.x and Magento 2Sergii Shymko
 
Zepplin_Pronko_Magento_Festival Hall 1_Final
Zepplin_Pronko_Magento_Festival Hall 1_FinalZepplin_Pronko_Magento_Festival Hall 1_Final
Zepplin_Pronko_Magento_Festival Hall 1_FinalMax Pronko
 
Continuous Integration and Deployment Patterns for Magento
Continuous Integration and Deployment Patterns for MagentoContinuous Integration and Deployment Patterns for Magento
Continuous Integration and Deployment Patterns for MagentoAOE
 
Edmonds Commerce Magento Presentation
Edmonds Commerce Magento PresentationEdmonds Commerce Magento Presentation
Edmonds Commerce Magento PresentationEdmonds Commerce
 
Fun with Jenkins & Salesforce
Fun with Jenkins & SalesforceFun with Jenkins & Salesforce
Fun with Jenkins & SalesforceAbhinav Gupta
 
Magento 2 Best Practice MLUK17
Magento 2 Best Practice MLUK17Magento 2 Best Practice MLUK17
Magento 2 Best Practice MLUK17Brent W Peterson
 
Modern Web Application Development Workflow - EclipseCon Europe 2014
Modern Web Application Development Workflow - EclipseCon Europe 2014Modern Web Application Development Workflow - EclipseCon Europe 2014
Modern Web Application Development Workflow - EclipseCon Europe 2014Stéphane Bégaudeau
 
Mobile Apps with PhoneGap and jQuery Mobile
Mobile Apps with PhoneGap and jQuery MobileMobile Apps with PhoneGap and jQuery Mobile
Mobile Apps with PhoneGap and jQuery MobileTerry Ryan
 
Modern Web Application Development Workflow - EclipseCon US 2014
Modern Web Application Development Workflow - EclipseCon US 2014Modern Web Application Development Workflow - EclipseCon US 2014
Modern Web Application Development Workflow - EclipseCon US 2014Stéphane Bégaudeau
 
Introduction to Magento 2 module development - PHP Antwerp Meetup 2017
Introduction to Magento 2 module development - PHP Antwerp Meetup 2017Introduction to Magento 2 module development - PHP Antwerp Meetup 2017
Introduction to Magento 2 module development - PHP Antwerp Meetup 2017Joke Puts
 
A Gentle introduction to Web Development & Django
A Gentle introduction to Web Development & DjangoA Gentle introduction to Web Development & Django
A Gentle introduction to Web Development & DjangoPRASANNAVENK
 

Ähnlich wie Magento 2 - An Intro to a Modern PHP-Based System - ZendCon 2015 (20)

Rock-solid Magento Deployments (and Development)
Rock-solid Magento Deployments (and Development)Rock-solid Magento Deployments (and Development)
Rock-solid Magento Deployments (and Development)
 
Rock-solid Magento Development and Deployment Workflows
Rock-solid Magento Development and Deployment WorkflowsRock-solid Magento Development and Deployment Workflows
Rock-solid Magento Development and Deployment Workflows
 
Jan Burkl - Zend & Magento
Jan Burkl - Zend & MagentoJan Burkl - Zend & Magento
Jan Burkl - Zend & Magento
 
What is jenkins
What is jenkinsWhat is jenkins
What is jenkins
 
Magento 2 development
Magento 2 developmentMagento 2 development
Magento 2 development
 
Magento++
Magento++Magento++
Magento++
 
High Stakes Continuous Delivery in the Real World #OpenWest
High Stakes Continuous Delivery in the Real World #OpenWestHigh Stakes Continuous Delivery in the Real World #OpenWest
High Stakes Continuous Delivery in the Real World #OpenWest
 
Long life to vagrant… Vagrant is dead
Long life to vagrant… Vagrant is deadLong life to vagrant… Vagrant is dead
Long life to vagrant… Vagrant is dead
 
Composer for Magento 1.x and Magento 2
Composer for Magento 1.x and Magento 2Composer for Magento 1.x and Magento 2
Composer for Magento 1.x and Magento 2
 
Zepplin_Pronko_Magento_Festival Hall 1_Final
Zepplin_Pronko_Magento_Festival Hall 1_FinalZepplin_Pronko_Magento_Festival Hall 1_Final
Zepplin_Pronko_Magento_Festival Hall 1_Final
 
Continuous Integration and Deployment Patterns for Magento
Continuous Integration and Deployment Patterns for MagentoContinuous Integration and Deployment Patterns for Magento
Continuous Integration and Deployment Patterns for Magento
 
Edmonds Commerce Magento Presentation
Edmonds Commerce Magento PresentationEdmonds Commerce Magento Presentation
Edmonds Commerce Magento Presentation
 
Fun with Jenkins & Salesforce
Fun with Jenkins & SalesforceFun with Jenkins & Salesforce
Fun with Jenkins & Salesforce
 
Magento 2 Best Practice MLUK17
Magento 2 Best Practice MLUK17Magento 2 Best Practice MLUK17
Magento 2 Best Practice MLUK17
 
Modern Web Application Development Workflow - EclipseCon Europe 2014
Modern Web Application Development Workflow - EclipseCon Europe 2014Modern Web Application Development Workflow - EclipseCon Europe 2014
Modern Web Application Development Workflow - EclipseCon Europe 2014
 
Mobile Apps with PhoneGap and jQuery Mobile
Mobile Apps with PhoneGap and jQuery MobileMobile Apps with PhoneGap and jQuery Mobile
Mobile Apps with PhoneGap and jQuery Mobile
 
Modern Web Application Development Workflow - EclipseCon US 2014
Modern Web Application Development Workflow - EclipseCon US 2014Modern Web Application Development Workflow - EclipseCon US 2014
Modern Web Application Development Workflow - EclipseCon US 2014
 
Introduction to Magento 2 module development - PHP Antwerp Meetup 2017
Introduction to Magento 2 module development - PHP Antwerp Meetup 2017Introduction to Magento 2 module development - PHP Antwerp Meetup 2017
Introduction to Magento 2 module development - PHP Antwerp Meetup 2017
 
Vue Storefront MUG
Vue Storefront MUGVue Storefront MUG
Vue Storefront MUG
 
A Gentle introduction to Web Development & Django
A Gentle introduction to Web Development & DjangoA Gentle introduction to Web Development & Django
A Gentle introduction to Web Development & Django
 

Mehr von Joshua Warren

Enhancing the Customer Experience with Chatbots
Enhancing the Customer Experience with ChatbotsEnhancing the Customer Experience with Chatbots
Enhancing the Customer Experience with ChatbotsJoshua Warren
 
Transforming the Customer Experience Across 100 Stores with Magento
Transforming the Customer Experience Across 100 Stores with MagentoTransforming the Customer Experience Across 100 Stores with Magento
Transforming the Customer Experience Across 100 Stores with MagentoJoshua Warren
 
Its Just Commerce - IRCE 2018
Its Just Commerce - IRCE 2018Its Just Commerce - IRCE 2018
Its Just Commerce - IRCE 2018Joshua Warren
 
Rural King Case Study from the Omnichannel Retail Summit
Rural King Case Study from the Omnichannel Retail SummitRural King Case Study from the Omnichannel Retail Summit
Rural King Case Study from the Omnichannel Retail SummitJoshua Warren
 
Avoiding Commerce Extinction: Lessons from Retail Dinosaurs
Avoiding Commerce Extinction: Lessons from Retail DinosaursAvoiding Commerce Extinction: Lessons from Retail Dinosaurs
Avoiding Commerce Extinction: Lessons from Retail DinosaursJoshua Warren
 
Building a Global B2B Empire: Using Magento to Power International Expansion
Building a Global B2B Empire: Using Magento to Power International ExpansionBuilding a Global B2B Empire: Using Magento to Power International Expansion
Building a Global B2B Empire: Using Magento to Power International ExpansionJoshua Warren
 
Magento 2 ERP Integration Best Practices: Microsoft Dynamics
Magento 2 ERP Integration Best Practices: Microsoft DynamicsMagento 2 ERP Integration Best Practices: Microsoft Dynamics
Magento 2 ERP Integration Best Practices: Microsoft DynamicsJoshua Warren
 
What's New With Magento 2?
What's New With Magento 2?What's New With Magento 2?
What's New With Magento 2?Joshua Warren
 
Pay No Attention to the Project Manager Behind the Curtain: A Magento 2 Tell-All
Pay No Attention to the Project Manager Behind the Curtain: A Magento 2 Tell-AllPay No Attention to the Project Manager Behind the Curtain: A Magento 2 Tell-All
Pay No Attention to the Project Manager Behind the Curtain: A Magento 2 Tell-AllJoshua Warren
 
Magento 2 Integrations: ERPs, APIs, Webhooks & Rabbits! - MageTitansUSA 2016
Magento 2 Integrations: ERPs, APIs, Webhooks & Rabbits! - MageTitansUSA 2016Magento 2 Integrations: ERPs, APIs, Webhooks & Rabbits! - MageTitansUSA 2016
Magento 2 Integrations: ERPs, APIs, Webhooks & Rabbits! - MageTitansUSA 2016Joshua Warren
 
Work Life Balance for Passionate Developers - Full Stack Toronto 2015 Edition
Work Life Balance for Passionate Developers - Full Stack Toronto 2015 EditionWork Life Balance for Passionate Developers - Full Stack Toronto 2015 Edition
Work Life Balance for Passionate Developers - Full Stack Toronto 2015 EditionJoshua Warren
 
pnwphp - PHPSpec & Behat: Two Testing Tools That Write Code For You
pnwphp - PHPSpec & Behat: Two Testing Tools That Write Code For Youpnwphp - PHPSpec & Behat: Two Testing Tools That Write Code For You
pnwphp - PHPSpec & Behat: Two Testing Tools That Write Code For YouJoshua Warren
 
PHPSpec & Behat: Two Testing Tools That Write Code For You (#phptek edition)
PHPSpec & Behat: Two Testing Tools That Write Code For You (#phptek edition)PHPSpec & Behat: Two Testing Tools That Write Code For You (#phptek edition)
PHPSpec & Behat: Two Testing Tools That Write Code For You (#phptek edition)Joshua Warren
 
Behavior & Specification Driven Development in PHP - #OpenWest
Behavior & Specification Driven Development in PHP - #OpenWestBehavior & Specification Driven Development in PHP - #OpenWest
Behavior & Specification Driven Development in PHP - #OpenWestJoshua Warren
 
Get Out of the Back Row! A Community Involvement Primer - #OpenWest
Get Out of the Back Row! A Community Involvement Primer - #OpenWestGet Out of the Back Row! A Community Involvement Primer - #OpenWest
Get Out of the Back Row! A Community Involvement Primer - #OpenWestJoshua Warren
 
Work-Life Balance For Passionate Geeks - #OpenWest
Work-Life Balance For Passionate Geeks - #OpenWestWork-Life Balance For Passionate Geeks - #OpenWest
Work-Life Balance For Passionate Geeks - #OpenWestJoshua Warren
 
The Care and Feeding of Magento Developers
The Care and Feeding of Magento DevelopersThe Care and Feeding of Magento Developers
The Care and Feeding of Magento DevelopersJoshua Warren
 
Magento, Client, Budget, Test Driven Development - What You Can, Can’t And Mu...
Magento, Client, Budget, Test Driven Development - What You Can, Can’t And Mu...Magento, Client, Budget, Test Driven Development - What You Can, Can’t And Mu...
Magento, Client, Budget, Test Driven Development - What You Can, Can’t And Mu...Joshua Warren
 
Automated Testing Talk from Meet Magento New York 2014
Automated Testing Talk from Meet Magento New York 2014Automated Testing Talk from Meet Magento New York 2014
Automated Testing Talk from Meet Magento New York 2014Joshua Warren
 
Creatuity's Secrets To Ecommerce Project Success
Creatuity's Secrets To Ecommerce Project SuccessCreatuity's Secrets To Ecommerce Project Success
Creatuity's Secrets To Ecommerce Project SuccessJoshua Warren
 

Mehr von Joshua Warren (20)

Enhancing the Customer Experience with Chatbots
Enhancing the Customer Experience with ChatbotsEnhancing the Customer Experience with Chatbots
Enhancing the Customer Experience with Chatbots
 
Transforming the Customer Experience Across 100 Stores with Magento
Transforming the Customer Experience Across 100 Stores with MagentoTransforming the Customer Experience Across 100 Stores with Magento
Transforming the Customer Experience Across 100 Stores with Magento
 
Its Just Commerce - IRCE 2018
Its Just Commerce - IRCE 2018Its Just Commerce - IRCE 2018
Its Just Commerce - IRCE 2018
 
Rural King Case Study from the Omnichannel Retail Summit
Rural King Case Study from the Omnichannel Retail SummitRural King Case Study from the Omnichannel Retail Summit
Rural King Case Study from the Omnichannel Retail Summit
 
Avoiding Commerce Extinction: Lessons from Retail Dinosaurs
Avoiding Commerce Extinction: Lessons from Retail DinosaursAvoiding Commerce Extinction: Lessons from Retail Dinosaurs
Avoiding Commerce Extinction: Lessons from Retail Dinosaurs
 
Building a Global B2B Empire: Using Magento to Power International Expansion
Building a Global B2B Empire: Using Magento to Power International ExpansionBuilding a Global B2B Empire: Using Magento to Power International Expansion
Building a Global B2B Empire: Using Magento to Power International Expansion
 
Magento 2 ERP Integration Best Practices: Microsoft Dynamics
Magento 2 ERP Integration Best Practices: Microsoft DynamicsMagento 2 ERP Integration Best Practices: Microsoft Dynamics
Magento 2 ERP Integration Best Practices: Microsoft Dynamics
 
What's New With Magento 2?
What's New With Magento 2?What's New With Magento 2?
What's New With Magento 2?
 
Pay No Attention to the Project Manager Behind the Curtain: A Magento 2 Tell-All
Pay No Attention to the Project Manager Behind the Curtain: A Magento 2 Tell-AllPay No Attention to the Project Manager Behind the Curtain: A Magento 2 Tell-All
Pay No Attention to the Project Manager Behind the Curtain: A Magento 2 Tell-All
 
Magento 2 Integrations: ERPs, APIs, Webhooks & Rabbits! - MageTitansUSA 2016
Magento 2 Integrations: ERPs, APIs, Webhooks & Rabbits! - MageTitansUSA 2016Magento 2 Integrations: ERPs, APIs, Webhooks & Rabbits! - MageTitansUSA 2016
Magento 2 Integrations: ERPs, APIs, Webhooks & Rabbits! - MageTitansUSA 2016
 
Work Life Balance for Passionate Developers - Full Stack Toronto 2015 Edition
Work Life Balance for Passionate Developers - Full Stack Toronto 2015 EditionWork Life Balance for Passionate Developers - Full Stack Toronto 2015 Edition
Work Life Balance for Passionate Developers - Full Stack Toronto 2015 Edition
 
pnwphp - PHPSpec & Behat: Two Testing Tools That Write Code For You
pnwphp - PHPSpec & Behat: Two Testing Tools That Write Code For Youpnwphp - PHPSpec & Behat: Two Testing Tools That Write Code For You
pnwphp - PHPSpec & Behat: Two Testing Tools That Write Code For You
 
PHPSpec & Behat: Two Testing Tools That Write Code For You (#phptek edition)
PHPSpec & Behat: Two Testing Tools That Write Code For You (#phptek edition)PHPSpec & Behat: Two Testing Tools That Write Code For You (#phptek edition)
PHPSpec & Behat: Two Testing Tools That Write Code For You (#phptek edition)
 
Behavior & Specification Driven Development in PHP - #OpenWest
Behavior & Specification Driven Development in PHP - #OpenWestBehavior & Specification Driven Development in PHP - #OpenWest
Behavior & Specification Driven Development in PHP - #OpenWest
 
Get Out of the Back Row! A Community Involvement Primer - #OpenWest
Get Out of the Back Row! A Community Involvement Primer - #OpenWestGet Out of the Back Row! A Community Involvement Primer - #OpenWest
Get Out of the Back Row! A Community Involvement Primer - #OpenWest
 
Work-Life Balance For Passionate Geeks - #OpenWest
Work-Life Balance For Passionate Geeks - #OpenWestWork-Life Balance For Passionate Geeks - #OpenWest
Work-Life Balance For Passionate Geeks - #OpenWest
 
The Care and Feeding of Magento Developers
The Care and Feeding of Magento DevelopersThe Care and Feeding of Magento Developers
The Care and Feeding of Magento Developers
 
Magento, Client, Budget, Test Driven Development - What You Can, Can’t And Mu...
Magento, Client, Budget, Test Driven Development - What You Can, Can’t And Mu...Magento, Client, Budget, Test Driven Development - What You Can, Can’t And Mu...
Magento, Client, Budget, Test Driven Development - What You Can, Can’t And Mu...
 
Automated Testing Talk from Meet Magento New York 2014
Automated Testing Talk from Meet Magento New York 2014Automated Testing Talk from Meet Magento New York 2014
Automated Testing Talk from Meet Magento New York 2014
 
Creatuity's Secrets To Ecommerce Project Success
Creatuity's Secrets To Ecommerce Project SuccessCreatuity's Secrets To Ecommerce Project Success
Creatuity's Secrets To Ecommerce Project Success
 

Kürzlich hochgeladen

Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 

Kürzlich hochgeladen (20)

Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 

Magento 2 - An Intro to a Modern PHP-Based System - ZendCon 2015