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
8
1.3k
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
Criando Kubernetes Operators com o operator-sdk
eminetto
0
33
Developer productivity for fun and profit - Enterprise edition
eminetto
0
35
Criando Kubernetes Operators com o operator-sdk
eminetto
0
42
Developer productivity for fun and profit - Developer edition
eminetto
3
440
Observabilidade de APIs
eminetto
1
760
Reflexões sobre Design de Software
eminetto
1
380
Discussões sobre microsserviços
eminetto
0
52
Introdução a Go
eminetto
1
180
Go, o que, por que e como?
eminetto
0
250
Other Decks in Technology
See All in Technology
リテール金融(キャッシュレス・ネット銀行・ネット証券)の競争環境と経済圏
8maki
0
1.7k
プロンプトエンジニアリングでがんばらない-Agentic Workflow へ-近藤憲児
kenjikondobai
6
1.2k
Cypress or Playwright?
rainerhahnekamp
0
180
「知的単純作業」を自動化する、地に足の着いた大規模言語モデル (LLM) の活用
nrryuya
0
160
Building Dashboards as a Hobby
egmc
0
410
今日からできる!簡単 .NET 高速化 Tips -2024 edition-
xin9le
7
4.6k
中年男性がメインフレームから クラウドへキャリアシフトしてみた
uechishingo
0
370
IaCからAWSに入門した初心者が CloudFormationを通して考えた「AWS操作」の使い分け
maimyyym
2
570
Microsoft Intune 勉強会 第 2 回目
tamaiyutaro
2
500
Python と Snowflake はズッ友だょ!~ Snowflake の Python 関連機能をふりかえる ~
__allllllllez__
2
150
Building a RAG-poweredAI chat appwith Python and VS Code
pamelafox
0
170
さらばあのボタンとは言わせない SORACOM LTE-M Button powerd by AWSをまだ使えるようにした(前編?)
miura55
0
100
Featured
See All Featured
RailsConf 2023
tenderlove
9
570
Building Flexible Design Systems
yeseniaperezcruz
320
37k
What's new in Ruby 2.0
geeforr
337
31k
Building Better People: How to give real-time feedback that sticks.
wjessup
356
18k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
358
22k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
66
14k
Rails Girls Zürich Keynote
gr2m
91
13k
Designing for Performance
lara
601
67k
Building Applications with DynamoDB
mza
88
5.6k
Why Our Code Smells
bkeepers
PRO
331
56k
What’s in a name? Adding method to the madness
productmarketing
PRO
17
2.7k
How to Ace a Technical Interview
jacobian
273
22k
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