SlideShare a Scribd company logo
1 of 46
Download to read offline
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
“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

More Related Content

What's hot

Curso Symfony - Clase 4
Curso Symfony - Clase 4Curso Symfony - Clase 4
Curso Symfony - Clase 4Javier Eguiluz
 
Apigility reloaded
Apigility reloadedApigility reloaded
Apigility reloadedRalf Eggert
 
Virtual Madness @ Etsy
Virtual Madness @ EtsyVirtual Madness @ Etsy
Virtual Madness @ EtsyNishan 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 2015Konstantin 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 DICKonstantin Kudryashov
 
Dependency Injection in PHP
Dependency Injection in PHPDependency Injection in PHP
Dependency Injection in PHPKacper 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 ComponentsRachael 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 ComponentsRachael L Moore
 
My app is secure... I think
My app is secure... I thinkMy app is secure... I think
My app is secure... I thinkWim 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 ApplicationKirill Chebunin
 
Система рендеринга в Magento
Система рендеринга в MagentoСистема рендеринга в Magento
Система рендеринга в MagentoMagecom 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 BBQMichelangelo van Dam
 
Yearning jQuery
Yearning jQueryYearning jQuery
Yearning jQueryRemy 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
 

What's hot (20)

Curso Symfony - Clase 4
Curso Symfony - Clase 4Curso Symfony - Clase 4
Curso Symfony - Clase 4
 
Apigility reloaded
Apigility reloadedApigility reloaded
Apigility reloaded
 
Advanced Django
Advanced DjangoAdvanced Django
Advanced Django
 
Virtual Madness @ Etsy
Virtual Madness @ EtsyVirtual Madness @ Etsy
Virtual Madness @ Etsy
 
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
 
Proposed PHP function: is_literal()
Proposed PHP function: is_literal()Proposed PHP function: is_literal()
Proposed PHP function: is_literal()
 
Data Validation models
Data Validation modelsData Validation models
Data Validation models
 
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
 
Dependency Injection in PHP
Dependency Injection in PHPDependency Injection in PHP
Dependency Injection in PHP
 
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
 
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
 
Unit testing zend framework apps
Unit testing zend framework appsUnit testing zend framework apps
Unit testing zend framework apps
 
My app is secure... I think
My app is secure... I thinkMy app is secure... I think
My app is secure... I think
 
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
 
Min-Maxing Software Costs
Min-Maxing Software CostsMin-Maxing Software Costs
Min-Maxing Software Costs
 
Система рендеринга в Magento
Система рендеринга в MagentoСистема рендеринга в Magento
Система рендеринга в Magento
 
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
 
Yearning jQuery
Yearning jQueryYearning jQuery
Yearning jQuery
 
Is HTML5 Ready? (workshop)
Is HTML5 Ready? (workshop)Is HTML5 Ready? (workshop)
Is HTML5 Ready? (workshop)
 
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?
 

Viewers also liked

Bolivia expedition 2016
Bolivia expedition 2016Bolivia expedition 2016
Bolivia expedition 2016lprovaznikova
 
підлягають погодженню з профкомом
підлягають погодженню з профкомомпідлягають погодженню з профкомом
підлягають погодженню з профкомомRebbit2015
 
Question 1 - 2k15 Exam Preparation Day
Question 1 - 2k15 Exam Preparation DayQuestion 1 - 2k15 Exam Preparation Day
Question 1 - 2k15 Exam Preparation DayLeon Marsden
 
Presentatie Inclusief Onderwijs Dark&Light
Presentatie Inclusief Onderwijs Dark&LightPresentatie Inclusief Onderwijs Dark&Light
Presentatie Inclusief Onderwijs Dark&Lightguest15308f
 
Digital Preservation for DAMs
Digital Preservation for DAMsDigital Preservation for DAMs
Digital Preservation for DAMsEmily 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_inglesFanny
 
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 2015Brandhome
 

Viewers also liked (17)

Bolivia expedition 2016
Bolivia expedition 2016Bolivia expedition 2016
Bolivia expedition 2016
 
El narcotrafico
El narcotraficoEl narcotrafico
El narcotrafico
 
підлягають погодженню з профкомом
підлягають погодженню з профкомомпідлягають погодженню з профкомом
підлягають погодженню з профкомом
 
Catalogue diwali 2016
Catalogue diwali 2016Catalogue diwali 2016
Catalogue diwali 2016
 
Question 1 - 2k15 Exam Preparation Day
Question 1 - 2k15 Exam Preparation DayQuestion 1 - 2k15 Exam Preparation Day
Question 1 - 2k15 Exam Preparation Day
 
Presentatie Inclusief Onderwijs Dark&Light
Presentatie Inclusief Onderwijs Dark&LightPresentatie Inclusief Onderwijs Dark&Light
Presentatie Inclusief Onderwijs Dark&Light
 
Digital Preservation for DAMs
Digital Preservation for DAMsDigital Preservation for DAMs
Digital Preservation for DAMs
 
Kitab dua hari raya
Kitab dua hari rayaKitab dua hari raya
Kitab dua hari raya
 
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)
 
Etica ciudadana
Etica ciudadanaEtica ciudadana
Etica ciudadana
 
Douglas-Gallant-M.B.A
Douglas-Gallant-M.B.ADouglas-Gallant-M.B.A
Douglas-Gallant-M.B.A
 
Membina keluarga
Membina keluargaMembina keluarga
Membina keluarga
 
Ucapan perpisahan
Ucapan perpisahanUcapan perpisahan
Ucapan perpisahan
 
Fanny trabajo de_ingles
Fanny trabajo de_inglesFanny trabajo de_ingles
Fanny trabajo de_ingles
 
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...
 
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...
 
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
 

Similar to Zf2 how arrays will save your project

Ростислав Михайлив "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 2Adam Culp
 
Zend Framework 2 - Basic Components
Zend Framework 2  - Basic ComponentsZend Framework 2  - Basic Components
Zend Framework 2 - Basic ComponentsMateusz 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 itSteve 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] 2015David 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 2Enrico Zimuel
 
ZF2 for the ZF1 Developer
ZF2 for the ZF1 DeveloperZF2 for the ZF1 Developer
ZF2 for the ZF1 DeveloperGary Hockin
 
Foundations of Zend Framework
Foundations of Zend FrameworkFoundations of Zend Framework
Foundations of Zend FrameworkAdam Culp
 
Zend Framework 2 quick start
Zend Framework 2 quick startZend Framework 2 quick start
Zend Framework 2 quick startEnrico 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 trenchesLukas Smith
 
JavaScript Modules in Practice
JavaScript Modules in PracticeJavaScript Modules in Practice
JavaScript Modules in PracticeMaghdebura
 
IPC 2015 ZF2rapid
IPC 2015 ZF2rapidIPC 2015 ZF2rapid
IPC 2015 ZF2rapidRalf 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 - bredaphpDamien 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
 

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

Zf2 phpquebec
Zf2 phpquebecZf2 phpquebec
Zf2 phpquebec
 
Ростислав Михайлив "Zend Framework 3 - evolution or revolution"
Ростислав Михайлив "Zend Framework 3 - evolution or revolution"Ростислав Михайлив "Zend Framework 3 - evolution or revolution"
Ростислав Михайлив "Zend Framework 3 - evolution or revolution"
 
Deprecated: Foundations of Zend Framework 2
Deprecated: Foundations of Zend Framework 2Deprecated: Foundations of Zend Framework 2
Deprecated: Foundations of Zend Framework 2
 
Zend Framework 2 - Basic Components
Zend Framework 2  - Basic ComponentsZend Framework 2  - Basic Components
Zend Framework 2 - Basic Components
 
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
 
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
 
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
 
ZF2 for the ZF1 Developer
ZF2 for the ZF1 DeveloperZF2 for the ZF1 Developer
ZF2 for the ZF1 Developer
 
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
 
Foundations of Zend Framework
Foundations of Zend FrameworkFoundations of Zend Framework
Foundations of Zend Framework
 
Zend Framework 2 quick start
Zend Framework 2 quick startZend Framework 2 quick start
Zend Framework 2 quick start
 
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)
 
Symfony2 - from the trenches
Symfony2 - from the trenchesSymfony2 - from the trenches
Symfony2 - from the trenches
 
JavaScript Modules in Practice
JavaScript Modules in PracticeJavaScript Modules in Practice
JavaScript Modules in Practice
 
My name is Trinidad
My name is TrinidadMy name is Trinidad
My name is Trinidad
 
IPC 2015 ZF2rapid
IPC 2015 ZF2rapidIPC 2015 ZF2rapid
IPC 2015 ZF2rapid
 
Zend Framework 2
Zend Framework 2Zend Framework 2
Zend Framework 2
 
DDD on example of Symfony (SfCampUA14)
DDD on example of Symfony (SfCampUA14)DDD on example of Symfony (SfCampUA14)
DDD on example of Symfony (SfCampUA14)
 
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
 
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)
 

More from 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 defaultMichelangelo 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 functionsMichelangelo 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 storyMichelangelo 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 advantageMichelangelo van Dam
 
Open source for a successful business
Open source for a successful businessOpen source for a successful business
Open source for a successful businessMichelangelo 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 laterMichelangelo 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 minutesMichelangelo 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 heavenMichelangelo 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 apiMichelangelo van Dam
 

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
 
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
 
Privacy by design
Privacy by designPrivacy by design
Privacy by design
 
DevOps or DevSecOps
DevOps or DevSecOpsDevOps or DevSecOps
DevOps or DevSecOps
 
Privacy by design
Privacy by designPrivacy by design
Privacy by design
 
Continuous deployment 2.0
Continuous deployment 2.0Continuous deployment 2.0
Continuous deployment 2.0
 
Let your tests drive your code
Let your tests drive your codeLet your tests drive your code
Let your tests drive your code
 
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
 
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
 
The road to php 7.1
The road to php 7.1The road to php 7.1
The road to php 7.1
 
Open source for a successful business
Open source for a successful businessOpen source for a successful business
Open source for a successful business
 
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
 
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
 
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
 
Getting hands dirty with php7
Getting hands dirty with php7Getting hands dirty with php7
Getting hands dirty with php7
 
Create, test, secure, repeat
Create, test, secure, repeatCreate, test, secure, repeat
Create, test, secure, repeat
 
The Continuous PHP Pipeline
The Continuous PHP PipelineThe Continuous PHP Pipeline
The Continuous PHP Pipeline
 
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
 
Your code are my tests
Your code are my testsYour code are my tests
Your code are my tests
 
200K+ reasons security is a must
200K+ reasons security is a must200K+ reasons security is a must
200K+ reasons security is a must
 

Zf2 how arrays will save your project