Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
PHP like a super hero
Search
Elton Minetto
August 27, 2012
Technology
1.4k
8
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
PHP like a super hero
Dicas de como iniciar no PHP e tornar-se um expert na linguagem
Elton Minetto
August 27, 2012
More Decks by Elton Minetto
See All by Elton Minetto
Criando Kubernetes Operators com o operator-sdk
eminetto
0
160
Developer productivity for fun and profit - Enterprise edition
eminetto
0
110
Criando Kubernetes Operators com o operator-sdk
eminetto
0
150
Developer productivity for fun and profit - Developer edition
eminetto
3
550
Observabilidade de APIs
eminetto
1
1k
Reflexões sobre Design de Software
eminetto
1
520
Discussões sobre microsserviços
eminetto
0
160
Introdução a Go
eminetto
1
300
Go, o que, por que e como?
eminetto
0
380
Other Decks in Technology
See All in Technology
“全部コピーしない”ファイルデータの活用 : — FSx for ONTAP × S3 Tables × Icebergで作るメタデータカタログ
yoshiki0705
0
590
テスト設計の本質を改めて考えてみる~生成AIを活用する時代だからこそ、作ったテストの説明性を高めよう~
yamasaki696
1
400
攻撃者がいなくてもAIエージェントはインシデントを起こす
nomizone
0
210
勉強会企画をアプリで構造化してみた 〜そこで見えた、AIとの付き合い方〜 / I've structured a study group plan using an app.
pauli
0
330
生成AIの活用/high_school2026
okana2ki
0
110
ローカルLLMとLINE Botの組み合わせ その3 / LINE DC Generative AI Meetup #8
you
PRO
0
130
Terraform共通モジュールをチーム横断で“変えられる”運用へ ― リリースと適用の分離
kekke_n
1
2.1k
LiDAR SLAMの実装とセンサ融合 ~Lie群からContinuous-Time LIOまで~
naokiakai
1
1k
End-to-Endで考える信頼性 —LINEアプリにおけるクライアント開発×SRE連携の実践
maruloop
4
3.4k
型は壁、Rustでもバグを直すな、表現できなくせよ
nwiizo
12
1.9k
なぜ人は自分のプロジェクトを 「なんちゃってアジャイル」と 自嘲するのか
kozotaira
0
270
美しいコードを書くためにF#を学んでみた話
yud0uhu
1
380
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
From π to Pie charts
rasagy
0
230
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.1k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
410
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
AI: The stuff that nobody shows you
jnunemaker
PRO
8
770
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
1.9k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
220
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
760
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
560
GitHub's CSS Performance
jonrohan
1033
470k
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