Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
PHP like a super hero
Elton Minetto
August 27, 2012
Technology
8
1.2k
PHP like a super hero
Dicas de como iniciar no PHP e tornar-se um expert na linguagem
Elton Minetto
August 27, 2012
Tweet
Share
More Decks by Elton Minetto
See All by Elton Minetto
Reflexões sobre Design de Software
eminetto
1
240
Discussões sobre microsserviços
eminetto
0
14
Introdução a Go
eminetto
1
85
Go, o que, por que e como?
eminetto
0
160
Dev Journey
eminetto
0
300
Microsserviços usando Go kit
eminetto
0
230
Arquitetura de software e a Clean Architecture
eminetto
5
1k
Da ideia ao Speaker Deck
eminetto
0
180
Por que e como usamos Go na Codenation?
eminetto
1
310
Other Decks in Technology
See All in Technology
ROS_Japan_UG_#49_LT
maeharakeisuke
0
220
OCI技術資料 : ロード・バランサー 詳細 / Load Balancer 200
ocise
2
7.2k
OCI DevOps 概要 / OCI DevOps overview
oracle4engineer
PRO
0
490
金属加工屋の営業マンがSTマイクロで・・・
usashirou
0
160
Hatena Engineer Seminar #23 「チームとプロダクトを育てる Mackerel 開発合宿」
arthur1
0
310
API連携に伴う規制と対応 / Regulations and responses to API linkage
moneyforward
0
150
SmartHRからOktaへのSCIM連携で作り出すHRドリブンのアカウント管理
jousysmiler
1
120
ECテックカンファレンス2023 EC事業部のモバイル開発2023
tatsumi0000
0
280
NGINXENG JP#2 - 2-NGINXの動作の詳細
hiropo20
1
110
ラズパイとGASで加湿器の消し忘れをLINEでリマインド&操作
minako__ph
0
140
Raspberry Pi Camera 3 介紹
piepie_tw
PRO
0
140
OpenShiftでスポットVMを使おう.pdf
jpishikawa
1
280
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
451
31k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
152
13k
How STYLIGHT went responsive
nonsquared
89
4.2k
Building Flexible Design Systems
yeseniaperezcruz
314
35k
Art Directing for the Web. Five minutes with CSS Template Areas
malarkey
196
9.8k
Designing Experiences People Love
moore
130
22k
Debugging Ruby Performance
tmm1
67
11k
Infographics Made Easy
chrislema
235
17k
Ruby is Unlike a Banana
tanoku
93
9.5k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
24
4.5k
Docker and Python
trallard
30
1.9k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
239
19k
Transcript
PHP like a Super Hero elton luís minetto @eminetto
Quem são vocês?
Quem sou eu? Graduado e pós-graduado em Ciência da Computação
Trabalho com PHP/MySQL desde 2000. Trabalho com Linux desde 1997. Professor desde 2004. Autor do livro Frameworks para Desenvolvimento em PHP - Editora Novatec, autor do e-book Zend Framework na prática Sócio da Coderockr
Motivação
None
PHP? Por onde começo?
None
PHP Namespaces Traits Orientação a objetos Banco de Dados Controle
de versões Testes Frameworks ORM REST SOA Integração contínua Xdebug APC Memcached Object Calisthenics
None
First things first...
PHP
PHP Namespaces
1.<?php 2.namespace Core\Service; 4.use Zend\Http\Client as HttpClient; 5.use Zend\Http\Request; 6.class
Auth 7.{ 8. public function __construct($apiKey, $apiUri, $rpcUri) 9. { 10. $this->httpClient = new HttpClient(); 11. } 12. }
PHP Traits http://diogobesson.com.br/programacao/php-traits/
PHP Servidor embutido php -S localhost:8080 -t /var/www/projeto
PHP phar http://phpmaster.com/packaging-your-apps-with-phar/
PHP Composer http://getcomposer.org
composer.json 1.{ 2. "minimum-stability": "dev", 3. "require": { 4. "silex/silex":
"1.0.*", 5. "dms/dms": "dev-master", 6. "doctrine/common": "*", 7. "doctrine/dbal": "*", 8. "doctrine/orm": "*", 9. "symfony/validator": "*", 10. "symfony/class-loader": "*", 11. "symfony/console": "*", 12. "monolog/monolog": "*", 13. "jms/metadata": "*", 14. "jms/serializer-bundle": "*", 15. "sybio/image-workshop": "*" 16. } 17.}
Instalar dependências 1.curl -s https://getcomposer.org/installer | php 2.php composer.phar install
Atualizar dependências 1.php composer.phar update
PHP Funções nativas
Orientação a objetos
Bancos de dados
Bancos de dados SQL - MySQL, sqlite, PostgreSQL
Bancos de dados NoSQL - MongoDB, CouchDB, Cassandra, Redis, Hadoop
Controle de versões
Controle de versões Git, SVN, Mercurial
None
None
None
None
Testes unitários PHPunit Mostrar os testes do modulo Api rodando.
Provocar um erro colocando um novo parâmetro no método authenticate do service Auth
Segurança e programação segura
Segurança e programação segura https://www.owasp.org/index.php/Main_Page
1.$inputFilter->add($factory->createInput(array( 2. 'name' => 'title', 3. 'required' => true, 4.
'filters' => array( 5. array('name' => 'StripTags'), 6. array('name' => 'StringTrim'), 7. ), 8. 'validators' => array( 9. array( 10. 'name' => 'StringLength', 11. 'options' => array( 12. 'encoding' => 'UTF-8', 13. 'min' => 1, 14. 'max' => 100, 15. ), 16. ), 17. ), 18. )));
Participe, seja social Participe de eventos Participe de grupos de
usuários regionais Escreva um blog Participe de fóruns e listas de discussão
Ok? É isso
None
Design patterns Frameworks Zend Framework Symfony Code Igniter Slim Silex
Doctrine
None
Design patterns
Frameworks
Frameworks Full-Stack Zend Framework, CakePHP, Symfony, Code Igniter
Micro Frameworks Slim, Silex, Respect
ORM Doctrine
Aprenda mais de um sistema operacional Linux, Windows, MacOSX
Tem mais? Manda!
SOA, Rest, RPC
Injeção de Dependências
Performance
Performance - Xdebug Profiling Debug
Mostrar cachegrind.png
Performance - Cache APC, Memcached
None
Performance - Avaliação Siege, Apache ab, ySlow
Integração contínua
Cloud computing Amazon Web Services Heroku, PHPCloud
Object Calisthenics Nove regras para melhorar o código http://slidesha.re/KTZM97
Certificação
None
None
O mais importante!
Divirta-se no processo
http://www.phptherightway.com
Contato @eminetto http://eltonminetto.net http://coderockr.com