15 coisas sobre php para saber antes de morrer
DESCRIPTION
Apresentação realizada durante o WordCamp RJ 2014. http://2014.riodejaneiro.wordcamp.org/programacao/TRANSCRIPT
![Page 1: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/1.jpg)
15 coisas sobre php para saber antes de morrer
@mchelemGrupo RBS
![Page 2: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/2.jpg)
???de
![Page 3: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/3.jpg)
![Page 4: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/4.jpg)
![Page 5: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/5.jpg)
15
![Page 6: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/6.jpg)
![Page 7: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/7.jpg)
http://exploringdata.github.io/vis/programming-languages-influence-network/
![Page 8: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/8.jpg)
![Page 9: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/9.jpg)
![Page 10: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/10.jpg)
14
![Page 11: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/11.jpg)
é campeão!
![Page 12: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/12.jpg)
http://w3techs.com/technologies
Linguagens server side CMS
![Page 13: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/13.jpg)
http://w3techs.com/technologies
Linguagens server side
![Page 14: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/14.jpg)
13
![Page 15: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/15.jpg)
debuggerembarcado
![Page 16: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/16.jpg)
phpdbghttp://docs.php.net/manual/en/migration56.new-features.php#migration56.new-features.phpdbg
![Page 17: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/17.jpg)
![Page 18: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/18.jpg)
![Page 19: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/19.jpg)
![Page 20: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/20.jpg)
![Page 21: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/21.jpg)
ou debuggerdesembarcado
mesmo....
![Page 23: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/23.jpg)
xdebug + kcachegrind
![Page 24: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/24.jpg)
xdebug + kcachegrind
![Page 25: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/25.jpg)
12
![Page 26: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/26.jpg)
servidor embarcado
![Page 27: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/27.jpg)
$ php -S localhost:8080PHP 5.5.9-1ubuntu4.2 Development Server started at Thu Sep 18 09:42:05 2014Listening on http://localhost:8080Document root is /home/mchelemPress Ctrl-C to quit.
![Page 28: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/28.jpg)
11
![Page 29: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/29.jpg)
php linha de comando I
![Page 30: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/30.jpg)
$ php -r 'print_r([1,2,3]);'Array( [0] => 1 [1] => 2 [2] => 3)
![Page 31: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/31.jpg)
$ php meuscript.php Hello world!
![Page 32: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/32.jpg)
$ ./meuscript.php Hello world!
![Page 33: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/33.jpg)
10
![Page 34: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/34.jpg)
php linha de comando II
![Page 35: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/35.jpg)
php -a
![Page 38: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/38.jpg)
9
![Page 39: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/39.jpg)
Strings
![Page 40: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/40.jpg)
'pare de ' + $escrever + ' tudo '
+ $assim + "\n"http://nikic.github.io/2012/01/09/Disproving-the-Single-Quotes-Performance-Myth.html
![Page 41: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/41.jpg)
premature optimization is the root of all evilhttp://en.wikiquote.org/wiki/Donald_Knuth
![Page 42: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/42.jpg)
pra que escapar desse jeito?!!
![Page 43: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/43.jpg)
![Page 44: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/44.jpg)
heredoc ou nowdoc$heredoc = <<<EODMeu nome é "$nome". Vamos ao $foo->fooEOD;
$nowdoc = <<<'EOD'Meu nome é "$nome". Vamos ao $foo->foo.EOD;
Meu nome é "João". Vamos ao BAR!!!
Meu nome é "$name". Vamos ao $foo->foo
echo
![Page 45: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/45.jpg)
8
![Page 46: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/46.jpg)
phps e dependências
![Page 47: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/47.jpg)
phpenv$ phpenv install --releases
$ phpenv install php-5.3.20 debug
$ phpenv global 5.4.0
$ phpenv local 5.3.8
https://github.com/phpenv/phpenv e http://docs.travis-ci.com/user/languages/php/
![Page 48: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/48.jpg)
composer$ composer init
$ cat composer.json{ "require": { "monolog/monolog": "1.2.*" }}
$ composer installhttps://getcomposer.org/
![Page 49: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/49.jpg)
7
![Page 50: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/50.jpg)
interceptandomensagens
![Page 51: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/51.jpg)
$p = new Pessoa();print $p->nome;
![Page 52: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/52.jpg)
http://php.net/manual/en/language.oop5.magic.php
métodos mágicos
![Page 53: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/53.jpg)
6
![Page 54: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/54.jpg)
type hinting
![Page 55: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/55.jpg)
![Page 56: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/56.jpg)
5
![Page 57: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/57.jpg)
callbacks e funções anônimas
![Page 58: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/58.jpg)
![Page 59: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/59.jpg)
![Page 60: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/60.jpg)
4
![Page 61: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/61.jpg)
![Page 62: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/62.jpg)
![Page 63: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/63.jpg)
![Page 64: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/64.jpg)
Ardendo no mármore do inferno...
![Page 65: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/65.jpg)
![Page 66: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/66.jpg)
3
![Page 67: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/67.jpg)
Traits
![Page 68: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/68.jpg)
aka Mixins
![Page 69: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/69.jpg)
![Page 70: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/70.jpg)
2
![Page 71: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/71.jpg)
histórias de horror
![Page 72: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/72.jpg)
ou sobre por que conhecer bem o que está por baixo dos panos...
open_basedirLimita os arquivos que podem ser acessados pelo PHP, através de include ou fopen
![Page 73: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/73.jpg)
ou sobre por que conhecer bem o que está por baixo dos panos...
open_basedirLimita os arquivos que podem ser acessados pelo PHP, através de include ou fopen
https://bugs.php.net/bug.php?id=52312
![Page 74: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/74.jpg)
ou sobre por que conhecer bem o que está por baixo dos panos...
open_basedirLimita os arquivos que podem ser acessados pelo PHP, através de include ou fopen
https://bugs.php.net/bug.php?id=52312
Desabilita a cache!!!
![Page 75: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/75.jpg)
![Page 76: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/76.jpg)
1
![Page 77: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/77.jpg)
o php precisa de amor e proteção
I
![Page 78: 15 coisas sobre php para saber antes de morrer](https://reader031.vdocuments.net/reader031/viewer/2022020218/559a27e41a28abdf228b4731/html5/thumbnails/78.jpg)