SlideShare uma empresa Scribd logo
1 de 12
Baixar para ler offline
Programação Orientada a Objetos
(POO) com PHP
(Parte 2)
Model–View–Controller (MVC)
Padrão de arquitetura de software
Estrutura de diretórios
- Admin
- Api
- App
- Site
- public
- public/index.php
- composer.json
Composer
Dependency Manager for PHP
https://getcomposer.org/download/
Composer
composer create-project foo/bar path 2.2.0 - para criar um projeto a
partir de uma dependência
composer install - para instalar a partir do composer.json
composer update - para atualizar dependências
composer self-update - para atualizar o composer
composer require "foo/bar:1.0.0" - para adicionar uma dependência
composer dump-autoload --optimize - antes de colocar o sistema e
produção
Composer Cheat Sheet (http://composer.json.jolicode.com/)
PSRs
PHP Standards Recommendations
PSR-1: Basic Coding Standard
PSR-2: Coding Style Guide
PSR-3: Logger Interface
PSR-4: Autoloading Standard
PSR-6: Caching Interface
PSR-7: HTTP Message Interface
PSRs
PSR-4: Autoloader
http://www.php- g.org/psr/psr-4/
PSR-4: Autoloader
1. O termo "class" se refere a classes, interfaces, traits, e outras
estruturas similares;
2. Um nome de classe completamente quali cado tem a seguinte
forma: <NamespaceName>(<SubNamespaceNames>)*<ClassName>
O nome da classe totalmente quali cado DEVE ter um nome
namespace de nível superior, também conhecido como um
"namespace vendor".
O nome da classe totalmente quali cado PODE ter um ou mais
nomes de sub-namespace.
O nome da classe totalmente quali cado DEVE ter um nome de
classe de terminação.
TODO
1. Criar composer.json
2. Instalar pacotes composer
3. Criar Namespace Vendor
4. Aplicar autoload (PSR-4)
5. Criar os diretórios em Site, Admin e Api
Models
Views
Controllers
6. Criar Route.php em App
TODO
7. Adicionar arquvo .htaccess
8. Adicionar pacote vlucas/phpdotenv via composer
9. Refatorar com Bootstrap
10. Iniciando com Views
11. Ajustando entrada de dados nas views
12. Criando classe pai Controller
13. Criando método render
14. Melhorar a aplicação do render
TODO
15. Aplicando Template
16. Iniciando com Models
Melhorar o código
Bibliotecas de template
Let's get take a cooffe
Marp (https://yhatt.github.io/marp/)

Mais conteúdo relacionado

Semelhante a Programação Orientada a Objetos (POO) com PHP - Parte 2

Composer dependency manager - TDC - POA 2017
Composer   dependency manager - TDC - POA 2017Composer   dependency manager - TDC - POA 2017
Composer dependency manager - TDC - POA 2017Vitor Mattos
 
Composer dependency manager
Composer   dependency managerComposer   dependency manager
Composer dependency managerVitor Mattos
 
Palestra UFPR - Intro Ionic framework + WordPress
Palestra UFPR - Intro Ionic framework + WordPressPalestra UFPR - Intro Ionic framework + WordPress
Palestra UFPR - Intro Ionic framework + WordPressRômulo Zoch
 
Drupal Camp Campinas 2016 - Composer 101 e sua integração com drupal 8
Drupal Camp Campinas 2016 - Composer 101 e sua integração com drupal 8Drupal Camp Campinas 2016 - Composer 101 e sua integração com drupal 8
Drupal Camp Campinas 2016 - Composer 101 e sua integração com drupal 8Natan Moraes
 
Symfony Flex & Dependency Injection @ Symfony Live São Paulo 2019
Symfony Flex & Dependency Injection @ Symfony Live São Paulo 2019Symfony Flex & Dependency Injection @ Symfony Live São Paulo 2019
Symfony Flex & Dependency Injection @ Symfony Live São Paulo 2019Gabriel Machado
 
Ligação do Flex a um backend LAMP usando AMFPHP
Ligação do Flex a um backend LAMP usando AMFPHPLigação do Flex a um backend LAMP usando AMFPHP
Ligação do Flex a um backend LAMP usando AMFPHPelliando dias
 
2290494 integrando-flex-com-php
2290494 integrando-flex-com-php2290494 integrando-flex-com-php
2290494 integrando-flex-com-phpBrenno Abreu
 
Symfony Flex @ PHP Community Summit 2018
Symfony Flex @ PHP Community Summit 2018Symfony Flex @ PHP Community Summit 2018
Symfony Flex @ PHP Community Summit 2018Gabriel Machado
 
Controlando Projetos com Netbeans e Subversion
Controlando Projetos com Netbeans e SubversionControlando Projetos com Netbeans e Subversion
Controlando Projetos com Netbeans e Subversionlekitamura
 
PHP Symfony, Vale A Pena
PHP Symfony, Vale A PenaPHP Symfony, Vale A Pena
PHP Symfony, Vale A PenaMarcelo Fleury
 
Uma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web APIUma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web APIComunidade NetPonto
 
Como criar módulos para magento 2
Como criar módulos para magento 2Como criar módulos para magento 2
Como criar módulos para magento 2Rafael Corrêa Gomes
 
Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.Vinícius de Paula
 
Criando APIs com Slim Framework
Criando APIs com Slim FrameworkCriando APIs com Slim Framework
Criando APIs com Slim FrameworkDenilson Raimundo
 
Orquestrando Aplicações PHP com Symfony
Orquestrando Aplicações PHP com SymfonyOrquestrando Aplicações PHP com Symfony
Orquestrando Aplicações PHP com SymfonyFlávio Lisboa
 
Ionic 2/3 + Firebase
Ionic 2/3 + FirebaseIonic 2/3 + Firebase
Ionic 2/3 + FirebaseBruno Catão
 

Semelhante a Programação Orientada a Objetos (POO) com PHP - Parte 2 (20)

Composer dependency manager - TDC - POA 2017
Composer   dependency manager - TDC - POA 2017Composer   dependency manager - TDC - POA 2017
Composer dependency manager - TDC - POA 2017
 
Composer dependency manager
Composer   dependency managerComposer   dependency manager
Composer dependency manager
 
Palestra UFPR - Intro Ionic framework + WordPress
Palestra UFPR - Intro Ionic framework + WordPressPalestra UFPR - Intro Ionic framework + WordPress
Palestra UFPR - Intro Ionic framework + WordPress
 
Drupal Camp Campinas 2016 - Composer 101 e sua integração com drupal 8
Drupal Camp Campinas 2016 - Composer 101 e sua integração com drupal 8Drupal Camp Campinas 2016 - Composer 101 e sua integração com drupal 8
Drupal Camp Campinas 2016 - Composer 101 e sua integração com drupal 8
 
WP Composer
WP ComposerWP Composer
WP Composer
 
Symfony Flex & Dependency Injection @ Symfony Live São Paulo 2019
Symfony Flex & Dependency Injection @ Symfony Live São Paulo 2019Symfony Flex & Dependency Injection @ Symfony Live São Paulo 2019
Symfony Flex & Dependency Injection @ Symfony Live São Paulo 2019
 
Symfony2 Básico
Symfony2 BásicoSymfony2 Básico
Symfony2 Básico
 
Ligação do Flex a um backend LAMP usando AMFPHP
Ligação do Flex a um backend LAMP usando AMFPHPLigação do Flex a um backend LAMP usando AMFPHP
Ligação do Flex a um backend LAMP usando AMFPHP
 
2290494 integrando-flex-com-php
2290494 integrando-flex-com-php2290494 integrando-flex-com-php
2290494 integrando-flex-com-php
 
Symfony Flex @ PHP Community Summit 2018
Symfony Flex @ PHP Community Summit 2018Symfony Flex @ PHP Community Summit 2018
Symfony Flex @ PHP Community Summit 2018
 
Controlando Projetos com Netbeans e Subversion
Controlando Projetos com Netbeans e SubversionControlando Projetos com Netbeans e Subversion
Controlando Projetos com Netbeans e Subversion
 
PHP Code Analysis
PHP Code AnalysisPHP Code Analysis
PHP Code Analysis
 
PHP Symfony, Vale A Pena
PHP Symfony, Vale A PenaPHP Symfony, Vale A Pena
PHP Symfony, Vale A Pena
 
Uma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web APIUma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web API
 
Como criar módulos para magento 2
Como criar módulos para magento 2Como criar módulos para magento 2
Como criar módulos para magento 2
 
Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.
 
Criando APIs com Slim Framework
Criando APIs com Slim FrameworkCriando APIs com Slim Framework
Criando APIs com Slim Framework
 
Orquestrando Aplicações PHP com Symfony
Orquestrando Aplicações PHP com SymfonyOrquestrando Aplicações PHP com Symfony
Orquestrando Aplicações PHP com Symfony
 
Ionic 2/3 + Firebase
Ionic 2/3 + FirebaseIonic 2/3 + Firebase
Ionic 2/3 + Firebase
 
Setup.docx
Setup.docxSetup.docx
Setup.docx
 

Mais de Israel Messias

Arquitetura Cliente-Servidor - Modelos
Arquitetura Cliente-Servidor - ModelosArquitetura Cliente-Servidor - Modelos
Arquitetura Cliente-Servidor - ModelosIsrael Messias
 
Arquitetura Cliente-Servidor
Arquitetura Cliente-ServidorArquitetura Cliente-Servidor
Arquitetura Cliente-ServidorIsrael Messias
 
Arquitetura Cliente-Servidor - Banco de dados
Arquitetura Cliente-Servidor - Banco de dadosArquitetura Cliente-Servidor - Banco de dados
Arquitetura Cliente-Servidor - Banco de dadosIsrael Messias
 
Ferramentas para Animações de Sites - Canvas
Ferramentas para Animações de Sites - CanvasFerramentas para Animações de Sites - Canvas
Ferramentas para Animações de Sites - CanvasIsrael Messias
 
Ferramentas para Animações de Sites - Áudio
Ferramentas para Animações de Sites - ÁudioFerramentas para Animações de Sites - Áudio
Ferramentas para Animações de Sites - ÁudioIsrael Messias
 
CSS - Cascading Style Sheets - Medidas
CSS - Cascading Style Sheets - MedidasCSS - Cascading Style Sheets - Medidas
CSS - Cascading Style Sheets - MedidasIsrael Messias
 
CSS - Cascading Style Sheets - Revisão
CSS - Cascading Style Sheets - RevisãoCSS - Cascading Style Sheets - Revisão
CSS - Cascading Style Sheets - RevisãoIsrael Messias
 
CSS - Cascading Style Sheets - 2
CSS - Cascading Style Sheets - 2CSS - Cascading Style Sheets - 2
CSS - Cascading Style Sheets - 2Israel Messias
 
CSS - Cascading Style Sheets - 1
CSS - Cascading Style Sheets - 1CSS - Cascading Style Sheets - 1
CSS - Cascading Style Sheets - 1Israel Messias
 
HTML - HyperText Markup Language - Review
HTML - HyperText Markup Language - ReviewHTML - HyperText Markup Language - Review
HTML - HyperText Markup Language - ReviewIsrael Messias
 
HTML - HyperText Markup Language - FTP
HTML - HyperText Markup Language - FTPHTML - HyperText Markup Language - FTP
HTML - HyperText Markup Language - FTPIsrael Messias
 
HTML - HyperText Markup Language - Organização de arquivos
HTML - HyperText Markup Language - Organização de arquivosHTML - HyperText Markup Language - Organização de arquivos
HTML - HyperText Markup Language - Organização de arquivosIsrael Messias
 
HTML - HyperText Markup Language - Formulário
HTML - HyperText Markup Language - FormulárioHTML - HyperText Markup Language - Formulário
HTML - HyperText Markup Language - FormulárioIsrael Messias
 
HTML - HyperText Markup Language - 4 - Review
HTML - HyperText Markup Language - 4 - Review HTML - HyperText Markup Language - 4 - Review
HTML - HyperText Markup Language - 4 - Review Israel Messias
 
HTML - HyperText Markup Language - HTML5
HTML - HyperText Markup Language - HTML5HTML - HyperText Markup Language - HTML5
HTML - HyperText Markup Language - HTML5Israel Messias
 
HTML - HyperText Markup Language - 2
HTML - HyperText Markup Language - 2HTML - HyperText Markup Language - 2
HTML - HyperText Markup Language - 2Israel Messias
 
HTML - HyperText Markup Language - Introdução
HTML - HyperText Markup Language - IntroduçãoHTML - HyperText Markup Language - Introdução
HTML - HyperText Markup Language - IntroduçãoIsrael Messias
 
HTML - HyperText Markup Language - 1
HTML - HyperText Markup Language - 1HTML - HyperText Markup Language - 1
HTML - HyperText Markup Language - 1Israel Messias
 

Mais de Israel Messias (19)

CMS
CMSCMS
CMS
 
Arquitetura Cliente-Servidor - Modelos
Arquitetura Cliente-Servidor - ModelosArquitetura Cliente-Servidor - Modelos
Arquitetura Cliente-Servidor - Modelos
 
Arquitetura Cliente-Servidor
Arquitetura Cliente-ServidorArquitetura Cliente-Servidor
Arquitetura Cliente-Servidor
 
Arquitetura Cliente-Servidor - Banco de dados
Arquitetura Cliente-Servidor - Banco de dadosArquitetura Cliente-Servidor - Banco de dados
Arquitetura Cliente-Servidor - Banco de dados
 
Ferramentas para Animações de Sites - Canvas
Ferramentas para Animações de Sites - CanvasFerramentas para Animações de Sites - Canvas
Ferramentas para Animações de Sites - Canvas
 
Ferramentas para Animações de Sites - Áudio
Ferramentas para Animações de Sites - ÁudioFerramentas para Animações de Sites - Áudio
Ferramentas para Animações de Sites - Áudio
 
CSS - Cascading Style Sheets - Medidas
CSS - Cascading Style Sheets - MedidasCSS - Cascading Style Sheets - Medidas
CSS - Cascading Style Sheets - Medidas
 
CSS - Cascading Style Sheets - Revisão
CSS - Cascading Style Sheets - RevisãoCSS - Cascading Style Sheets - Revisão
CSS - Cascading Style Sheets - Revisão
 
CSS - Cascading Style Sheets - 2
CSS - Cascading Style Sheets - 2CSS - Cascading Style Sheets - 2
CSS - Cascading Style Sheets - 2
 
CSS - Cascading Style Sheets - 1
CSS - Cascading Style Sheets - 1CSS - Cascading Style Sheets - 1
CSS - Cascading Style Sheets - 1
 
HTML - HyperText Markup Language - Review
HTML - HyperText Markup Language - ReviewHTML - HyperText Markup Language - Review
HTML - HyperText Markup Language - Review
 
HTML - HyperText Markup Language - FTP
HTML - HyperText Markup Language - FTPHTML - HyperText Markup Language - FTP
HTML - HyperText Markup Language - FTP
 
HTML - HyperText Markup Language - Organização de arquivos
HTML - HyperText Markup Language - Organização de arquivosHTML - HyperText Markup Language - Organização de arquivos
HTML - HyperText Markup Language - Organização de arquivos
 
HTML - HyperText Markup Language - Formulário
HTML - HyperText Markup Language - FormulárioHTML - HyperText Markup Language - Formulário
HTML - HyperText Markup Language - Formulário
 
HTML - HyperText Markup Language - 4 - Review
HTML - HyperText Markup Language - 4 - Review HTML - HyperText Markup Language - 4 - Review
HTML - HyperText Markup Language - 4 - Review
 
HTML - HyperText Markup Language - HTML5
HTML - HyperText Markup Language - HTML5HTML - HyperText Markup Language - HTML5
HTML - HyperText Markup Language - HTML5
 
HTML - HyperText Markup Language - 2
HTML - HyperText Markup Language - 2HTML - HyperText Markup Language - 2
HTML - HyperText Markup Language - 2
 
HTML - HyperText Markup Language - Introdução
HTML - HyperText Markup Language - IntroduçãoHTML - HyperText Markup Language - Introdução
HTML - HyperText Markup Language - Introdução
 
HTML - HyperText Markup Language - 1
HTML - HyperText Markup Language - 1HTML - HyperText Markup Language - 1
HTML - HyperText Markup Language - 1
 

Programação Orientada a Objetos (POO) com PHP - Parte 2

  • 1. Programação Orientada a Objetos (POO) com PHP (Parte 2)
  • 3. Estrutura de diretórios - Admin - Api - App - Site - public - public/index.php - composer.json
  • 4. Composer Dependency Manager for PHP https://getcomposer.org/download/
  • 5. Composer composer create-project foo/bar path 2.2.0 - para criar um projeto a partir de uma dependência composer install - para instalar a partir do composer.json composer update - para atualizar dependências composer self-update - para atualizar o composer composer require "foo/bar:1.0.0" - para adicionar uma dependência composer dump-autoload --optimize - antes de colocar o sistema e produção Composer Cheat Sheet (http://composer.json.jolicode.com/)
  • 6. PSRs PHP Standards Recommendations PSR-1: Basic Coding Standard PSR-2: Coding Style Guide PSR-3: Logger Interface PSR-4: Autoloading Standard PSR-6: Caching Interface PSR-7: HTTP Message Interface
  • 8. PSR-4: Autoloader 1. O termo "class" se refere a classes, interfaces, traits, e outras estruturas similares; 2. Um nome de classe completamente quali cado tem a seguinte forma: <NamespaceName>(<SubNamespaceNames>)*<ClassName> O nome da classe totalmente quali cado DEVE ter um nome namespace de nível superior, também conhecido como um "namespace vendor". O nome da classe totalmente quali cado PODE ter um ou mais nomes de sub-namespace. O nome da classe totalmente quali cado DEVE ter um nome de classe de terminação.
  • 9. TODO 1. Criar composer.json 2. Instalar pacotes composer 3. Criar Namespace Vendor 4. Aplicar autoload (PSR-4) 5. Criar os diretórios em Site, Admin e Api Models Views Controllers 6. Criar Route.php em App
  • 10. TODO 7. Adicionar arquvo .htaccess 8. Adicionar pacote vlucas/phpdotenv via composer 9. Refatorar com Bootstrap 10. Iniciando com Views 11. Ajustando entrada de dados nas views 12. Criando classe pai Controller 13. Criando método render 14. Melhorar a aplicação do render
  • 11. TODO 15. Aplicando Template 16. Iniciando com Models Melhorar o código Bibliotecas de template
  • 12. Let's get take a cooffe Marp (https://yhatt.github.io/marp/)