Asynchronous processing with PHP and Symfony2. Do it simple

Kirill Chebunin
Kirill ChebuninSenior Backend Developer Scala/Java at OneFactor
Asynchronous processing with PHP and Symfony2

Do it simple
Kirill chEbba Chebunin
Overview. The Problem

REQUEST

RESPONSE

Expected Response

Complete Logic

Kirill chEbba Chebunin
Overview. Examples

• Data transfer and manipulation !
• File upload!
• Video conversion!
• Massive business logic !
• Billing!
• Social!
• 3rd-party communication!
• API calls !
• Notifications

Kirill chEbba Chebunin
Overview. The Solution

REQUEST RESPONSE

Required Logic
Remaining Logic
Kirill chEbba Chebunin
Experience. The Real Project

http://hopeliesat24framespersecond.files.wordpress.com/2011/12/love_actually_movie_image_bill_nighy_01.jpg

Kirill chEbba Chebunin
Experience. Billing

Partners

Billing Aggregator

Service Providers
Kirill chEbba Chebunin
Experience. Billing. 2012

Worker
Worker
Worker

Worker

Master

Worker
Worker

Kirill chEbba Chebunin
Experience. Billing. Revolution

Made b
y Vasily
coyl Ku
lakov

http://darkroom.baltimoresun.com/wp-content/uploads/2012/05/REU-CUBA-MAYDAY-1.jpg

Kirill chEbba Chebunin
Theory

http://marketmybook.in/wp-content/uploads/2013/05/Library-Books.jpg

Kirill chEbba Chebunin
Theory. Master-Worker

Worker

Worker

Master

Worker

Kirill chEbba Chebunin
Theory. Master-Worker. Conclusions

• Process control!
• Resources in workers!
• Long living workers!
• Memory control!
• Signal support

Kirill chEbba Chebunin
Theory. RabbitMQ

http://www.rabbitmq.com/img/tutorials/intro/hello-world-example-routing.png

Kirill chEbba Chebunin
RabbitMQ

• 1 exchange => multiple queries =
topic!
• Query = Worker type!
• Durable exchanges/queries!
• Persistent messages!
• autoAck=false

Kirill chEbba Chebunin
Experience. Billing. Review

http://bi.gazeta.pl/im/84/96/d8/z14194308Q,Najglupsze-pomysly-mistrzow-prowizorki.jpg

Kirill chEbba Chebunin
New world. Master

• Master process => supervisor!
• Start workers!
• Worker count!
• Signaled shutdown!
• Auto-restart on failure!
• Memory control!
• ………….

Kirill chEbba Chebunin
New world. Supervisor
Example config	

!
[program:billing_statistics]
process_name=%(program_name)s_%(process_num)d
numprocs=4
stdout_logfile=/var/log/supervisor/%(program_name)s.out.log
stderr_logfile=/var/log/supervisor/%(program_name)s.error.log
command=billing rabbitmq:consumer statistics
autorestart=true
autostart=true

Kirill chEbba Chebunin
New world. Publish/Subscribe

• oldsound/rabbitmq-bundle!
• Exchange/Queue setup!
• Producers!
• Consumers!
• Command = worker!
• Events!
• Special event name!
• Producer Listener

Kirill chEbba Chebunin
Experience. Billing. 2013

Worker

Worker

Worker

Worker

Worker

Worker

Supervisor

Kirill chEbba Chebunin
Profit?

Kirill chEbba Chebunin
Future. Publish/Subscribe. Improve!

• Send any event to async processing!
• Use listeners as workers!
• Different message bus

Kirill chEbba Chebunin
Future

Kirill chEbba Chebunin
EventBand

EventBand

http://baadu.ru/ph/8/polosy_na_stene_1280x1024.jpg

Kirill chEbba Chebunin
EventBand. Overview

Dispatcher
Band#1

Listener

Listener

Band#2

Listener

Band#3
Event

Listener
Listener

Listener

Listener

Listener

Listener

Listener

Band#4

Listener

Listener

Band#5

Listener

Listener

Band#6

Listener

Current

Listener

Default
Band

Kirill chEbba Chebunin
EventBand. Architecture

PublishListener

Listener
Listener
Listener
Listener

T	

R	

A	

N	

S	

P	

O	

R	

T

Listener
Band#1

Listener
Listener

Band#2

Listener
Listener

Band#3

Listener

Kirill chEbba Chebunin
EventBand. Architecture
• Dispatcher!
• Band support!
• Abstract Subscribers!
• Adapters (Symfony, ZF, …)!
• Transport!
• Setup!
• Publisher!
• Storage!
• Routing!
• Consumer!
• Adapters (RabbitMQ, ActiveMQ, Gearman, …)

Kirill chEbba Chebunin
EventBand. Utilities

• Event Serialization!
• Native!
• JMS!
• Event Routing!
• By name!
• By properties (PropertyAccess)

Kirill chEbba Chebunin
EventBand. Example. Code
Dispatch:
!
$dispatcher->dispatch('foo.bar', new FooEvent($foo, $bar));
!
…………………………………………………………
!
Subscribe:
!
public function logFooBar(FooEvent $event)
{
$this->service->saveLog($event->getFoo(), $event->getBar());
}
!
!
<service id="log_subscriber" class="FooBarLogSubscriber">
<tag name="kernel.event_subscriber" band=“foo.bar.log" />
</service>

Kirill chEbba Chebunin
EventBand. Example. Config
transports:
amqp:
driver: amqplib
connections:
default: ~
exchanges:
foo: ~
queues:
foo.bar.log:
bind:
foo: "foo.bar"

!
publishers:
foo:
events: "foo.#"

!
consumers:
foo.bar.log: ~

Kirill chEbba Chebunin
EventBand. Wanna Play?
https://packagist.org/packages/event-band/

Kirill chEbba Chebunin
Experience. Patterns

• Identified Event!
• id, time, sequence, process!
• logging (sqlite)!
• Delayed Event!
• original event, delay!
• delay time => queue!
• ordered queue!
• sleep until delay

Kirill chEbba Chebunin
Experience. Troubleshooting

• Doctrine!
• SqlLogger!
• Unit of Work!
• flush, detach!
• Array properties

Kirill chEbba Chebunin
Questions?

Cool Image 	

with 	

Cats and Boobs

Kirill chEbba Chebunin	

iam@chebba.org	

https://github.com/chEbba	

https://twitter.com/iamchEbba

Kirill chEbba Chebunin
1 of 32

Recommended

Voice Applications with Adhearsion by
Voice Applications with AdhearsionVoice Applications with Adhearsion
Voice Applications with AdhearsionMojo Lingo
400 views46 slides
Voice Applications with Adhearsion @ ATLAUG 2012 by
Voice Applications with Adhearsion @ ATLAUG 2012Voice Applications with Adhearsion @ ATLAUG 2012
Voice Applications with Adhearsion @ ATLAUG 2012Adhearsion Foundation
440 views47 slides
How to Supercharge your PHP Web API by
How to Supercharge your PHP Web APIHow to Supercharge your PHP Web API
How to Supercharge your PHP Web APIAurimas Niekis
56 views30 slides
Magento 2 performance profiling and best practices by
Magento 2 performance profiling and best practicesMagento 2 performance profiling and best practices
Magento 2 performance profiling and best practicesJacques Bodin-Hullin
608 views32 slides
Docker Docker - Docker Security - Docker by
Docker Docker - Docker Security - DockerDocker Docker - Docker Security - Docker
Docker Docker - Docker Security - DockerBoyd Hemphill
2.7K views71 slides
Freelancing and side-projects on Rails by
Freelancing and side-projects on RailsFreelancing and side-projects on Rails
Freelancing and side-projects on RailsJohn McCaffrey
1.4K views30 slides

More Related Content

What's hot

Interns What Is DevOps by
Interns What Is DevOpsInterns What Is DevOps
Interns What Is DevOpsAaron Blythe
516 views59 slides
WP REST API - Adding Your Own Endpoint by
WP REST API - Adding Your Own EndpointWP REST API - Adding Your Own Endpoint
WP REST API - Adding Your Own EndpointKeanan Koppenhaver
649 views16 slides
Lessons Learned From Cross-Platform at Airbnb + MvRx by
Lessons Learned From Cross-Platform at Airbnb + MvRxLessons Learned From Cross-Platform at Airbnb + MvRx
Lessons Learned From Cross-Platform at Airbnb + MvRxGabriel Peal
299 views53 slides
Introduction to jOOQ by
Introduction to jOOQIntroduction to jOOQ
Introduction to jOOQKostadin Golev
326 views12 slides
7 Steps to a Successful Enterprise Site Transition by
7 Steps to a Successful Enterprise Site Transition7 Steps to a Successful Enterprise Site Transition
7 Steps to a Successful Enterprise Site TransitionBFO
354 views25 slides
Intro to Ember CLI by
Intro to Ember CLIIntro to Ember CLI
Intro to Ember CLIJay Phelps
1.7K views70 slides

What's hot(17)

Interns What Is DevOps by Aaron Blythe
Interns What Is DevOpsInterns What Is DevOps
Interns What Is DevOps
Aaron Blythe516 views
Lessons Learned From Cross-Platform at Airbnb + MvRx by Gabriel Peal
Lessons Learned From Cross-Platform at Airbnb + MvRxLessons Learned From Cross-Platform at Airbnb + MvRx
Lessons Learned From Cross-Platform at Airbnb + MvRx
Gabriel Peal299 views
7 Steps to a Successful Enterprise Site Transition by BFO
7 Steps to a Successful Enterprise Site Transition7 Steps to a Successful Enterprise Site Transition
7 Steps to a Successful Enterprise Site Transition
BFO354 views
Intro to Ember CLI by Jay Phelps
Intro to Ember CLIIntro to Ember CLI
Intro to Ember CLI
Jay Phelps1.7K views
Api fundamentals by AgileDenver
Api fundamentalsApi fundamentals
Api fundamentals
AgileDenver1.5K views
eZ Publish 5: from zero to automated deployment (and no regressions!) in one ... by Gaetano Giunta
eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...
eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...
Gaetano Giunta816 views
6 reasons Jubilee could be a Rubyist's new best friend by Forrest Chang
6 reasons Jubilee could be a Rubyist's new best friend6 reasons Jubilee could be a Rubyist's new best friend
6 reasons Jubilee could be a Rubyist's new best friend
Forrest Chang76.7K views
CQRS and EventSourcing with Spring & Axon by nklmish
CQRS and EventSourcing with Spring & AxonCQRS and EventSourcing with Spring & Axon
CQRS and EventSourcing with Spring & Axon
nklmish1.3K views
TDC2016SP - Otimização Prematura: a Raíz de Todo o Mal by tdc-globalcode
TDC2016SP - Otimização Prematura: a Raíz de Todo o MalTDC2016SP - Otimização Prematura: a Raíz de Todo o Mal
TDC2016SP - Otimização Prematura: a Raíz de Todo o Mal
tdc-globalcode390 views
Becoming a more productive Rails Developer by John McCaffrey
Becoming a more productive Rails DeveloperBecoming a more productive Rails Developer
Becoming a more productive Rails Developer
John McCaffrey794 views
LinkedIn's Active/Active Evolution by C4Media
LinkedIn's Active/Active EvolutionLinkedIn's Active/Active Evolution
LinkedIn's Active/Active Evolution
C4Media651 views

Viewers also liked

Scaling Symfony2 apps with RabbitMQ - Symfony UK Meetup by
Scaling Symfony2 apps with RabbitMQ - Symfony UK MeetupScaling Symfony2 apps with RabbitMQ - Symfony UK Meetup
Scaling Symfony2 apps with RabbitMQ - Symfony UK MeetupKacper Gunia
25.5K views81 slides
Speed up your Symfony2 application and build awesome features with Redis by
Speed up your Symfony2 application and build awesome features with RedisSpeed up your Symfony2 application and build awesome features with Redis
Speed up your Symfony2 application and build awesome features with RedisRicard Clau
27.7K views52 slides
The promise of asynchronous PHP by
The promise of asynchronous PHPThe promise of asynchronous PHP
The promise of asynchronous PHPWim Godden
16.4K views45 slides
Integrando Redis en aplicaciones Symfony2 by
Integrando Redis en aplicaciones Symfony2Integrando Redis en aplicaciones Symfony2
Integrando Redis en aplicaciones Symfony2Ronny López
5.7K views105 slides
Asynchronous I/O in PHP by
Asynchronous I/O in PHPAsynchronous I/O in PHP
Asynchronous I/O in PHPThomas Weinert
8.2K views22 slides
Effective Doctrine2: Performance Tips for Symfony2 Developers by
Effective Doctrine2: Performance Tips for Symfony2 DevelopersEffective Doctrine2: Performance Tips for Symfony2 Developers
Effective Doctrine2: Performance Tips for Symfony2 DevelopersMarcin Chwedziak
36.6K views66 slides

Viewers also liked(20)

Scaling Symfony2 apps with RabbitMQ - Symfony UK Meetup by Kacper Gunia
Scaling Symfony2 apps with RabbitMQ - Symfony UK MeetupScaling Symfony2 apps with RabbitMQ - Symfony UK Meetup
Scaling Symfony2 apps with RabbitMQ - Symfony UK Meetup
Kacper Gunia25.5K views
Speed up your Symfony2 application and build awesome features with Redis by Ricard Clau
Speed up your Symfony2 application and build awesome features with RedisSpeed up your Symfony2 application and build awesome features with Redis
Speed up your Symfony2 application and build awesome features with Redis
Ricard Clau27.7K views
The promise of asynchronous PHP by Wim Godden
The promise of asynchronous PHPThe promise of asynchronous PHP
The promise of asynchronous PHP
Wim Godden16.4K views
Integrando Redis en aplicaciones Symfony2 by Ronny López
Integrando Redis en aplicaciones Symfony2Integrando Redis en aplicaciones Symfony2
Integrando Redis en aplicaciones Symfony2
Ronny López5.7K views
Effective Doctrine2: Performance Tips for Symfony2 Developers by Marcin Chwedziak
Effective Doctrine2: Performance Tips for Symfony2 DevelopersEffective Doctrine2: Performance Tips for Symfony2 Developers
Effective Doctrine2: Performance Tips for Symfony2 Developers
Marcin Chwedziak36.6K views
Asynchronous PHP and Real-time Messaging by Steve Rhoades
Asynchronous PHP and Real-time MessagingAsynchronous PHP and Real-time Messaging
Asynchronous PHP and Real-time Messaging
Steve Rhoades19.2K views
Rationally boost your symfony2 application with caching tips and monitoring by Giulio De Donato
Rationally boost your symfony2 application with caching tips and monitoringRationally boost your symfony2 application with caching tips and monitoring
Rationally boost your symfony2 application with caching tips and monitoring
Giulio De Donato70.6K views
Symfony tips and tricks by Javier Eguiluz
Symfony tips and tricksSymfony tips and tricks
Symfony tips and tricks
Javier Eguiluz54.3K views
Symfony bundle fo asynchronous job processing by Wojciech Ciołko
Symfony bundle fo asynchronous job processingSymfony bundle fo asynchronous job processing
Symfony bundle fo asynchronous job processing
Wojciech Ciołko1.5K views
Symfony y Admin Generator by Javier López
Symfony y Admin GeneratorSymfony y Admin Generator
Symfony y Admin Generator
Javier López1.5K views
What RabbitMQ Can Do For You (Nomad PHP May 2014) by James Titcumb
What RabbitMQ Can Do For You (Nomad PHP May 2014)What RabbitMQ Can Do For You (Nomad PHP May 2014)
What RabbitMQ Can Do For You (Nomad PHP May 2014)
James Titcumb1.4K views
Mis primeros pasos con Symfony 2 by Edgar Dueñas
Mis primeros pasos con Symfony 2Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2
Edgar Dueñas2.9K views
Theres a rabbit on my symfony by Alvaro Videla
Theres a rabbit on my symfonyTheres a rabbit on my symfony
Theres a rabbit on my symfony
Alvaro Videla83.5K views
Telephony with OpenShift Twilio and MongoDB by Mark Atwood
Telephony with OpenShift Twilio and MongoDBTelephony with OpenShift Twilio and MongoDB
Telephony with OpenShift Twilio and MongoDB
Mark Atwood7K views
Increase your performance and code quality by Dusko Vesin
Increase your performance and code qualityIncrease your performance and code quality
Increase your performance and code quality
Dusko Vesin733 views

Similar to Asynchronous processing with PHP and Symfony2. Do it simple

How to make webinars your #1 acquisition channel by
How to make webinars your #1 acquisition channelHow to make webinars your #1 acquisition channel
How to make webinars your #1 acquisition channelUnbounce
5.1K views61 slides
Debugging Effectively - ConFoo Montreal 2019 by
Debugging Effectively - ConFoo Montreal 2019Debugging Effectively - ConFoo Montreal 2019
Debugging Effectively - ConFoo Montreal 2019Colin O'Dell
499 views70 slides
Debugging Effectively - DrupalCon Nashville 2018 by
Debugging Effectively - DrupalCon Nashville 2018Debugging Effectively - DrupalCon Nashville 2018
Debugging Effectively - DrupalCon Nashville 2018Colin O'Dell
830 views70 slides
Culture over-process by
Culture over-processCulture over-process
Culture over-processArthur Lokaychuk
8.1K views95 slides
Non equilibrium Molecular Simulations of Polymers under Flow: Saving Energy t... by
Non equilibrium Molecular Simulations of Polymers under Flow: Saving Energy t...Non equilibrium Molecular Simulations of Polymers under Flow: Saving Energy t...
Non equilibrium Molecular Simulations of Polymers under Flow: Saving Energy t...ORAU
256 views26 slides
OpenValue Vienna meetup september 2020 - Better software, faster: Principles ... by
OpenValue Vienna meetup september 2020 - Better software, faster: Principles ...OpenValue Vienna meetup september 2020 - Better software, faster: Principles ...
OpenValue Vienna meetup september 2020 - Better software, faster: Principles ...Bert Jan Schrijver
256 views59 slides

Similar to Asynchronous processing with PHP and Symfony2. Do it simple(20)

How to make webinars your #1 acquisition channel by Unbounce
How to make webinars your #1 acquisition channelHow to make webinars your #1 acquisition channel
How to make webinars your #1 acquisition channel
Unbounce5.1K views
Debugging Effectively - ConFoo Montreal 2019 by Colin O'Dell
Debugging Effectively - ConFoo Montreal 2019Debugging Effectively - ConFoo Montreal 2019
Debugging Effectively - ConFoo Montreal 2019
Colin O'Dell499 views
Debugging Effectively - DrupalCon Nashville 2018 by Colin O'Dell
Debugging Effectively - DrupalCon Nashville 2018Debugging Effectively - DrupalCon Nashville 2018
Debugging Effectively - DrupalCon Nashville 2018
Colin O'Dell830 views
Non equilibrium Molecular Simulations of Polymers under Flow: Saving Energy t... by ORAU
Non equilibrium Molecular Simulations of Polymers under Flow: Saving Energy t...Non equilibrium Molecular Simulations of Polymers under Flow: Saving Energy t...
Non equilibrium Molecular Simulations of Polymers under Flow: Saving Energy t...
ORAU256 views
OpenValue Vienna meetup september 2020 - Better software, faster: Principles ... by Bert Jan Schrijver
OpenValue Vienna meetup september 2020 - Better software, faster: Principles ...OpenValue Vienna meetup september 2020 - Better software, faster: Principles ...
OpenValue Vienna meetup september 2020 - Better software, faster: Principles ...
Bert Jan Schrijver256 views
WordPress - Whats going on in the server? by Herb Miller
WordPress - Whats going on in the server? WordPress - Whats going on in the server?
WordPress - Whats going on in the server?
Herb Miller475 views
Patterns of the Lambda Architecture -- 2015 April - Hadoop Summit, Europe by Flip Kromer
Patterns of the Lambda Architecture -- 2015 April - Hadoop Summit, EuropePatterns of the Lambda Architecture -- 2015 April - Hadoop Summit, Europe
Patterns of the Lambda Architecture -- 2015 April - Hadoop Summit, Europe
Flip Kromer976 views
Debugging Effectively - All Things Open 2017 by Colin O'Dell
Debugging Effectively - All Things Open 2017Debugging Effectively - All Things Open 2017
Debugging Effectively - All Things Open 2017
Colin O'Dell1.1K views
Making Your Product Manager Productive by Clinton Wolfe by DevOpsDays Baltimore
Making Your Product Manager Productive by Clinton WolfeMaking Your Product Manager Productive by Clinton Wolfe
Making Your Product Manager Productive by Clinton Wolfe
Making Your Product Manager Productive by Clinton Wolfe by DevOpsDays Baltimore
Making Your Product Manager Productive by Clinton Wolfe Making Your Product Manager Productive by Clinton Wolfe
Making Your Product Manager Productive by Clinton Wolfe
A Business Case for Git - Tim Pettersen by Atlassian
A Business Case for Git - Tim PettersenA Business Case for Git - Tim Pettersen
A Business Case for Git - Tim Pettersen
Atlassian7.2K views
Innovation dank DevOps (DevOpsCon Berlin 2015) by Wooga
Innovation dank DevOps (DevOpsCon Berlin 2015)Innovation dank DevOps (DevOpsCon Berlin 2015)
Innovation dank DevOps (DevOpsCon Berlin 2015)
Wooga2.6K views
Kanban highlights by Yuval Yeret
Kanban highlightsKanban highlights
Kanban highlights
Yuval Yeret6.7K views
Debugging Effectively - ZendCon 2016 by Colin O'Dell
Debugging Effectively - ZendCon 2016Debugging Effectively - ZendCon 2016
Debugging Effectively - ZendCon 2016
Colin O'Dell520 views
Devoxx Belgium 2019 - Better software, faster: Principles of Continuous Deliv... by Bert Jan Schrijver
Devoxx Belgium 2019 - Better software, faster: Principles of Continuous Deliv...Devoxx Belgium 2019 - Better software, faster: Principles of Continuous Deliv...
Devoxx Belgium 2019 - Better software, faster: Principles of Continuous Deliv...
Bert Jan Schrijver331 views
Continuous Delivery: better software, faster. by Bert Jan Schrijver
Continuous Delivery: better software, faster.Continuous Delivery: better software, faster.
Continuous Delivery: better software, faster.
Bert Jan Schrijver286 views
OpenValue meetup June 2019 - Better, software faster: Principles of Continuou... by Bert Jan Schrijver
OpenValue meetup June 2019 - Better, software faster: Principles of Continuou...OpenValue meetup June 2019 - Better, software faster: Principles of Continuou...
OpenValue meetup June 2019 - Better, software faster: Principles of Continuou...
Bert Jan Schrijver155 views

More from Kirill Chebunin

Rich Model And Layered Architecture in SF2 Application by
Rich Model And Layered Architecture in SF2 ApplicationRich Model And Layered Architecture in SF2 Application
Rich Model And Layered Architecture in SF2 ApplicationKirill Chebunin
3.7K views36 slides
Dependency management in PHP & ZendFramework 2 by
Dependency management in PHP & ZendFramework 2Dependency management in PHP & ZendFramework 2
Dependency management in PHP & ZendFramework 2Kirill Chebunin
3.9K views32 slides
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 2, Dependency I... by
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 2, Dependency I...ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 2, Dependency I...
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 2, Dependency I...Kirill Chebunin
751 views29 slides
Чуть сложнее чем Singleton: аннотации, IOC, АОП by
Чуть сложнее чем Singleton: аннотации, IOC, АОПЧуть сложнее чем Singleton: аннотации, IOC, АОП
Чуть сложнее чем Singleton: аннотации, IOC, АОПKirill Chebunin
1.4K views45 slides
Composer - Package Management for PHP. Silver Bullet? by
Composer - Package Management for PHP. Silver Bullet?Composer - Package Management for PHP. Silver Bullet?
Composer - Package Management for PHP. Silver Bullet?Kirill Chebunin
4.2K views21 slides
Symfony2 Service Container: Inject me, my friend by
Symfony2 Service Container: Inject me, my friendSymfony2 Service Container: Inject me, my friend
Symfony2 Service Container: Inject me, my friendKirill Chebunin
8.2K views43 slides

More from Kirill Chebunin(6)

Rich Model And Layered Architecture in SF2 Application by Kirill Chebunin
Rich Model And Layered Architecture in SF2 ApplicationRich Model And Layered Architecture in SF2 Application
Rich Model And Layered Architecture in SF2 Application
Kirill Chebunin3.7K views
Dependency management in PHP & ZendFramework 2 by Kirill Chebunin
Dependency management in PHP & ZendFramework 2Dependency management in PHP & ZendFramework 2
Dependency management in PHP & ZendFramework 2
Kirill Chebunin3.9K views
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 2, Dependency I... by Kirill Chebunin
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 2, Dependency I...ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 2, Dependency I...
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 2, Dependency I...
Kirill Chebunin751 views
Чуть сложнее чем Singleton: аннотации, IOC, АОП by Kirill Chebunin
Чуть сложнее чем Singleton: аннотации, IOC, АОПЧуть сложнее чем Singleton: аннотации, IOC, АОП
Чуть сложнее чем Singleton: аннотации, IOC, АОП
Kirill Chebunin1.4K views
Composer - Package Management for PHP. Silver Bullet? by Kirill Chebunin
Composer - Package Management for PHP. Silver Bullet?Composer - Package Management for PHP. Silver Bullet?
Composer - Package Management for PHP. Silver Bullet?
Kirill Chebunin4.2K views
Symfony2 Service Container: Inject me, my friend by Kirill Chebunin
Symfony2 Service Container: Inject me, my friendSymfony2 Service Container: Inject me, my friend
Symfony2 Service Container: Inject me, my friend
Kirill Chebunin8.2K views

Recently uploaded

Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue by
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlueElevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlueShapeBlue
70 views7 slides
Igniting Next Level Productivity with AI-Infused Data Integration Workflows by
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Safe Software
317 views86 slides
NTGapps NTG LowCode Platform by
NTGapps NTG LowCode Platform NTGapps NTG LowCode Platform
NTGapps NTG LowCode Platform Mustafa Kuğu
28 views30 slides
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ... by
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...Jasper Oosterveld
27 views49 slides
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or... by
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...ShapeBlue
64 views20 slides
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院 by
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院IttrainingIttraining
69 views8 slides

Recently uploaded(20)

Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue by ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlueElevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
ShapeBlue70 views
Igniting Next Level Productivity with AI-Infused Data Integration Workflows by Safe Software
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Safe Software317 views
NTGapps NTG LowCode Platform by Mustafa Kuğu
NTGapps NTG LowCode Platform NTGapps NTG LowCode Platform
NTGapps NTG LowCode Platform
Mustafa Kuğu28 views
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ... by Jasper Oosterveld
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or... by ShapeBlue
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
ShapeBlue64 views
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院 by IttrainingIttraining
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue by ShapeBlue
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlueVNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue
ShapeBlue62 views
Business Analyst Series 2023 - Week 4 Session 7 by DianaGray10
Business Analyst Series 2023 -  Week 4 Session 7Business Analyst Series 2023 -  Week 4 Session 7
Business Analyst Series 2023 - Week 4 Session 7
DianaGray1042 views
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue by ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlueCloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
ShapeBlue26 views
DRBD Deep Dive - Philipp Reisner - LINBIT by ShapeBlue
DRBD Deep Dive - Philipp Reisner - LINBITDRBD Deep Dive - Philipp Reisner - LINBIT
DRBD Deep Dive - Philipp Reisner - LINBIT
ShapeBlue44 views
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T by ShapeBlue
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&TCloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T
ShapeBlue38 views
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ... by ShapeBlue
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
ShapeBlue46 views
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R... by ShapeBlue
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...
ShapeBlue37 views
Data Integrity for Banking and Financial Services by Precisely
Data Integrity for Banking and Financial ServicesData Integrity for Banking and Financial Services
Data Integrity for Banking and Financial Services
Precisely29 views
Keynote Talk: Open Source is Not Dead - Charles Schulz - Vates by ShapeBlue
Keynote Talk: Open Source is Not Dead - Charles Schulz - VatesKeynote Talk: Open Source is Not Dead - Charles Schulz - Vates
Keynote Talk: Open Source is Not Dead - Charles Schulz - Vates
ShapeBlue84 views
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava... by ShapeBlue
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...
Centralized Logging Feature in CloudStack using ELK and Grafana - Kiran Chava...
ShapeBlue28 views
KVM Security Groups Under the Hood - Wido den Hollander - Your.Online by ShapeBlue
KVM Security Groups Under the Hood - Wido den Hollander - Your.OnlineKVM Security Groups Under the Hood - Wido den Hollander - Your.Online
KVM Security Groups Under the Hood - Wido den Hollander - Your.Online
ShapeBlue75 views
Business Analyst Series 2023 - Week 3 Session 5 by DianaGray10
Business Analyst Series 2023 -  Week 3 Session 5Business Analyst Series 2023 -  Week 3 Session 5
Business Analyst Series 2023 - Week 3 Session 5
DianaGray10345 views

Asynchronous processing with PHP and Symfony2. Do it simple

Editor's Notes

  1. {}