Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Sessão de esclarecimento
PHP “avançado” e PHP OO
    Tips and tricks of the real world

                            José P...
Abordagem do problema
   Tentar segmentar e decompor o problema em pequenos
    blocos lógicos mais ou menos auto contido...
Abordagem do problema: MVC
   Metodologia de desenvolvimento de software que estrutura
    uma aplicação em três blocos l...
Abordagem do problema: MVC
   Grandes vantagens (do meu ponto de vista):
       Disciplina o programador a abordar o pro...
Estruturação de uma aplicação web
   /
       Configuração e bootstrapping (arranque da aplicação)
           config/co...
Alguns conceitos básicos
   Funções de verificação de variáveis: isset, empty,
    is_null
       Função isset e empty s...
Alguns conceitos básicos
   Fluxo do script e controlo de output
       Funções echo, header e output buffering (ob_star...
Debugging e logging
   Debug? Vale tudo…
       Assegurar que as directivas de configuração do PHP
        estão configu...
Misc
   preg_match, preg_match_all, preg_replace,
    preg_replace_callback, preg_grep, preg_quote
   func_num_args(), f...
PHP Object Oriented Programming
   Polimorfismo, overload e encapsulamento
   $this e parent – Diferença entre :: e →;
...
Outros temas a abordar
   Cache
   Segurança
       SQL Injection
       session hijacking
       acesso indevido ao ...
Upcoming SlideShare
Loading in …5
×

Ap 04 05_10

1,186 views

Published on

  • Be the first to comment

  • Be the first to like this

Ap 04 05_10

  1. 1. Sessão de esclarecimento PHP “avançado” e PHP OO Tips and tricks of the real world José Pedro Saraiva Jose.pedro@ua.pt labs.sapo/ua
  2. 2. Abordagem do problema  Tentar segmentar e decompor o problema em pequenos blocos lógicos mais ou menos auto contidos e com tarefas específicas;  Apesar de mais moroso a longo prazo é recompensador:  Organização e legibilidade do código;  Maior abstracção;  Maior flexibilidade para futura adaptação a outras necessidades;  Tem um custo… requer tempo e planeamento e implica, regra geral, um overhead adicional José Pedro Saraiva | labs.sapo/ua
  3. 3. Abordagem do problema: MVC  Metodologia de desenvolvimento de software que estrutura uma aplicação em três blocos lógicos:  Model – Modelo de dados, fontes de dados de uma forma geral (base de dados, feeds, storage, etc);  View – Camada de apresentação (interface)  Controller – Lógica de negócio (lógica associada à acção pretendida)  Complemento desta segmentação com componentes que podem ser usados nestes três blocos (autenticação, sessões, webservices, etc) José Pedro Saraiva | labs.sapo/ua
  4. 4. Abordagem do problema: MVC  Grandes vantagens (do meu ponto de vista):  Disciplina o programador a abordar o problema com estas três lógicas separadas à partida;  Melhor para trabalho em equipa por permitir desenvolvimento, teste e manutenção (mais ou menos) independente. José Pedro Saraiva | labs.sapo/ua
  5. 5. Estruturação de uma aplicação web  /  Configuração e bootstrapping (arranque da aplicação)  config/config.php  config/bootstrap.php  config/.htaccess (não necessário neste caso)  Webroot pública (deverá ser a raíz do ponto de vista do webserver)  webroot/*  Ficheiros temporários (ficheiros de sessão, logs, cache, etc)  tmp/* José Pedro Saraiva | labs.sapo/ua
  6. 6. Alguns conceitos básicos  Funções de verificação de variáveis: isset, empty, is_null  Função isset e empty suprimem eventuais notices se a variável não estiver definida  Funções de verificação de tipos de uma variável: is_string, is_array, is_int, is_float, is_numeric, etc…  Operador @ e strict comparison José Pedro Saraiva | labs.sapo/ua
  7. 7. Alguns conceitos básicos  Fluxo do script e controlo de output  Funções echo, header e output buffering (ob_start, ob_get_contents, ob_end_clean, ob_end_flush)  Clarificar conceito de constante e funções de define(), defined() e constant(); José Pedro Saraiva | labs.sapo/ua
  8. 8. Debugging e logging  Debug? Vale tudo…  Assegurar que as directivas de configuração do PHP estão configuradas para debug (com ini_set ou outro método)  Funções de referência: error_log, var_dump, print_r, var_export, debug_backtrace(), debug_print_backtrace() , file_put_contents e trigger_error José Pedro Saraiva | labs.sapo/ua
  9. 9. Misc  preg_match, preg_match_all, preg_replace, preg_replace_callback, preg_grep, preg_quote  func_num_args(), func_get_args();  call_user_func, call_user_func_array, eval, anonymous functions, variables as functions; José Pedro Saraiva | labs.sapo/ua
  10. 10. PHP Object Oriented Programming  Polimorfismo, overload e encapsulamento  $this e parent – Diferença entre :: e →;  public, protected, private;  class vars e class constants;  getters e setters  constantes __FUNCTION__ e __CLASS__, funções get_class, class_exists, …;  Excepções: throw, try { } catch () { };  Função __call;  Staticness e singleton. José Pedro Saraiva | labs.sapo/ua
  11. 11. Outros temas a abordar  Cache  Segurança  SQL Injection  session hijacking  acesso indevido ao filesystem  php-cli  command line  ficheiro de configuração independente  Implementação de JSONP server side José Pedro Saraiva | labs.sapo/ua

×