SlideShare a Scribd company logo
Zend Framework2
How arrays will save your project
in it2PROFESSIONAL PHP SERVICES
Michelangelo van Dam
PHP Consultant, Community Leader & Trainer
https://www.flickr.com/photos/akrabat/8784318813
Schedule
Introduction to ZF2
The array
Challenges in development
Solutions offered in ZF2
More options
Schedule
Introduction to ZF2
The array
Challenges in development
Solutions offered in ZF2
More options
Zf2   how arrays will save your project
Zf2   how arrays will save your project
“The Array Framework”
<?php
/**
 * Zend Framework 2 Configuration Settings
 *
 */
return array(
    'modules' => array(
        'Application',
        'In2itSsoProvider',
        'In2itCrmDashboard',
        'In2itCrmContactManager',
        'In2itCrmOrderManager',
        'In2itCrmProductManager',
    ),
    'module_listener_options' => array(
        'module_paths' => array(
            './module',
            './vendor'
        ),
        'config_glob_paths' => array(
            '/home/dragonbe/workspace/Totem/config/autoload/{,*.}{global,local}.php'
        ),
        'config_cache_key' => 'application.config.cache',
        'config_cache_enabled' => true,
        'module_map_cache_key' => 'application.module.cache',
        'module_map_cache_enabled' => true,
        'cache_dir' => 'data/cache/'
    )
);
<?php
namespace In2itCrmDashboard;
use ZendModuleManagerFeatureConfigProviderInterface;
use ZendMvcModuleRouteListener;
use ZendMvcMvcEvent;
class Module implements ConfigProviderInterface
{
    public function getAutoloaderConfig()
    {
        return array(
            'ZendLoaderClassMapAutoloader' => array(
                __DIR__ . '/autoload_classmap.php',
            ),
            'ZendLoaderStandardAutoloader' => array(
                'namespaces' => array(
                    __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
                ),
            ),
        );
    }
    public function getConfig()
    {
        return include __DIR__ . '/config/module.config.php';
    }
}
https://www.flickr.com/photos/dasprid/8147986307
Yaml
XML
INI
CSV
PHP
PHP
Schedule
Introduction to ZF2
The array
Challenges in development
Solutions offered in ZF2
More options
array_change_key_case
array_chunk
array_column
array_combine
array_count_values
array_diff_assoc
array_diff_key
array_diff_uassoc
array_diff_ukey
array_diff
array_fill_keys
array_fill
array_filter
array_flip
array_intersect_assoc
array_intersect_key
array_intersect_uassoc
array_intersect_ukey
array_intersect
array_key_exists
array_keys
array_map
array_merge_recursive
array_merge
array_multisort
array_pad
array_pop
array_product
array_push
array_rand
array_reduce
array_replace_recursive
array_replace
array_reverse
array_search
array_shift
array_slice
array_splice
array_sum
array_udiff_assoc
array_udiff_uassoc
array_udiff
array_uintersect_assoc
array_uintersect_uassoc
array_uintersect
array_unique
array_unshift
array_values
array_walk_recursive
array_walk
array
arsort
asort
compact
count
current
each
end
extract
in_array
key_exists
key
krsort
ksort
list
natcasesort
natsort
next
pos
prev
range
reset
rsort
shuffle
sizeof
sort
uasort
uksort
usort
Do you know them?
array_search
array_filter
? ? ? ?
?
?
? ??
?
?
??
?
?
? ?
count
array_sum
array_product
? ? ? ?
?
?
? ??
?
?
??
?
?
? ?
array_diff
array_intersect
array_merge
? ? ? ?
?
?
? ??
?
?
??
?
?
? ?
// Let's take one value out of our array
$array = ['apple', 'banana', 'chocolate'];
$newArray = [];
foreach ($array as $value) {
  if ('banana' !== $value) {
      $newArray[] = $value;
  }
}
echo implode(', ', $newArray);
// Outputs: apple, chocolate
<?php
// Let's take one value out of our array
$array = ['apple', 'banana', 'chocolate'];
// I keep an ignore list as well
$ignore = ['banana'];
// Ready for magic?
echo implode(', ', array_diff($array, $ignore));
// Outputs: apple, chocolate
<?php
// I have one associative array
$array = ['a' => 'apple', 'b' => 'banana', 'c' => 'chocolate'];
// And a similar value array
$similar = ['banana', 'chocolate'];
// I need to get the keys of similar items from original array
$newSimilar = [];
foreach ($array as $key => $value) {
    if (in_array($value, $similar)) {
        $newSimilar[$key] = $value;
    }
}
$similar = $newSimilar;
unset ($newSimilar);
var_dump($similar);
/* Outputs:
array(2) {
  'b' =>
  string(6) "banana"
  'c' =>
  string(9) "chocolate"
}
*/
<?php
// I have one associative array
$array = ['a' => 'apple', 'b' => 'banana', 'c' => 'chocolate'];
// And a similar value array
$similar = ['banana', 'chocolate'];
// I need to get the keys of similar items from original array
$similar = array_intersect($array, $similar);
var_dump($similar);
/* Outputs:
array(2) {
  'b' =>
  string(6) "banana"
  'c' =>
  string(9) "chocolate"
}
*/
One more?
<?php
// I have one associative array
$array = ['a' => 'apple', 'b' => 'banana', 'c' => 'chocolate'];
// I need to find a given value -> 'chocolate'
$search = 'chocolate';
$searchResult = [];
foreach ($array as $key => $value) {
    if ($search === $value) {
        $searchResult[$key] = $value;
    }
}
var_dump($searchResult);
/* Outputs:
array(1) {
  'c' =>
  string(9) "chocolate"
}
*/
<?php
// I have one associative array
$array = ['a' => 'apple', 'b' => 'banana', 'c' => 'chocolate'];
// I need to find a given value -> 'chocolate'
$search = 'chocolate';
$searchResult = array_filter($array, function ($var) use ($search) { 
    return $search === $var;
});
var_dump($searchResult);
/* Outputs:
array(1) {
  'c' =>
  string(9) "chocolate"
}
*/
Schedule
Introduction to ZF2
The array
Challenges in development
Solutions offered in ZF2
More options
Lots of data
Lists of data rows
<?php
$query = "SELECT * FROM `contact` WHERE `age` > ? AND `gende
r` = ?";
$stmt = $pdo->prepare($query);
$stmt->bindParam(1, $cleanAge);
$stmt->bindParam(2, $cleanGender);
$stmt->execute();
// A resultset of 63,992 entries stored in an array!!!
$resultList = $stmt->fetchAll();
<?php
public function getSelectedContacts($age, $gender)
{
    $resultSet = $this->tableGateway->select(array(
        'age' => $age,
        'gender' => $gender,
    ));
   return $resultSet;
}
Iterators!!!
Loop with arrays
• Data fetching time for 63992 of 250000 records:

2.14 seconds
• Data processing time for 63992 of 250000 records:

7.11 seconds
• Total time for 63992 of 250000 records: 

9.25 seconds
• Memory consumption for 63992 of 250000 records:
217.75MB
Loop with Iterators
• Data fetching time for 63992 of 250000 records:

0.92 seconds
• Data processing time for 63992 of 250000 records: 

5.57 seconds
• Total time for 63992 of 250000 records: 

6.49 seconds
• Memory consumption for 63992 of 250000 records: 

0.25MB
Loop with Iterators
• Data fetching time for 63992 of 250000 records:

0.92 seconds
• Data processing time for 63992 of 250000 records: 

5.57 seconds
• Total time for 63992 of 250000 records: 

6.49 seconds
• Memory consumption for 63992 of 250000 records: 

0.25MB <-> 217.75MB
Schedule
Introduction to ZF2
The array
Challenges in development
Solutions offered in ZF2
More options
Iterators
Interfaces
Responsibility
Separation
Modules
Schedule
Introduction to ZF2
The array
Challenges in development
Solutions offered in ZF2
More options
–Michelangelo van Dam
“You dislike arrays because you don’t know
them well enough to love them”
Links
• Array functions

http://php.net/manual/en/ref.array.php
• Iterator

http://php.net/manual/en/class.iterator.php
• SPL Iterators and DataStructures

http://php.net/spl/
PHPSheatSheets
http://phpcheatsheets.com/index.php
https://www.flickr.com/photos/lwr/13442542235
Contact us
in it2PROFESSIONAL PHP SERVICES
Michelangelo van Dam
michelangelo@in2it.be
www.in2it.be
PHP Consulting - Training - QA
Thank you
Have a great conference
http://www.flickr.com/photos/drewm/3191872515
Ad

More Related Content

What's hot (20)

Curso Symfony - Clase 4
Curso Symfony - Clase 4Curso Symfony - Clase 4
Curso Symfony - Clase 4
Javier Eguiluz
 
Apigility reloaded
Apigility reloadedApigility reloaded
Apigility reloaded
Ralf Eggert
 
Advanced Django
Advanced DjangoAdvanced Django
Advanced Django
Simon Willison
 
Virtual Madness @ Etsy
Virtual Madness @ EtsyVirtual Madness @ Etsy
Virtual Madness @ Etsy
Nishan Subedi
 
Min-Maxing Software Costs - Laracon EU 2015
Min-Maxing Software Costs - Laracon EU 2015Min-Maxing Software Costs - Laracon EU 2015
Min-Maxing Software Costs - Laracon EU 2015
Konstantin Kudryashov
 
Proposed PHP function: is_literal()
Proposed PHP function: is_literal()Proposed PHP function: is_literal()
Proposed PHP function: is_literal()
Craig Francis
 
Data Validation models
Data Validation modelsData Validation models
Data Validation models
Marcin Czarnecki
 
Decoupling with Design Patterns and Symfony2 DIC
Decoupling with Design Patterns and Symfony2 DICDecoupling with Design Patterns and Symfony2 DIC
Decoupling with Design Patterns and Symfony2 DIC
Konstantin Kudryashov
 
Dependency Injection in PHP
Dependency Injection in PHPDependency Injection in PHP
Dependency Injection in PHP
Kacper Gunia
 
Creating GUI Component APIs in Angular and Web Components
Creating GUI Component APIs in Angular and Web ComponentsCreating GUI Component APIs in Angular and Web Components
Creating GUI Component APIs in Angular and Web Components
Rachael L Moore
 
Creating GUI container components in Angular and Web Components
Creating GUI container components in Angular and Web ComponentsCreating GUI container components in Angular and Web Components
Creating GUI container components in Angular and Web Components
Rachael L Moore
 
Unit testing zend framework apps
Unit testing zend framework appsUnit testing zend framework apps
Unit testing zend framework apps
Michelangelo van Dam
 
My app is secure... I think
My app is secure... I thinkMy app is secure... I think
My app is secure... I think
Wim Godden
 
Rich Model And Layered Architecture in SF2 Application
Rich Model And Layered Architecture in SF2 ApplicationRich Model And Layered Architecture in SF2 Application
Rich Model And Layered Architecture in SF2 Application
Kirill Chebunin
 
Min-Maxing Software Costs
Min-Maxing Software CostsMin-Maxing Software Costs
Min-Maxing Software Costs
Konstantin Kudryashov
 
Система рендеринга в Magento
Система рендеринга в MagentoСистема рендеринга в Magento
Система рендеринга в Magento
Magecom Ukraine
 
UA testing with Selenium and PHPUnit - PHPBenelux Summer BBQ
UA testing with Selenium and PHPUnit - PHPBenelux Summer BBQUA testing with Selenium and PHPUnit - PHPBenelux Summer BBQ
UA testing with Selenium and PHPUnit - PHPBenelux Summer BBQ
Michelangelo van Dam
 
Yearning jQuery
Yearning jQueryYearning jQuery
Yearning jQuery
Remy Sharp
 
Is HTML5 Ready? (workshop)
Is HTML5 Ready? (workshop)Is HTML5 Ready? (workshop)
Is HTML5 Ready? (workshop)
Remy Sharp
 
Security 202 - Are you sure your site is secure?
Security 202 - Are you sure your site is secure?Security 202 - Are you sure your site is secure?
Security 202 - Are you sure your site is secure?
ConFoo
 
Curso Symfony - Clase 4
Curso Symfony - Clase 4Curso Symfony - Clase 4
Curso Symfony - Clase 4
Javier Eguiluz
 
Apigility reloaded
Apigility reloadedApigility reloaded
Apigility reloaded
Ralf Eggert
 
Virtual Madness @ Etsy
Virtual Madness @ EtsyVirtual Madness @ Etsy
Virtual Madness @ Etsy
Nishan Subedi
 
Min-Maxing Software Costs - Laracon EU 2015
Min-Maxing Software Costs - Laracon EU 2015Min-Maxing Software Costs - Laracon EU 2015
Min-Maxing Software Costs - Laracon EU 2015
Konstantin Kudryashov
 
Proposed PHP function: is_literal()
Proposed PHP function: is_literal()Proposed PHP function: is_literal()
Proposed PHP function: is_literal()
Craig Francis
 
Decoupling with Design Patterns and Symfony2 DIC
Decoupling with Design Patterns and Symfony2 DICDecoupling with Design Patterns and Symfony2 DIC
Decoupling with Design Patterns and Symfony2 DIC
Konstantin Kudryashov
 
Dependency Injection in PHP
Dependency Injection in PHPDependency Injection in PHP
Dependency Injection in PHP
Kacper Gunia
 
Creating GUI Component APIs in Angular and Web Components
Creating GUI Component APIs in Angular and Web ComponentsCreating GUI Component APIs in Angular and Web Components
Creating GUI Component APIs in Angular and Web Components
Rachael L Moore
 
Creating GUI container components in Angular and Web Components
Creating GUI container components in Angular and Web ComponentsCreating GUI container components in Angular and Web Components
Creating GUI container components in Angular and Web Components
Rachael L Moore
 
My app is secure... I think
My app is secure... I thinkMy app is secure... I think
My app is secure... I think
Wim Godden
 
Rich Model And Layered Architecture in SF2 Application
Rich Model And Layered Architecture in SF2 ApplicationRich Model And Layered Architecture in SF2 Application
Rich Model And Layered Architecture in SF2 Application
Kirill Chebunin
 
Система рендеринга в Magento
Система рендеринга в MagentoСистема рендеринга в Magento
Система рендеринга в Magento
Magecom Ukraine
 
UA testing with Selenium and PHPUnit - PHPBenelux Summer BBQ
UA testing with Selenium and PHPUnit - PHPBenelux Summer BBQUA testing with Selenium and PHPUnit - PHPBenelux Summer BBQ
UA testing with Selenium and PHPUnit - PHPBenelux Summer BBQ
Michelangelo van Dam
 
Yearning jQuery
Yearning jQueryYearning jQuery
Yearning jQuery
Remy Sharp
 
Is HTML5 Ready? (workshop)
Is HTML5 Ready? (workshop)Is HTML5 Ready? (workshop)
Is HTML5 Ready? (workshop)
Remy Sharp
 
Security 202 - Are you sure your site is secure?
Security 202 - Are you sure your site is secure?Security 202 - Are you sure your site is secure?
Security 202 - Are you sure your site is secure?
ConFoo
 

Viewers also liked (17)

Bolivia expedition 2016
Bolivia expedition 2016Bolivia expedition 2016
Bolivia expedition 2016
lprovaznikova
 
El narcotrafico
El narcotraficoEl narcotrafico
El narcotrafico
Tanya Elizabeth González Parra
 
підлягають погодженню з профкомом
підлягають погодженню з профкомомпідлягають погодженню з профкомом
підлягають погодженню з профкомом
Rebbit2015
 
Catalogue diwali 2016
Catalogue diwali 2016Catalogue diwali 2016
Catalogue diwali 2016
ASHUTOSH SHARMA
 
Question 1 - 2k15 Exam Preparation Day
Question 1 - 2k15 Exam Preparation DayQuestion 1 - 2k15 Exam Preparation Day
Question 1 - 2k15 Exam Preparation Day
Leon Marsden
 
Presentatie Inclusief Onderwijs Dark&Light
Presentatie Inclusief Onderwijs Dark&LightPresentatie Inclusief Onderwijs Dark&Light
Presentatie Inclusief Onderwijs Dark&Light
guest15308f
 
Digital Preservation for DAMs
Digital Preservation for DAMsDigital Preservation for DAMs
Digital Preservation for DAMs
Emily Kolvitz
 
Kitab dua hari raya
Kitab dua hari rayaKitab dua hari raya
Kitab dua hari raya
Septian Muna Barakati
 
SK-KD bhs Indonesia SDLB – E(Tuna Laras)
SK-KD bhs Indonesia SDLB – E(Tuna Laras)SK-KD bhs Indonesia SDLB – E(Tuna Laras)
SK-KD bhs Indonesia SDLB – E(Tuna Laras)
SMA Negeri 9 KERINCI
 
Etica ciudadana
Etica ciudadanaEtica ciudadana
Etica ciudadana
amaliacarty2016
 
Douglas-Gallant-M.B.A
Douglas-Gallant-M.B.ADouglas-Gallant-M.B.A
Douglas-Gallant-M.B.A
Douglas Gallant
 
Membina keluarga
Membina keluargaMembina keluarga
Membina keluarga
Abyanuddin Salam
 
Ucapan perpisahan
Ucapan perpisahanUcapan perpisahan
Ucapan perpisahan
Izzat Ismail
 
Fanny trabajo de_ingles
Fanny trabajo de_inglesFanny trabajo de_ingles
Fanny trabajo de_ingles
Fanny
 
In order for UX to achieve it’s potential, we need to reframe it as a profess...
In order for UX to achieve it’s potential, we need to reframe it as a profess...In order for UX to achieve it’s potential, we need to reframe it as a profess...
In order for UX to achieve it’s potential, we need to reframe it as a profess...
Peter Merholz
 
Métodos qualitativos para determinação de características bioquímicas e fisio...
Métodos qualitativos para determinação de características bioquímicas e fisio...Métodos qualitativos para determinação de características bioquímicas e fisio...
Métodos qualitativos para determinação de características bioquímicas e fisio...
adrianaqalmeida
 
Living in a world without marketing - Brandhome speaks at Tesla World 2015
Living in a world without marketing - Brandhome speaks at Tesla World 2015Living in a world without marketing - Brandhome speaks at Tesla World 2015
Living in a world without marketing - Brandhome speaks at Tesla World 2015
Brandhome
 
Bolivia expedition 2016
Bolivia expedition 2016Bolivia expedition 2016
Bolivia expedition 2016
lprovaznikova
 
підлягають погодженню з профкомом
підлягають погодженню з профкомомпідлягають погодженню з профкомом
підлягають погодженню з профкомом
Rebbit2015
 
Question 1 - 2k15 Exam Preparation Day
Question 1 - 2k15 Exam Preparation DayQuestion 1 - 2k15 Exam Preparation Day
Question 1 - 2k15 Exam Preparation Day
Leon Marsden
 
Presentatie Inclusief Onderwijs Dark&Light
Presentatie Inclusief Onderwijs Dark&LightPresentatie Inclusief Onderwijs Dark&Light
Presentatie Inclusief Onderwijs Dark&Light
guest15308f
 
Digital Preservation for DAMs
Digital Preservation for DAMsDigital Preservation for DAMs
Digital Preservation for DAMs
Emily Kolvitz
 
SK-KD bhs Indonesia SDLB – E(Tuna Laras)
SK-KD bhs Indonesia SDLB – E(Tuna Laras)SK-KD bhs Indonesia SDLB – E(Tuna Laras)
SK-KD bhs Indonesia SDLB – E(Tuna Laras)
SMA Negeri 9 KERINCI
 
Fanny trabajo de_ingles
Fanny trabajo de_inglesFanny trabajo de_ingles
Fanny trabajo de_ingles
Fanny
 
In order for UX to achieve it’s potential, we need to reframe it as a profess...
In order for UX to achieve it’s potential, we need to reframe it as a profess...In order for UX to achieve it’s potential, we need to reframe it as a profess...
In order for UX to achieve it’s potential, we need to reframe it as a profess...
Peter Merholz
 
Métodos qualitativos para determinação de características bioquímicas e fisio...
Métodos qualitativos para determinação de características bioquímicas e fisio...Métodos qualitativos para determinação de características bioquímicas e fisio...
Métodos qualitativos para determinação de características bioquímicas e fisio...
adrianaqalmeida
 
Living in a world without marketing - Brandhome speaks at Tesla World 2015
Living in a world without marketing - Brandhome speaks at Tesla World 2015Living in a world without marketing - Brandhome speaks at Tesla World 2015
Living in a world without marketing - Brandhome speaks at Tesla World 2015
Brandhome
 
Ad

Similar to Zf2 how arrays will save your project (20)

Zf2 phpquebec
Zf2 phpquebecZf2 phpquebec
Zf2 phpquebec
mkherlakian
 
Ростислав Михайлив "Zend Framework 3 - evolution or revolution"
Ростислав Михайлив "Zend Framework 3 - evolution or revolution"Ростислав Михайлив "Zend Framework 3 - evolution or revolution"
Ростислав Михайлив "Zend Framework 3 - evolution or revolution"
Fwdays
 
Deprecated: Foundations of Zend Framework 2
Deprecated: Foundations of Zend Framework 2Deprecated: Foundations of Zend Framework 2
Deprecated: Foundations of Zend Framework 2
Adam Culp
 
Zend Framework 2 - Basic Components
Zend Framework 2  - Basic ComponentsZend Framework 2  - Basic Components
Zend Framework 2 - Basic Components
Mateusz Tymek
 
ZF2 Modular Architecture - Taking advantage of it
ZF2 Modular Architecture - Taking advantage of itZF2 Modular Architecture - Taking advantage of it
ZF2 Modular Architecture - Taking advantage of it
Steve Maraspin
 
Fundamentals of Extending Magento 2 - php[world] 2015
Fundamentals of Extending Magento 2 - php[world] 2015Fundamentals of Extending Magento 2 - php[world] 2015
Fundamentals of Extending Magento 2 - php[world] 2015
David Alger
 
A quick start on Zend Framework 2
A quick start on Zend Framework 2A quick start on Zend Framework 2
A quick start on Zend Framework 2
Enrico Zimuel
 
ZF2 for the ZF1 Developer
ZF2 for the ZF1 DeveloperZF2 for the ZF1 Developer
ZF2 for the ZF1 Developer
Gary Hockin
 
ZF2 Presentation @PHP Tour 2011 in Lille
ZF2 Presentation @PHP Tour 2011 in LilleZF2 Presentation @PHP Tour 2011 in Lille
ZF2 Presentation @PHP Tour 2011 in Lille
Zend by Rogue Wave Software
 
Foundations of Zend Framework
Foundations of Zend FrameworkFoundations of Zend Framework
Foundations of Zend Framework
Adam Culp
 
Zend Framework 2 quick start
Zend Framework 2 quick startZend Framework 2 quick start
Zend Framework 2 quick start
Enrico Zimuel
 
ZFConf 2012: Zend Framework 2, a quick start (Enrico Zimuel)
ZFConf 2012: Zend Framework 2, a quick start (Enrico Zimuel)ZFConf 2012: Zend Framework 2, a quick start (Enrico Zimuel)
ZFConf 2012: Zend Framework 2, a quick start (Enrico Zimuel)
ZFConf Conference
 
Symfony2 - from the trenches
Symfony2 - from the trenchesSymfony2 - from the trenches
Symfony2 - from the trenches
Lukas Smith
 
JavaScript Modules in Practice
JavaScript Modules in PracticeJavaScript Modules in Practice
JavaScript Modules in Practice
Maghdebura
 
My name is Trinidad
My name is TrinidadMy name is Trinidad
My name is Trinidad
David Calavera
 
IPC 2015 ZF2rapid
IPC 2015 ZF2rapidIPC 2015 ZF2rapid
IPC 2015 ZF2rapid
Ralf Eggert
 
Zend Framework 2
Zend Framework 2Zend Framework 2
Zend Framework 2
Tarun Kumar Singhal
 
DDD on example of Symfony (SfCampUA14)
DDD on example of Symfony (SfCampUA14)DDD on example of Symfony (SfCampUA14)
DDD on example of Symfony (SfCampUA14)
Oleg Zinchenko
 
Review unknown code with static analysis - bredaphp
Review unknown code with static analysis - bredaphpReview unknown code with static analysis - bredaphp
Review unknown code with static analysis - bredaphp
Damien Seguy
 
Kicking off with Zend Expressive and Doctrine ORM (PHP MiNDS March 2018)
Kicking off with Zend Expressive and Doctrine ORM (PHP MiNDS March 2018)Kicking off with Zend Expressive and Doctrine ORM (PHP MiNDS March 2018)
Kicking off with Zend Expressive and Doctrine ORM (PHP MiNDS March 2018)
James Titcumb
 
Ростислав Михайлив "Zend Framework 3 - evolution or revolution"
Ростислав Михайлив "Zend Framework 3 - evolution or revolution"Ростислав Михайлив "Zend Framework 3 - evolution or revolution"
Ростислав Михайлив "Zend Framework 3 - evolution or revolution"
Fwdays
 
Deprecated: Foundations of Zend Framework 2
Deprecated: Foundations of Zend Framework 2Deprecated: Foundations of Zend Framework 2
Deprecated: Foundations of Zend Framework 2
Adam Culp
 
Zend Framework 2 - Basic Components
Zend Framework 2  - Basic ComponentsZend Framework 2  - Basic Components
Zend Framework 2 - Basic Components
Mateusz Tymek
 
ZF2 Modular Architecture - Taking advantage of it
ZF2 Modular Architecture - Taking advantage of itZF2 Modular Architecture - Taking advantage of it
ZF2 Modular Architecture - Taking advantage of it
Steve Maraspin
 
Fundamentals of Extending Magento 2 - php[world] 2015
Fundamentals of Extending Magento 2 - php[world] 2015Fundamentals of Extending Magento 2 - php[world] 2015
Fundamentals of Extending Magento 2 - php[world] 2015
David Alger
 
A quick start on Zend Framework 2
A quick start on Zend Framework 2A quick start on Zend Framework 2
A quick start on Zend Framework 2
Enrico Zimuel
 
ZF2 for the ZF1 Developer
ZF2 for the ZF1 DeveloperZF2 for the ZF1 Developer
ZF2 for the ZF1 Developer
Gary Hockin
 
Foundations of Zend Framework
Foundations of Zend FrameworkFoundations of Zend Framework
Foundations of Zend Framework
Adam Culp
 
Zend Framework 2 quick start
Zend Framework 2 quick startZend Framework 2 quick start
Zend Framework 2 quick start
Enrico Zimuel
 
ZFConf 2012: Zend Framework 2, a quick start (Enrico Zimuel)
ZFConf 2012: Zend Framework 2, a quick start (Enrico Zimuel)ZFConf 2012: Zend Framework 2, a quick start (Enrico Zimuel)
ZFConf 2012: Zend Framework 2, a quick start (Enrico Zimuel)
ZFConf Conference
 
Symfony2 - from the trenches
Symfony2 - from the trenchesSymfony2 - from the trenches
Symfony2 - from the trenches
Lukas Smith
 
JavaScript Modules in Practice
JavaScript Modules in PracticeJavaScript Modules in Practice
JavaScript Modules in Practice
Maghdebura
 
IPC 2015 ZF2rapid
IPC 2015 ZF2rapidIPC 2015 ZF2rapid
IPC 2015 ZF2rapid
Ralf Eggert
 
DDD on example of Symfony (SfCampUA14)
DDD on example of Symfony (SfCampUA14)DDD on example of Symfony (SfCampUA14)
DDD on example of Symfony (SfCampUA14)
Oleg Zinchenko
 
Review unknown code with static analysis - bredaphp
Review unknown code with static analysis - bredaphpReview unknown code with static analysis - bredaphp
Review unknown code with static analysis - bredaphp
Damien Seguy
 
Kicking off with Zend Expressive and Doctrine ORM (PHP MiNDS March 2018)
Kicking off with Zend Expressive and Doctrine ORM (PHP MiNDS March 2018)Kicking off with Zend Expressive and Doctrine ORM (PHP MiNDS March 2018)
Kicking off with Zend Expressive and Doctrine ORM (PHP MiNDS March 2018)
James Titcumb
 
Ad

More from Michelangelo van Dam (20)

GDPR Art. 25 - Privacy by design and default
GDPR Art. 25 - Privacy by design and defaultGDPR Art. 25 - Privacy by design and default
GDPR Art. 25 - Privacy by design and default
Michelangelo van Dam
 
Moving from app services to azure functions
Moving from app services to azure functionsMoving from app services to azure functions
Moving from app services to azure functions
Michelangelo van Dam
 
Privacy by design
Privacy by designPrivacy by design
Privacy by design
Michelangelo van Dam
 
DevOps or DevSecOps
DevOps or DevSecOpsDevOps or DevSecOps
DevOps or DevSecOps
Michelangelo van Dam
 
Privacy by design
Privacy by designPrivacy by design
Privacy by design
Michelangelo van Dam
 
Continuous deployment 2.0
Continuous deployment 2.0Continuous deployment 2.0
Continuous deployment 2.0
Michelangelo van Dam
 
Let your tests drive your code
Let your tests drive your codeLet your tests drive your code
Let your tests drive your code
Michelangelo van Dam
 
General Data Protection Regulation, a developer's story
General Data Protection Regulation, a developer's storyGeneral Data Protection Regulation, a developer's story
General Data Protection Regulation, a developer's story
Michelangelo van Dam
 
Leveraging a distributed architecture to your advantage
Leveraging a distributed architecture to your advantageLeveraging a distributed architecture to your advantage
Leveraging a distributed architecture to your advantage
Michelangelo van Dam
 
The road to php 7.1
The road to php 7.1The road to php 7.1
The road to php 7.1
Michelangelo van Dam
 
Open source for a successful business
Open source for a successful businessOpen source for a successful business
Open source for a successful business
Michelangelo van Dam
 
Decouple your framework now, thank me later
Decouple your framework now, thank me laterDecouple your framework now, thank me later
Decouple your framework now, thank me later
Michelangelo van Dam
 
Deploy to azure in less then 15 minutes
Deploy to azure in less then 15 minutesDeploy to azure in less then 15 minutes
Deploy to azure in less then 15 minutes
Michelangelo van Dam
 
Azure and OSS, a match made in heaven
Azure and OSS, a match made in heavenAzure and OSS, a match made in heaven
Azure and OSS, a match made in heaven
Michelangelo van Dam
 
Getting hands dirty with php7
Getting hands dirty with php7Getting hands dirty with php7
Getting hands dirty with php7
Michelangelo van Dam
 
Create, test, secure, repeat
Create, test, secure, repeatCreate, test, secure, repeat
Create, test, secure, repeat
Michelangelo van Dam
 
The Continuous PHP Pipeline
The Continuous PHP PipelineThe Continuous PHP Pipeline
The Continuous PHP Pipeline
Michelangelo van Dam
 
Easily extend your existing php app with an api
Easily extend your existing php app with an apiEasily extend your existing php app with an api
Easily extend your existing php app with an api
Michelangelo van Dam
 
Your code are my tests
Your code are my testsYour code are my tests
Your code are my tests
Michelangelo van Dam
 
200K+ reasons security is a must
200K+ reasons security is a must200K+ reasons security is a must
200K+ reasons security is a must
Michelangelo van Dam
 
GDPR Art. 25 - Privacy by design and default
GDPR Art. 25 - Privacy by design and defaultGDPR Art. 25 - Privacy by design and default
GDPR Art. 25 - Privacy by design and default
Michelangelo van Dam
 
Moving from app services to azure functions
Moving from app services to azure functionsMoving from app services to azure functions
Moving from app services to azure functions
Michelangelo van Dam
 
General Data Protection Regulation, a developer's story
General Data Protection Regulation, a developer's storyGeneral Data Protection Regulation, a developer's story
General Data Protection Regulation, a developer's story
Michelangelo van Dam
 
Leveraging a distributed architecture to your advantage
Leveraging a distributed architecture to your advantageLeveraging a distributed architecture to your advantage
Leveraging a distributed architecture to your advantage
Michelangelo van Dam
 
Open source for a successful business
Open source for a successful businessOpen source for a successful business
Open source for a successful business
Michelangelo van Dam
 
Decouple your framework now, thank me later
Decouple your framework now, thank me laterDecouple your framework now, thank me later
Decouple your framework now, thank me later
Michelangelo van Dam
 
Deploy to azure in less then 15 minutes
Deploy to azure in less then 15 minutesDeploy to azure in less then 15 minutes
Deploy to azure in less then 15 minutes
Michelangelo van Dam
 
Azure and OSS, a match made in heaven
Azure and OSS, a match made in heavenAzure and OSS, a match made in heaven
Azure and OSS, a match made in heaven
Michelangelo van Dam
 
Easily extend your existing php app with an api
Easily extend your existing php app with an apiEasily extend your existing php app with an api
Easily extend your existing php app with an api
Michelangelo van Dam
 

Zf2 how arrays will save your project