Criando aplicações RestFul com Zend Framework 2

Elton Minetto
Elton MinettoSoftware developer, teacher, speaker, open source evangelist, tech leader at Code:Nation
Criandoaplicações
RESTFulcomZend
Framework2
Quem?
EltonMinetto
Graduado/pós-graduadoemCiênciadaComputação
Desenvolvedordesde1997
Professordesde2004
AutordetrêslivrossobrePHPeumsobregridcomputing
PodcasternoBizandCode
CTOdaCoderockredoCodeSquad
MembrodadiretoriadaABRAPHP
Princípios REST
Dêatodasascoisasum
identificador
http://zf2.dev/api/v1/album.album.json
http://zf2.dev/api/v1/album.album.json/1
http://example.com/customers/1234
http://www.infoq.com/br/articles/rest-introduction
Vinculeascoisas
<orderself="http://x.com/orders/1234">
<amount>23</amount>
<productref="http://x.com/products/4554"></product>
<customerref="http://x.com/customers/1234"></customer>
</order>
Utilizeosmétodospadrão
GET,PUT,POST,DELETE,HEAD,OPTIONS
Recursoscommúltiplas
representações
http://zf2.dev/api/v1/album.album.json
http://zf2.dev/api/v1/album.album.xml
ouusaroheaderAccept
Comuniquesemestado
“[...]umservidornãodeveriaguardaroestadoda
comunicaçãodequalquerumdosclientesquese
comuniquecomelealémdeumaúnicarequisição.A
razãomaisóbviaparaissoéescalabilidade-onúmerode
clientesquepodeminteragircomoservidorseria
consideravelmenteimpactadosefosseprecisomantero
estadodocliente”
ZendFramework2
DesenvolvidopelaZendjuntocoma
comunidadePHP
Maisde2anosdedesenvolvimento
Maisde200profissionaisenvolvidos
Apoio Google,Microsoft,entreoutras
Mãonamassa!
Composer
mkdir rest_zf2
cd rest_zf2
curl -sS https://getcomposer.org/installer | php
ZFTool
php composer.phar require zendframework/zftool:dev-
master
Criandooprojeto
php ./vendor/bin/zf.php create project ~/Documents/
Projects/vagrant/rest_zf2/Todo
cd Todo
php composer.phar self-update
php composer.phar install
ApacheVHost
<VirtualHost *:80>
ServerName todo.dev
DocumentRoot /vagrant/rest_zf2/Todo/public
SetEnv APPLICATION_ENV "development"
SetEnv PROJECT_ROOT "/vagrant/rest_zf2/Todo"
<Directory /vagrant/rest_zf2/Todo/public>
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Módulos
"[]ummóduloéumacoleçãodecódigo
eoutrosarquivosqueresolveum
problemaespecíficodeumaaplicaçãoou
site."
MattewO'Phinney.ZendFrameworkprojectleader
Módulo Application
Módulo Api
Módulo Admin
CriandoomóduloApi
cd ../
php ./vendor/bin/zf.php create module Api ~/
Documents/Projects/vagrant/rest_zf2/Todo/
Bancodedados
global.php
https://gist.github.com/eminetto/5709289
sqlite3 data/todo.db
create table item (id INTEGER PRIMARY KEY
AUTOINCREMENT, description text, done int);
EntidadeseTableGateway
src/Application/Model/Item.php
https://gist.github.com/eminetto/5709294
src/Application/Model/ItemTable.php
https://gist.github.com/eminetto/5709297
Application/Module.php
https://gist.github.com/eminetto/5710850
Rota
Api/config/module.config.php
https://gist.github.com/eminetto/5709324
RestController
Módulo Application
Módulo Api
ApiControllerRestController
Api/src/Controller/RestController
https://gist.github.com/eminetto/5710862
Eventos
UmEventManageréumobjetoqueagregalistenerspara
umoumaiseventosequegera(trigger)outroseventos.
Umlisteneréumafunção/método(callback)quereagea
umevento
Módulo Application
Módulo Api
ApiControllerRestController
ApiPreProcessorPreProcessor
(segurança)
ApiPostProcessorPostProcessor
(serialização)
Criandooseventos
Alterar o api/Module.php
https://gist.github.com/eminetto/5710879
PreProcessor:
https://gist.github.com/eminetto/5710894
Application/config/entities.config.php (Segurança)
https://gist.github.com/eminetto/5710859
PostProcessor:
https://gist.github.com/eminetto/5710898
Serializando
Múltiplosformatos
php composer.phar require jms/serializer:*
src/Api/PostProcessor/AbstractPostProcessor.php
https://gist.github.com/eminetto/5710903
src/Api/PostProcessor/Json.php
https://gist.github.com/eminetto/5710908
src/Api/PostProcessor/Xml.php
https://gist.github.com/eminetto/5710915
Referências
http://www.infoq.com/br/articles/rest-introduction
http://www.slideshare.net/Alganet/rest-key
http://framework.zend.com/manual/2.2/en/user-guide/
overview.html
http://jmsyst.com/libs/serializer
https://github.com/Coderockr/ApiModule
@eminetto
http://www.eltonminetto.net
http://coderockr.com
http://code-squad.com
eminetto@coderockr.com
1 of 49

Recommended

Intro to Angular.js & Zend2 for Front-End Web Applications by
Intro to Angular.js & Zend2  for Front-End Web ApplicationsIntro to Angular.js & Zend2  for Front-End Web Applications
Intro to Angular.js & Zend2 for Front-End Web ApplicationsTECKpert, Hubdin
8.7K views29 slides
Building restful ap is with harvester js by
Building restful ap is with harvester jsBuilding restful ap is with harvester js
Building restful ap is with harvester jsMarcelo Cure
344 views17 slides
Apigility – Lightning Fast API Development - OSSCamp 2014 by
Apigility – Lightning Fast API Development - OSSCamp 2014 Apigility – Lightning Fast API Development - OSSCamp 2014
Apigility – Lightning Fast API Development - OSSCamp 2014 OSSCube
2.9K views26 slides
Introduction to Zend Framework by
Introduction to Zend FrameworkIntroduction to Zend Framework
Introduction to Zend FrameworkMichelangelo van Dam
3.8K views24 slides
Make your application expressive by
Make your application expressiveMake your application expressive
Make your application expressiveChristian Varela
745 views85 slides
Build your APIs with apigility by
Build your APIs with apigilityBuild your APIs with apigility
Build your APIs with apigilityChristian Varela
1.4K views86 slides

More Related Content

What's hot

Using Zend Framework 2 Book Presentation by
Using Zend Framework 2 Book PresentationUsing Zend Framework 2 Book Presentation
Using Zend Framework 2 Book Presentationolegkrivtsov
2.3K views21 slides
Lecture java basics by
Lecture   java basicsLecture   java basics
Lecture java basicseleksdev
3.7K views23 slides
Breaking The Framework's Core #PHPKonf 2016 by
Breaking The Framework's Core #PHPKonf 2016Breaking The Framework's Core #PHPKonf 2016
Breaking The Framework's Core #PHPKonf 2016Mehmet Ince
1.7K views42 slides
Zend Framework Introduction by
Zend Framework IntroductionZend Framework Introduction
Zend Framework IntroductionRafael Monteiro
3.2K views32 slides
Deprecated: Foundations of Zend Framework 2 by
Deprecated: Foundations of Zend Framework 2Deprecated: Foundations of Zend Framework 2
Deprecated: Foundations of Zend Framework 2Adam Culp
3.4K views45 slides
前端網頁自動測試 by
前端網頁自動測試 前端網頁自動測試
前端網頁自動測試 政億 林
4.4K views53 slides

What's hot(19)

Using Zend Framework 2 Book Presentation by olegkrivtsov
Using Zend Framework 2 Book PresentationUsing Zend Framework 2 Book Presentation
Using Zend Framework 2 Book Presentation
olegkrivtsov2.3K views
Lecture java basics by eleksdev
Lecture   java basicsLecture   java basics
Lecture java basics
eleksdev3.7K views
Breaking The Framework's Core #PHPKonf 2016 by Mehmet Ince
Breaking The Framework's Core #PHPKonf 2016Breaking The Framework's Core #PHPKonf 2016
Breaking The Framework's Core #PHPKonf 2016
Mehmet Ince1.7K views
Deprecated: Foundations of Zend Framework 2 by Adam Culp
Deprecated: Foundations of Zend Framework 2Deprecated: Foundations of Zend Framework 2
Deprecated: Foundations of Zend Framework 2
Adam Culp3.4K views
前端網頁自動測試 by 政億 林
前端網頁自動測試 前端網頁自動測試
前端網頁自動測試
政億 林4.4K views
Zend Framework 2 - presentation by yamcsha
Zend Framework 2 - presentationZend Framework 2 - presentation
Zend Framework 2 - presentation
yamcsha1.8K views
Spring rest-doc-2015-11 by Eric Ahn
Spring rest-doc-2015-11Spring rest-doc-2015-11
Spring rest-doc-2015-11
Eric Ahn1.5K views
Ane for 9ria_cn by sonicxs
Ane for 9ria_cnAne for 9ria_cn
Ane for 9ria_cn
sonicxs366 views
Lecture android best practices by eleksdev
Lecture   android best practicesLecture   android best practices
Lecture android best practices
eleksdev4.5K views
WordPress and Zend Framework Integration with Vulnero by Andrew Kandels
WordPress and Zend Framework Integration with VulneroWordPress and Zend Framework Integration with Vulnero
WordPress and Zend Framework Integration with Vulnero
Andrew Kandels3.5K views
Django Interview Questions and Answers by Renjith S Raj
Django Interview Questions and AnswersDjango Interview Questions and Answers
Django Interview Questions and Answers
Renjith S Raj7.2K views
Magento with Composer by AOE
Magento with ComposerMagento with Composer
Magento with Composer
AOE 2.8K views
Building Rich Applications with Appcelerator by Matt Raible
Building Rich Applications with AppceleratorBuilding Rich Applications with Appcelerator
Building Rich Applications with Appcelerator
Matt Raible2.6K views
Neat tricks to bypass CSRF-protection by Mikhail Egorov
Neat tricks to bypass CSRF-protectionNeat tricks to bypass CSRF-protection
Neat tricks to bypass CSRF-protection
Mikhail Egorov17.6K views

Similar to Criando aplicações RestFul com Zend Framework 2

Managing and Monitoring Application Performance by
Managing and Monitoring Application PerformanceManaging and Monitoring Application Performance
Managing and Monitoring Application PerformanceSebastian Marek
6.6K views81 slides
Im-A-Hacker-Get-Me-Out-Of-Here-Breaking-Network-Segregation-Using-Esoteric-Co... by
Im-A-Hacker-Get-Me-Out-Of-Here-Breaking-Network-Segregation-Using-Esoteric-Co...Im-A-Hacker-Get-Me-Out-Of-Here-Breaking-Network-Segregation-Using-Esoteric-Co...
Im-A-Hacker-Get-Me-Out-Of-Here-Breaking-Network-Segregation-Using-Esoteric-Co...YuChianWu
2 views96 slides
Desarrollo Profesional con PHP 2014/15 - Nivel Bajo / Medio by
Desarrollo Profesional con PHP 2014/15 - Nivel Bajo / MedioDesarrollo Profesional con PHP 2014/15 - Nivel Bajo / Medio
Desarrollo Profesional con PHP 2014/15 - Nivel Bajo / MedioCarlos Buenosvinos
1.7K views109 slides
Services web RESTful by
Services web RESTfulServices web RESTful
Services web RESTfulgoldoraf
5.9K views62 slides
URL Design by
URL DesignURL Design
URL DesignWalter Ebert
2.6K views26 slides
Front End Development for Back End Developers - UberConf 2017 by
Front End Development for Back End Developers - UberConf 2017Front End Development for Back End Developers - UberConf 2017
Front End Development for Back End Developers - UberConf 2017Matt Raible
1.4K views109 slides

Similar to Criando aplicações RestFul com Zend Framework 2(20)

Managing and Monitoring Application Performance by Sebastian Marek
Managing and Monitoring Application PerformanceManaging and Monitoring Application Performance
Managing and Monitoring Application Performance
Sebastian Marek6.6K views
Im-A-Hacker-Get-Me-Out-Of-Here-Breaking-Network-Segregation-Using-Esoteric-Co... by YuChianWu
Im-A-Hacker-Get-Me-Out-Of-Here-Breaking-Network-Segregation-Using-Esoteric-Co...Im-A-Hacker-Get-Me-Out-Of-Here-Breaking-Network-Segregation-Using-Esoteric-Co...
Im-A-Hacker-Get-Me-Out-Of-Here-Breaking-Network-Segregation-Using-Esoteric-Co...
YuChianWu2 views
Desarrollo Profesional con PHP 2014/15 - Nivel Bajo / Medio by Carlos Buenosvinos
Desarrollo Profesional con PHP 2014/15 - Nivel Bajo / MedioDesarrollo Profesional con PHP 2014/15 - Nivel Bajo / Medio
Desarrollo Profesional con PHP 2014/15 - Nivel Bajo / Medio
Carlos Buenosvinos1.7K views
Services web RESTful by goldoraf
Services web RESTfulServices web RESTful
Services web RESTful
goldoraf5.9K views
Front End Development for Back End Developers - UberConf 2017 by Matt Raible
Front End Development for Back End Developers - UberConf 2017Front End Development for Back End Developers - UberConf 2017
Front End Development for Back End Developers - UberConf 2017
Matt Raible1.4K views
Speed up your developments with Symfony2 by Hugo Hamon
Speed up your developments with Symfony2Speed up your developments with Symfony2
Speed up your developments with Symfony2
Hugo Hamon4.5K views
Converting Your Dev Environment to a Docker Stack - Cascadia by Dana Luther
Converting Your Dev Environment to a Docker Stack - CascadiaConverting Your Dev Environment to a Docker Stack - Cascadia
Converting Your Dev Environment to a Docker Stack - Cascadia
Dana Luther195 views
Kicking off with Zend Expressive and Doctrine ORM (PHPNW2016) by James Titcumb
Kicking off with Zend Expressive and Doctrine ORM (PHPNW2016)Kicking off with Zend Expressive and Doctrine ORM (PHPNW2016)
Kicking off with Zend Expressive and Doctrine ORM (PHPNW2016)
James Titcumb1.3K views
Converting Your Dev Environment to a Docker Stack - php[world] by Dana Luther
Converting Your Dev Environment to a Docker Stack - php[world]Converting Your Dev Environment to a Docker Stack - php[world]
Converting Your Dev Environment to a Docker Stack - php[world]
Dana Luther311 views
Kicking off with Zend Expressive and Doctrine ORM (ZendCon 2016) by James Titcumb
Kicking off with Zend Expressive and Doctrine ORM (ZendCon 2016)Kicking off with Zend Expressive and Doctrine ORM (ZendCon 2016)
Kicking off with Zend Expressive and Doctrine ORM (ZendCon 2016)
James Titcumb694 views
Front End Development for Back End Developers - vJUG24 2017 by Matt Raible
Front End Development for Back End Developers - vJUG24 2017Front End Development for Back End Developers - vJUG24 2017
Front End Development for Back End Developers - vJUG24 2017
Matt Raible731 views
DSLing your System For Scalability Testing Using Gatling - Dublin Scala User ... by Aman Kohli
DSLing your System For Scalability Testing Using Gatling - Dublin Scala User ...DSLing your System For Scalability Testing Using Gatling - Dublin Scala User ...
DSLing your System For Scalability Testing Using Gatling - Dublin Scala User ...
Aman Kohli4.6K views
PHP QA Tools by rjsmelo
PHP QA ToolsPHP QA Tools
PHP QA Tools
rjsmelo2.1K views
7 Tips on Getting Your Theme Approved the First Time by Dmitry Mayorov
7 Tips on Getting Your Theme Approved the First Time7 Tips on Getting Your Theme Approved the First Time
7 Tips on Getting Your Theme Approved the First Time
Dmitry Mayorov1.8K views
How to measure everything - a million metrics per second with minimal develop... by Jos Boumans
How to measure everything - a million metrics per second with minimal develop...How to measure everything - a million metrics per second with minimal develop...
How to measure everything - a million metrics per second with minimal develop...
Jos Boumans20.9K views
Adriano Di Luzio - Davvy - PyconSEI Talk by aldur999
Adriano Di Luzio - Davvy - PyconSEI TalkAdriano Di Luzio - Davvy - PyconSEI Talk
Adriano Di Luzio - Davvy - PyconSEI Talk
aldur999632 views
HTTP colon slash slash: end of the road? @ CakeFest 2013 in San Francisco by Alessandro Nadalin
HTTP colon slash slash: end of the road? @ CakeFest 2013 in San FranciscoHTTP colon slash slash: end of the road? @ CakeFest 2013 in San Francisco
HTTP colon slash slash: end of the road? @ CakeFest 2013 in San Francisco
Alessandro Nadalin3.8K views

More from Elton Minetto

Go e Microserviços - Nascidos um para o outro by
Go e Microserviços - Nascidos um para o outroGo e Microserviços - Nascidos um para o outro
Go e Microserviços - Nascidos um para o outroElton Minetto
1.9K views37 slides
Object Calisthenics em Go by
Object Calisthenics em GoObject Calisthenics em Go
Object Calisthenics em GoElton Minetto
792 views79 slides
Programar != desenvolver software (v2) by
Programar != desenvolver software (v2)Programar != desenvolver software (v2)
Programar != desenvolver software (v2)Elton Minetto
341 views22 slides
Gerenciando uma startup no Github Projects by
Gerenciando uma startup no Github ProjectsGerenciando uma startup no Github Projects
Gerenciando uma startup no Github ProjectsElton Minetto
402 views30 slides
Clean Architecture by
Clean ArchitectureClean Architecture
Clean ArchitectureElton Minetto
912 views37 slides
Serverless em Go by
Serverless em GoServerless em Go
Serverless em GoElton Minetto
428 views31 slides

More from Elton Minetto(20)

Go e Microserviços - Nascidos um para o outro by Elton Minetto
Go e Microserviços - Nascidos um para o outroGo e Microserviços - Nascidos um para o outro
Go e Microserviços - Nascidos um para o outro
Elton Minetto1.9K views
Object Calisthenics em Go by Elton Minetto
Object Calisthenics em GoObject Calisthenics em Go
Object Calisthenics em Go
Elton Minetto792 views
Programar != desenvolver software (v2) by Elton Minetto
Programar != desenvolver software (v2)Programar != desenvolver software (v2)
Programar != desenvolver software (v2)
Elton Minetto341 views
Gerenciando uma startup no Github Projects by Elton Minetto
Gerenciando uma startup no Github ProjectsGerenciando uma startup no Github Projects
Gerenciando uma startup no Github Projects
Elton Minetto402 views
Clean architecture em Go - v2 by Elton Minetto
Clean architecture em Go - v2Clean architecture em Go - v2
Clean architecture em Go - v2
Elton Minetto652 views
Programar != desenvolver software by Elton Minetto
Programar != desenvolver softwareProgramar != desenvolver software
Programar != desenvolver software
Elton Minetto1.6K views
Clean Architecture em PHP by Elton Minetto
Clean Architecture em PHPClean Architecture em PHP
Clean Architecture em PHP
Elton Minetto3.3K views
Clean Architecture in Golang by Elton Minetto
Clean Architecture in GolangClean Architecture in Golang
Clean Architecture in Golang
Elton Minetto1.4K views
A jornada do desenvolvedor by Elton Minetto
A jornada do desenvolvedorA jornada do desenvolvedor
A jornada do desenvolvedor
Elton Minetto636 views
Modernizando projetos legados usando APIs by Elton Minetto
Modernizando projetos legados usando APIsModernizando projetos legados usando APIs
Modernizando projetos legados usando APIs
Elton Minetto1K views
12 factor in the PHP world by Elton Minetto
12 factor in the PHP world12 factor in the PHP world
12 factor in the PHP world
Elton Minetto1.4K views
O case da Compufácil e AWS by Elton Minetto
O case da Compufácil e AWSO case da Compufácil e AWS
O case da Compufácil e AWS
Elton Minetto256 views

Recently uploaded

Vertical User Stories by
Vertical User StoriesVertical User Stories
Vertical User StoriesMoisés Armani Ramírez
12 views16 slides
Black and White Modern Science Presentation.pptx by
Black and White Modern Science Presentation.pptxBlack and White Modern Science Presentation.pptx
Black and White Modern Science Presentation.pptxmaryamkhalid2916
16 views21 slides
HTTP headers that make your website go faster - devs.gent November 2023 by
HTTP headers that make your website go faster - devs.gent November 2023HTTP headers that make your website go faster - devs.gent November 2023
HTTP headers that make your website go faster - devs.gent November 2023Thijs Feryn
21 views151 slides
Transcript: The Details of Description Techniques tips and tangents on altern... by
Transcript: The Details of Description Techniques tips and tangents on altern...Transcript: The Details of Description Techniques tips and tangents on altern...
Transcript: The Details of Description Techniques tips and tangents on altern...BookNet Canada
135 views15 slides
ChatGPT and AI for Web Developers by
ChatGPT and AI for Web DevelopersChatGPT and AI for Web Developers
ChatGPT and AI for Web DevelopersMaximiliano Firtman
187 views82 slides
Special_edition_innovator_2023.pdf by
Special_edition_innovator_2023.pdfSpecial_edition_innovator_2023.pdf
Special_edition_innovator_2023.pdfWillDavies22
17 views6 slides

Recently uploaded(20)

Black and White Modern Science Presentation.pptx by maryamkhalid2916
Black and White Modern Science Presentation.pptxBlack and White Modern Science Presentation.pptx
Black and White Modern Science Presentation.pptx
maryamkhalid291616 views
HTTP headers that make your website go faster - devs.gent November 2023 by Thijs Feryn
HTTP headers that make your website go faster - devs.gent November 2023HTTP headers that make your website go faster - devs.gent November 2023
HTTP headers that make your website go faster - devs.gent November 2023
Thijs Feryn21 views
Transcript: The Details of Description Techniques tips and tangents on altern... by BookNet Canada
Transcript: The Details of Description Techniques tips and tangents on altern...Transcript: The Details of Description Techniques tips and tangents on altern...
Transcript: The Details of Description Techniques tips and tangents on altern...
BookNet Canada135 views
Special_edition_innovator_2023.pdf by WillDavies22
Special_edition_innovator_2023.pdfSpecial_edition_innovator_2023.pdf
Special_edition_innovator_2023.pdf
WillDavies2217 views
The details of description: Techniques, tips, and tangents on alternative tex... by BookNet Canada
The details of description: Techniques, tips, and tangents on alternative tex...The details of description: Techniques, tips, and tangents on alternative tex...
The details of description: Techniques, tips, and tangents on alternative tex...
BookNet Canada126 views
Empathic Computing: Delivering the Potential of the Metaverse by Mark Billinghurst
Empathic Computing: Delivering  the Potential of the MetaverseEmpathic Computing: Delivering  the Potential of the Metaverse
Empathic Computing: Delivering the Potential of the Metaverse
Mark Billinghurst476 views
SAP Automation Using Bar Code and FIORI.pdf by Virendra Rai, PMP
SAP Automation Using Bar Code and FIORI.pdfSAP Automation Using Bar Code and FIORI.pdf
SAP Automation Using Bar Code and FIORI.pdf
Case Study Copenhagen Energy and Business Central.pdf by Aitana
Case Study Copenhagen Energy and Business Central.pdfCase Study Copenhagen Energy and Business Central.pdf
Case Study Copenhagen Energy and Business Central.pdf
Aitana16 views
handbook for web 3 adoption.pdf by Liveplex
handbook for web 3 adoption.pdfhandbook for web 3 adoption.pdf
handbook for web 3 adoption.pdf
Liveplex22 views
PharoJS - Zürich Smalltalk Group Meetup November 2023 by Noury Bouraqadi
PharoJS - Zürich Smalltalk Group Meetup November 2023PharoJS - Zürich Smalltalk Group Meetup November 2023
PharoJS - Zürich Smalltalk Group Meetup November 2023
Noury Bouraqadi126 views
6g - REPORT.pdf by Liveplex
6g - REPORT.pdf6g - REPORT.pdf
6g - REPORT.pdf
Liveplex10 views
AMAZON PRODUCT RESEARCH.pdf by JerikkLaureta
AMAZON PRODUCT RESEARCH.pdfAMAZON PRODUCT RESEARCH.pdf
AMAZON PRODUCT RESEARCH.pdf
JerikkLaureta19 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
DianaGray10237 views
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院 by IttrainingIttraining
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院
1st parposal presentation.pptx by i238212
1st parposal presentation.pptx1st parposal presentation.pptx
1st parposal presentation.pptx
i2382129 views

Criando aplicações RestFul com Zend Framework 2