65
PHP like a Super Hero elton luís minetto @eminetto

PHP like a super hero

Embed Size (px)

DESCRIPTION

O que é preciso aprender para tornar-se um bom programador PHP?

Citation preview

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

PHP?Por onde começo?

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

First things first...

PHP

PHPNamespaces

1.<?php2.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. }

PHPTraits

http://diogobesson.com.br/programacao/php-traits/

PHPServidor embutido

php -S localhost:8080 -t /var/www/projeto

composer.json1.{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 | php2.php composer.phar install

Atualizar dependências

1.php composer.phar update

PHPFunções nativas

Orientação a objetos

Bancos de dados

Bancos de dadosSQL - MySQL, sqlite, PostgreSQL

Bancos de dadosNoSQL - MongoDB, CouchDB, Cassandra, Redis, Hadoop

Controle de versões

Controle de versõesGit, SVN, Mercurial

Testes unitáriosPHPunit

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 segurahttps://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 socialParticipe de eventos

Participe de grupos de usuários regionaisEscreva um blog

Participe de fóruns e listas de discussão

Ok? É isso

Design patterns Frameworks

Zend Framework Symfony Code Igniter Slim

Silex Doctrine

Design patterns

Frameworks

Frameworks Full-StackZend Framework, CakePHP, Symfony, Code Igniter

Micro FrameworksSlim, Silex, Respect

ORMDoctrine

Aprenda mais de um sistema operacionalLinux, Windows, MacOSX

Tem mais?Manda!

SOA, Rest, RPC

Injeção de Dependências

Performance

Performance - XdebugProfilingDebug

Mostrar cachegrind.png

Performance - CacheAPC, Memcached

Performance - AvaliaçãoSiege, Apache ab, ySlow

Integração contínua

Cloud computingAmazon Web Services

Heroku, PHPCloud

Certificação

O mais importante!

Divirta-se no processo

Contato@eminetto

http://eltonminetto.nethttp://coderockr.com