SlideShare a Scribd company logo
in 2 it 
Pimp legacy PHP 
apps with Apigility 
TrueNorthPHP 2014
Michelangelo van Dam 
Consultant, Community Leader, Contributor 
https://www.flickr.com/photos/akrabat/8784318813
Who builds API’s? 
http://apigee.com/about/
How do you build them? 
https://www.flickr.com/photos/florianric/7263382550
October 8, 2013 
• ZendCon keynote 
• MWOP announces Apigility 
• REST API Management Tool
Pimp legacy PHP apps with Apigility - TrueNorthPHP 2014
Pimp legacy PHP apps with Apigility - TrueNorthPHP 2014
Apigility in a nutshell 
• Full-features REST mgmt tool 
• Versioning 
• Authentication 
• Validation 
• Hypertext Application 
Language (HAL) supported 
• API Documentation
Pimp legacy PHP apps with Apigility - TrueNorthPHP 2014
https://www.flickr.com/photos/simonov/3629246570
Pimp legacy PHP apps with Apigility - TrueNorthPHP 2014
https://www.flickr.com/photos/npobre/2601582256
Requirements 
• Apigility 
• A ZF1 project 
• Composer 
• Some coding experience 
https://www.flickr.com/photos/adesigna/4090782772
Approach 
Vanilla Apigility! 
Skeleton 
Your ZF1 App Your ZF1 Libraries
Download Apigility 
git clone https://github.com/zfcampus/zf-apigility-skeleton.git zfdemo-api 
cd zfdemo-api 
php composer.phar self-update! 
php composer.phar install
Add Zend Framework 1 
vi composer.json 
"require": {! 
...! 
"zendframework/zendframework1": "~1.12"! 
} 
php composer.phar update
Add your app and lib 
git submodule add -f https://github.com/in2it/zfdemo.git vendor/zfdemo 
git submodule add -f https://github.com/in2it/In2it.git vendor/In2it
Symlink into your app 
cd vendor/zfdemo/library 
ln -s ../../zendframework/zendframework1/library/Zend Zend 
ln -s ../../In2it/library/In2it In2it 
cd ../../..
Update index.php 
sed -i ’s/APPLICATION_PATH/ZF2APP_PATH/g' public/index.php
Run Apigility 
php public/index.php development enable 
php -S 0.0.0.0:8888 -t public public/index.php 
DO NOT RUN IT LIKE THIS IN PRODUCTION!
Welcome!
https://www.flickr.com/photos/raster/3563135804
https://www.flickr.com/photos/levendis/474847831
Get started!
Create new API
Create new API
Provide a name
Pimp legacy PHP apps with Apigility - TrueNorthPHP 2014
Create new REST Service
Name the REST service
There you go: user API
Pimp legacy PHP apps with Apigility - TrueNorthPHP 2014
Modify the user API
We need the resource class
Pimp legacy PHP apps with Apigility - TrueNorthPHP 2014
Pimp legacy PHP apps with Apigility - TrueNorthPHP 2014
Get ZF1for2.php 
in2.se/zf1for2
Pimp legacy PHP apps with Apigility - TrueNorthPHP 2014
Pimp legacy PHP apps with Apigility - TrueNorthPHP 2014
Thank you MWOP & Team! 
https://www.flickr.com/photos/juokaz/4702577233
Resources 
• The Apgility site: http://apigility.org 
• My blog article: http://in2.se/1fVZ2sI 
• My github zfdemo: http://in2.se/1pu7R9b
joind.in/12722 
Slides will be made available there. 
! 
If you enjoyed this talk, thanks! 
If not, let me know how I could improve it
https://www.flickr.com/photos/drewm/3191870083

More Related Content

What's hot (20)

PDF
Introducing wsgi_lineprof / PyCon JP 2017 LT
Yusuke Miyazaki
 
PPTX
AIP Tutorial 4
Erik Ferlanti
 
PPT
Flex and .NET Integration
icaraion
 
PDF
Microservices for the Masses with Spring Boot and JHipster - RWX 2018
Matt Raible
 
PPTX
Chatbots Workshop SF JS Meetup May 2018
Tessa Mero
 
PPTX
Bringing Pull Request to Gerrit
Eryk Szymanski
 
PDF
Bootiful Development with Spring Boot and Vue - RWX 2018
Matt Raible
 
PPTX
ReactJS
Fatih Şimşek
 
PPTX
GitLab 8.6 - Release Webcast
GitLab, Inc
 
PDF
Autoscaling event driven apps
LibbySchulze
 
PPTX
EuroPython 2017 - How to make money with your Python open-source project
Max Tepkeev
 
PDF
20180124 android taipei_arinterface
PRADA Hsiung
 
PDF
GitLab webcast - Release 8.4
GitLab, Inc
 
PDF
Becoming a Git Master - Nicola Paolucci
Atlassian
 
PPTX
GitLab 8.5 Highlights and Step-by-step tutorial
Heather McNamee
 
PDF
Why You Need a Developer Relations Team for Your API
Postman
 
PPTX
Github for Serious Business Professional
zwheller
 
PDF
Bootiful Development with Spring Boot and Angular - Connect.Tech 2017
Matt Raible
 
PDF
WWDC 2016 Personal Recollection
Masayuki Iwai
 
Introducing wsgi_lineprof / PyCon JP 2017 LT
Yusuke Miyazaki
 
AIP Tutorial 4
Erik Ferlanti
 
Flex and .NET Integration
icaraion
 
Microservices for the Masses with Spring Boot and JHipster - RWX 2018
Matt Raible
 
Chatbots Workshop SF JS Meetup May 2018
Tessa Mero
 
Bringing Pull Request to Gerrit
Eryk Szymanski
 
Bootiful Development with Spring Boot and Vue - RWX 2018
Matt Raible
 
GitLab 8.6 - Release Webcast
GitLab, Inc
 
Autoscaling event driven apps
LibbySchulze
 
EuroPython 2017 - How to make money with your Python open-source project
Max Tepkeev
 
20180124 android taipei_arinterface
PRADA Hsiung
 
GitLab webcast - Release 8.4
GitLab, Inc
 
Becoming a Git Master - Nicola Paolucci
Atlassian
 
GitLab 8.5 Highlights and Step-by-step tutorial
Heather McNamee
 
Why You Need a Developer Relations Team for Your API
Postman
 
Github for Serious Business Professional
zwheller
 
Bootiful Development with Spring Boot and Angular - Connect.Tech 2017
Matt Raible
 
WWDC 2016 Personal Recollection
Masayuki Iwai
 

Viewers also liked (20)

PDF
Dealing with Legacy PHP Applications
Clinton Dreisbach
 
PDF
Dealing With Legacy PHP Applications
Viget Labs
 
PDF
PHP 7.1 : elegance of our legacy
Damien Seguy
 
PPTX
Working with Legacy Code
Eyal Golan
 
KEY
Working Effectively With Legacy Code
scidept
 
PPT
PHPBootcamp - Zend Framework
thomasw
 
PDF
Symfony2 as an api
Kifah Abbad
 
PDF
Welcome to the Symfony2 World - FOSDEM 2013
Lukas Smith
 
PDF
Transforming legacy PHP applications with Symfony2 and Varnish
Craig Marvelley
 
PDF
Working With Legacy Code
Andrea Polci
 
PPTX
Symphony Software Foundation API Working Group Proposal
Symphony Software Foundation
 
PPTX
XP Days Ukraine 2014 - Refactoring legacy code
Dmytro Mindra
 
PPTX
XPDays Ukraine: Legacy
Victor_Cr
 
PPTX
ITGM#4 Технический долг 2.0
Maxim Shulga
 
PDF
From Legacy to DDD in PHP | Tech Talks | Privalia
Jordi Vila Gallardo
 
PPTX
Club of anonimous developers "Refactoring: Legacy code"
Victor_Cr
 
PPTX
Legacy: как победить в гонке (Joker)
Victor_Cr
 
PDF
Living With Legacy Code
Rowan Merewood
 
PPTX
Considerations For an API Strategy - Ronnie MItra API Architect Layer 7 Londo...
CA API Management
 
PPT
Working Effectively With Legacy Code
Naresh Jain
 
Dealing with Legacy PHP Applications
Clinton Dreisbach
 
Dealing With Legacy PHP Applications
Viget Labs
 
PHP 7.1 : elegance of our legacy
Damien Seguy
 
Working with Legacy Code
Eyal Golan
 
Working Effectively With Legacy Code
scidept
 
PHPBootcamp - Zend Framework
thomasw
 
Symfony2 as an api
Kifah Abbad
 
Welcome to the Symfony2 World - FOSDEM 2013
Lukas Smith
 
Transforming legacy PHP applications with Symfony2 and Varnish
Craig Marvelley
 
Working With Legacy Code
Andrea Polci
 
Symphony Software Foundation API Working Group Proposal
Symphony Software Foundation
 
XP Days Ukraine 2014 - Refactoring legacy code
Dmytro Mindra
 
XPDays Ukraine: Legacy
Victor_Cr
 
ITGM#4 Технический долг 2.0
Maxim Shulga
 
From Legacy to DDD in PHP | Tech Talks | Privalia
Jordi Vila Gallardo
 
Club of anonimous developers "Refactoring: Legacy code"
Victor_Cr
 
Legacy: как победить в гонке (Joker)
Victor_Cr
 
Living With Legacy Code
Rowan Merewood
 
Considerations For an API Strategy - Ronnie MItra API Architect Layer 7 Londo...
CA API Management
 
Working Effectively With Legacy Code
Naresh Jain
 
Ad

Similar to Pimp legacy PHP apps with Apigility - TrueNorthPHP 2014 (20)

PDF
Easily extend your existing php app with an api
Michelangelo van Dam
 
PDF
Apigility – Lightning Fast API Development - OSSCamp 2014
OSSCube
 
PDF
DDC 2024 - Micro Frontends with Blazor (Cologne)
Florian Rappl
 
PDF
Howto Create & Run zf2skeleton Apps with PHP's Built-in Webserver
Master Zend Framework
 
PPTX
Sst hackathon express
Aeshan Wijetunge
 
PPTX
API Documentation Workshop tcworld India 2015
Tom Johnson
 
PPTX
Survival Strategies for API Documentation: Presentation to Southwestern Ontar...
Tom Johnson
 
PDF
Plack basics for Perl websites - YAPC::EU 2011
leo lapworth
 
PDF
NLUUG Spring 2012 - OpenShift Primer
Eric D. Schabell
 
PDF
Introduction to Apigility
Engineor
 
PPTX
Intro to Strapi 4
Shadi Akil
 
PDF
Swagger - Make your REST APIs accessible - Victor Trakhtenberg
Codemotion Tel Aviv
 
PDF
Swagger code motion talk
Victor Trakhtenberg
 
PPTX
Flutter festival gdsc juet guna
SachinVerma869778
 
PDF
Deploy a PHP App on Google App Engine
Michele Orselli
 
PDF
Crafting APIs
Tatiana Al-Chueyr
 
PDF
OpenShift Primer - get your business into the Cloud today!
Eric D. Schabell
 
PDF
Industrialise PHP ~ ZendCon Europe 2013
ekino
 
PDF
Developing Brilliant and Powerful APIs in Ruby & Python
SmartBear
 
PDF
Micro Frontends
Spyros Ioakeimidis
 
Easily extend your existing php app with an api
Michelangelo van Dam
 
Apigility – Lightning Fast API Development - OSSCamp 2014
OSSCube
 
DDC 2024 - Micro Frontends with Blazor (Cologne)
Florian Rappl
 
Howto Create & Run zf2skeleton Apps with PHP's Built-in Webserver
Master Zend Framework
 
Sst hackathon express
Aeshan Wijetunge
 
API Documentation Workshop tcworld India 2015
Tom Johnson
 
Survival Strategies for API Documentation: Presentation to Southwestern Ontar...
Tom Johnson
 
Plack basics for Perl websites - YAPC::EU 2011
leo lapworth
 
NLUUG Spring 2012 - OpenShift Primer
Eric D. Schabell
 
Introduction to Apigility
Engineor
 
Intro to Strapi 4
Shadi Akil
 
Swagger - Make your REST APIs accessible - Victor Trakhtenberg
Codemotion Tel Aviv
 
Swagger code motion talk
Victor Trakhtenberg
 
Flutter festival gdsc juet guna
SachinVerma869778
 
Deploy a PHP App on Google App Engine
Michele Orselli
 
Crafting APIs
Tatiana Al-Chueyr
 
OpenShift Primer - get your business into the Cloud today!
Eric D. Schabell
 
Industrialise PHP ~ ZendCon Europe 2013
ekino
 
Developing Brilliant and Powerful APIs in Ruby & Python
SmartBear
 
Micro Frontends
Spyros Ioakeimidis
 
Ad

More from Michelangelo van Dam (20)

PDF
GDPR Art. 25 - Privacy by design and default
Michelangelo van Dam
 
PDF
Moving from app services to azure functions
Michelangelo van Dam
 
PDF
Privacy by design
Michelangelo van Dam
 
PDF
DevOps or DevSecOps
Michelangelo van Dam
 
PDF
Privacy by design
Michelangelo van Dam
 
PDF
Continuous deployment 2.0
Michelangelo van Dam
 
PDF
Let your tests drive your code
Michelangelo van Dam
 
PDF
General Data Protection Regulation, a developer's story
Michelangelo van Dam
 
PDF
Leveraging a distributed architecture to your advantage
Michelangelo van Dam
 
PDF
The road to php 7.1
Michelangelo van Dam
 
PDF
Open source for a successful business
Michelangelo van Dam
 
PDF
Decouple your framework now, thank me later
Michelangelo van Dam
 
PDF
Deploy to azure in less then 15 minutes
Michelangelo van Dam
 
PDF
Azure and OSS, a match made in heaven
Michelangelo van Dam
 
PDF
Getting hands dirty with php7
Michelangelo van Dam
 
PDF
Zf2 how arrays will save your project
Michelangelo van Dam
 
PDF
Create, test, secure, repeat
Michelangelo van Dam
 
PDF
The Continuous PHP Pipeline
Michelangelo van Dam
 
PDF
PHPUnit Episode iv.iii: Return of the tests
Michelangelo van Dam
 
PDF
Your code are my tests
Michelangelo van Dam
 
GDPR Art. 25 - Privacy by design and default
Michelangelo van Dam
 
Moving from app services to azure functions
Michelangelo van Dam
 
Privacy by design
Michelangelo van Dam
 
DevOps or DevSecOps
Michelangelo van Dam
 
Privacy by design
Michelangelo van Dam
 
Continuous deployment 2.0
Michelangelo van Dam
 
Let your tests drive your code
Michelangelo van Dam
 
General Data Protection Regulation, a developer's story
Michelangelo van Dam
 
Leveraging a distributed architecture to your advantage
Michelangelo van Dam
 
The road to php 7.1
Michelangelo van Dam
 
Open source for a successful business
Michelangelo van Dam
 
Decouple your framework now, thank me later
Michelangelo van Dam
 
Deploy to azure in less then 15 minutes
Michelangelo van Dam
 
Azure and OSS, a match made in heaven
Michelangelo van Dam
 
Getting hands dirty with php7
Michelangelo van Dam
 
Zf2 how arrays will save your project
Michelangelo van Dam
 
Create, test, secure, repeat
Michelangelo van Dam
 
The Continuous PHP Pipeline
Michelangelo van Dam
 
PHPUnit Episode iv.iii: Return of the tests
Michelangelo van Dam
 
Your code are my tests
Michelangelo van Dam
 

Recently uploaded (20)

PDF
Module - 4 Machine Learning -22ISE62.pdf
Dr. Shivashankar
 
PDF
FSE-Journal-First-Automated code editing with search-generate-modify.pdf
cl144
 
PPTX
Introduction to File Transfer Protocol with commands in FTP
BeulahS2
 
PDF
Module - 5 Machine Learning-22ISE62.pdf
Dr. Shivashankar
 
PDF
bs-en-12390-3 testing hardened concrete.pdf
ADVANCEDCONSTRUCTION
 
PPTX
Precooling and Refrigerated storage.pptx
ThongamSunita
 
PDF
Bayesian Learning - Naive Bayes Algorithm
Sharmila Chidaravalli
 
PPTX
Artificial Intelligence jejeiejj3iriejrjifirirjdjeie
VikingsGaming2
 
PDF
Clustering Algorithms - Kmeans,Min ALgorithm
Sharmila Chidaravalli
 
PPTX
Work at Height training for workers .pptx
cecos12
 
PPTX
Stability of IBR Dominated Grids - IEEE PEDG 2025 - short.pptx
ssuser307730
 
PPT
SF 9_Unit 1.ppt software engineering ppt
AmarrKannthh
 
PDF
NFPA 10 - Estandar para extintores de incendios portatiles (ed.22 ENG).pdf
Oscar Orozco
 
PDF
LLC CM NCP1399 SIMPLIS MODEL MANUAL.PDF
ssuser1be9ce
 
PDF
Plant Control_EST_85520-01_en_AllChanges_20220127.pdf
DarshanaChathuranga4
 
PDF
PROGRAMMING REQUESTS/RESPONSES WITH GREATFREE IN THE CLOUD ENVIRONMENT
samueljackson3773
 
PDF
PRIZ Academy - Process functional modelling
PRIZ Guru
 
PDF
01-introduction to the ProcessDesign.pdf
StiveBrack
 
PDF
June 2025 Top 10 Sites -Electrical and Electronics Engineering: An Internatio...
elelijjournal653
 
PDF
輪読会資料_Miipher and Miipher2 .
NABLAS株式会社
 
Module - 4 Machine Learning -22ISE62.pdf
Dr. Shivashankar
 
FSE-Journal-First-Automated code editing with search-generate-modify.pdf
cl144
 
Introduction to File Transfer Protocol with commands in FTP
BeulahS2
 
Module - 5 Machine Learning-22ISE62.pdf
Dr. Shivashankar
 
bs-en-12390-3 testing hardened concrete.pdf
ADVANCEDCONSTRUCTION
 
Precooling and Refrigerated storage.pptx
ThongamSunita
 
Bayesian Learning - Naive Bayes Algorithm
Sharmila Chidaravalli
 
Artificial Intelligence jejeiejj3iriejrjifirirjdjeie
VikingsGaming2
 
Clustering Algorithms - Kmeans,Min ALgorithm
Sharmila Chidaravalli
 
Work at Height training for workers .pptx
cecos12
 
Stability of IBR Dominated Grids - IEEE PEDG 2025 - short.pptx
ssuser307730
 
SF 9_Unit 1.ppt software engineering ppt
AmarrKannthh
 
NFPA 10 - Estandar para extintores de incendios portatiles (ed.22 ENG).pdf
Oscar Orozco
 
LLC CM NCP1399 SIMPLIS MODEL MANUAL.PDF
ssuser1be9ce
 
Plant Control_EST_85520-01_en_AllChanges_20220127.pdf
DarshanaChathuranga4
 
PROGRAMMING REQUESTS/RESPONSES WITH GREATFREE IN THE CLOUD ENVIRONMENT
samueljackson3773
 
PRIZ Academy - Process functional modelling
PRIZ Guru
 
01-introduction to the ProcessDesign.pdf
StiveBrack
 
June 2025 Top 10 Sites -Electrical and Electronics Engineering: An Internatio...
elelijjournal653
 
輪読会資料_Miipher and Miipher2 .
NABLAS株式会社
 

Pimp legacy PHP apps with Apigility - TrueNorthPHP 2014