2. PHP
abbr PHP [ˌpiː eitʃ ˈpiː]
Abreviatura de PHP HyperText Preprocessor; 1.
Linguagem Server-Side focada em criação de sistemas
para a web; 2. Criada por Rasmus Ledorf em 94 e
apoiada pelos fundadores da Zend; 3. Sintaxe simples
com influências fortes de C, Perl e Java; 4. Linguagem
dominante na internet moderna utilizada em mais de
21M domínios; 5. Terceira colocada do Ranking
TIOBE; 6. Fácil de aprender, díficil de dominar.
Friday, January 29, 2010
3. PHP
abbr PHP [ˌpiː eitʃ ˈpiː]
Abreviatura de PHP HyperText Preprocessor;
1. Linguagem Server-Side focada em criação de
sistemas para a web;
2. Criada por Rasmus Ledorf em 94 e apoiada pelos
fundadores da Zend;
3. Sintaxe simples com influências fortes de C, Perl e
Java;
4. Linguagem dominante na internet moderna
utilizada em mais de 21M domínios;
5. Terceira colocada do Ranking TIOBE;
6. Fácil de aprender, díficil de dominar.
Friday, January 29, 2010
4. Quem é Rafael Dohms?
Rafael Dohms é graduado Engenheiro da Computação
pelo UniCEUB, com MBA em Projetos pela FGV. Tem 9 anos
de experiência no mercado PHP e atualmente ocupa o cargo de
Desenvolvedor Sênior e Especialista em PHP na empresa
sul-africana SWAT/MIH. É certificado ZCE PHP5.
Grande agitador da comunidade PHP é co-fundador do
PHPDF e atual coordenador do PHPSP. Contribui ativamente
na área de testes do PHP e é Host do PHPSPCast, o
primeiro podcast sobre PHP do Brazil.
Friday, January 29, 2010
5. Arquitetura
de um acesso
Friday, January 29, 2010
6. Arquitetura
de um acesso
Friday, January 29, 2010
7. Arquitetura
de um acesso
http://www.php.net
Friday, January 29, 2010
8. Arquitetura
de um acesso
http://www.php.net
Friday, January 29, 2010
9. Arquitetura
de um acesso
http://www.php.net
Friday, January 29, 2010
10. Arquitetura
de um acesso
http://www.php.net
Servidor HTTP
Friday, January 29, 2010
11. Arquitetura
de um acesso
http://www.php.net
Servidor HTTP
HTML
Friday, January 29, 2010
12. Arquitetura C:
de um acesso
HTML
http://www.php.net
Servidor HTTP
HTML
Friday, January 29, 2010
14. A escolha
Por que PHP?
Friday, January 29, 2010
15. Cliente/Gerente
• Custo baixo
• Praticamente todo ecossistema PHP é gratuito
• Mão-de-obra
• Programadores iniciantes e intermediários não
faltam
• Performance e Escalabilidade
• Testado e provado
Friday, January 29, 2010
16. Desenvolvedor
• Baixa curva de Aprendizado
• Sintaxe simples, material amplo
• Oportunidades
• O mercado tem abundância de vagas
• Robusta
• Flexível e mutante, pode fazer tudo que você
imaginar
Friday, January 29, 2010
17. PHP Fácil e Simples
XAMPP - www.apachefriends.org
Zend Server CE -http://www.zend.com/
XAMPP - www.apachefriends.org
WAMP - www.wampserver.com
Zend Server CE -http://www.zend.com/
MAMP -www.mamp.info
XAMPP - www.apachefriends.org
Zend Server CE -http://www.zend.com/
Friday, January 29, 2010
18. Codando PHP
• IDE’s
• Zend Studio (Eclipse)
• PDT (Eclipse)
• Aptana (Eclipse)
• Komodo
• NetBeans
Vantagens de uma IDE
• Text Editors
- Autocomplete
• TextMate (PHP Bundle)
- Integração com VCS
• VIM - Debugging e profiling integrado
- Ferramentas em geral
• EMACS
Friday, January 29, 2010
19. Rodando PHP
• Web
• http://seusite.com/index.php
• Linha de comando
• php arquivo.php
Friday, January 29, 2010
37. Paradigmas: OO
<?php Scott
HAL Model 2.34
class HAL // extends Computer // implements UserInterface
{
public $nome;
public function __construct($nome)
{
$this->nome = $nome;
}
public function whoareyou()
{
echo $this->nome . PHP_EOL;
}
public static function version()
{
echo __CLASS__ . " Model 2.34" . PHP_EOL;
}
}
$a = new HAL('Scott');
$a->whoareyou();
HAL::version();
Friday, January 29, 2010
39. Database
<?php
$db = new PDO('mysql:dbname=testdb;host=127.0.0.1', 'user', 'passwd');
$qry = $db->prepare('SELECT * FROM tabela WHERE id = ?');
$res = $qry->execute(array(22)); //SELECT * FROM tabela WHERE id = 22
foreach($res as $linha){
echo $linha->id . PHP_EOL;
}
Friday, January 29, 2010
40. File System
<?php
$file = 'exemplo.txt';
file_put_contents($file, 'conteudo do arquivo');
echo file_get_contents($file) . PHP_EOL;
chmod($file, "777");
Friday, January 29, 2010
41. SuperGlobals e
Formulários
<form action"" method="POST">
<input id="nome" name="nome">
</form>
<?php
$nome = filterInput($_POST['nome']);
Friday, January 29, 2010
43. Procure evitar!
• Código spaghetti
• Misturar lógica de negócio e código HTML
• Consumir Super Globals sem filtrar
• $_POST/GET... não devem ser confiadas,
sempre filtre seu conteudo
• “Filtre entradas, Escape saídas”
Friday, January 29, 2010
44. O Mercado
http://www.flickr.com/photos/manuelpichler/
como ganhar dinheiro
Friday, January 29, 2010
45. Iniciante
$
$$$$$
Jedi Master
Friday, January 29, 2010
46. Iniciante
$
$$$$$
Jedi Master
Friday, January 29, 2010
47. Iniciante
$
Controle de Versão
$$$$$
Jedi Master
Friday, January 29, 2010
48. Iniciante Debugging
$
Controle de Versão
$$$$$
Jedi Master
Friday, January 29, 2010
49. Iniciante Debugging
$
Controle de Versão
Profiling $$$$$
Jedi Master
Friday, January 29, 2010
50. Iniciante Debugging
$
Controle de Versão
Frameworks
Profiling $$$$$
Jedi Master
Friday, January 29, 2010
51. Iniciante Debugging
$
OO Controle de Versão
Frameworks
Profiling $$$$$
Jedi Master
Friday, January 29, 2010
52. Iniciante Debugging
$
OO Controle de Versão
Testes
Frameworks
Profiling $$$$$
Jedi Master
Friday, January 29, 2010
53. Iniciante Debugging
$
OO Controle de Versão
Design Patterns
Testes
Frameworks
Profiling $$$$$
Jedi Master
Friday, January 29, 2010
54. Os dois lados
• “Sobrinhos”
• Desvalorização do mercado
• Média de salários menor
• Estagnado.
• O Desenvolvedor
• Procuram valorizar o mercado
• Salários melhores
• Faltam profissionais
Friday, January 29, 2010
55. Certificação
Zend Certified Engineer - PHP 5
• Pode ser um critério de desempate
• Polêmica: decoreba X qualidade do dev.
• Não é fácil, possui muitos detalhes
• Prova com peguinhas
• Estudar casos extraordinários e parâmetros
incomuns
• De uma forma geral: Vale a pena!
Friday, January 29, 2010
56. Construa o seu nome
• Escreva! (blog, artigos, revistas)
• Participe! (GU, Eventos)
• Contribua! (Frameworks, PHP, OSS ...)
Friday, January 29, 2010
57. Ecossistema
http://www.flickr.com/photos/hlegius/
Ferramentas
Friday, January 29, 2010
58. O servidor
Escolha seu sabor
LAMP LAPP WAMP WIPP WIMP
Friday, January 29, 2010
59. Misture e Combine...
• Multiplataforma
• *Nix, BSD, Windows, ...
• Banco de Dados
• Oracle, SQL Server, MySQL, PostGresSQL, ...
• Servidores
• Apache, IIS, LightHTTP...
Friday, January 29, 2010
60. Frameworks
• Abstraem camadas inferiores
• Evitam que você se repita (DRY)
• Aumentam a produtividade da equipe
• Use moderadamente e
adequadamente
Friday, January 29, 2010
61. Não deixe de estudar
• XDebug
• debugging / profiling
• Controle de versão (Subversion, git...)
• phpDoc - Documentação intra-código
• Design Patterns - como montar seu código
• PHPUnit - Testes unitários
Friday, January 29, 2010
62. Comunidade
http://www.flickr.com/photos/skoop/
sempre pronta para
ajudar
Friday, January 29, 2010
63. Movido à Comunidade
• Core Developers
• Escutam a comunidade e desenvolvem o PHP
• Líderes da Comunidade
• Promovem o PHP em seu ambiente
• Contribuidores
• Constróem todo resto (Frameworks, ferramentas..)
• Desenvolvedores
Friday, January 29, 2010
64. Os Canais
• Grupos de Usuários (GU)
• Presentes em 20 dos 26 estados brasileiros
• Freenode
• #phpc (en), #php-avancado, #php-br, #phpsp
• Listas de discussão, twitter ...
Friday, January 29, 2010
65. Quero aprender!
• Procure o GU mais perto de você: www.php.org.br
• Em São Paulo: www.phpsp.org.br
• Site do PHP: www.php.net
• Google: PHP
• Comece! Escolha um projeto pequeno e aproveite seu tempo
livre
Fique ligado na programação do Campus Party/PHPSP
Friday, January 29, 2010