SlideShare uma empresa Scribd logo
1 de 28
Anderson Gonçalves – Introdução ao framework CodeIgniter
Introdução ao
framework CodeIgniter
Anderson Gonçalves – Introdução ao framework CodeIgniter
Sobre mim
Anderson Gonçalves (Bônus)
● Instrutor e desenvolvedor Freelancer
● Focado em back-end.
● Experiência com PHP há 6 anos.
● E um pai babão...
https://github.com/Bonus3
@AndersonWebM
Anderson Gonçalves – Introdução ao framework CodeIgniter
Framework é uma abstração que une códigos comuns entre
vários projetos de software provendo uma funcionalidade
genérica. Um framework pode atingir uma funcionalidade
específica, por configuração, durante a programação de uma
aplicação. Ao contrário das bibliotecas, é o framework quem dita
o fluxo de controle da aplicação, chamado de Inversão de
Controle.
- Wikipedia
Anderson Gonçalves – Introdução ao framework CodeIgniter
Visão geral do CodeIgniter
● Licença MIT
● Grande documentação e comunidade ativa
● Solução leve para problema complexo usando MVC
● Compatibilidade (PHP >= 5.2, suporte a vários DB)
● Alta performance
● Liberdade
● Sem necessidade de Template Engine
● Fácil de aprender
Anderson Gonçalves – Introdução ao framework CodeIgniter
Outros frameworks
Anderson Gonçalves – Introdução ao framework CodeIgniter
Instalação
● Faça o download em https://codeigniter.com/download
● Descompacte-o em seu servidor. O arquivo index.php indica o
root da sua aplicação.
● Abra e altere os arquivos config.php e database.php na pasta
application/config
Anderson Gonçalves – Introdução ao framework CodeIgniter
Application/config/config.php
No arquivo config.php, há uma variável $config que armazena
um vetor das configurações possíveis. As principais:
● base_url (http://www.exemplo.com)
● index_page ()
● subclass_prefix (MY_)
● log_threshold (TRUE)
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
Anderson Gonçalves – Introdução ao framework CodeIgniter
Application/config/database.php
Neste arquivo fica as configurações de conexão com o database.
O CodeIgniter suporta diversosdatabe, como: MySQL,
PostgreSQL, Oracle. As principais configuraçoes:
● DNS ou Hostname
● Username
● Password
● Database
● DBDriver
Anderson Gonçalves – Introdução ao framework CodeIgniter
Estrutura de pastas
As duas principais pastas que
compõe o CI é system e
application.
Na system, fica os arquivos core
do framework, só mexa nesta
pasta se realmente souber o que
está fazendo. E application é onde
ficam os arquivos que forma
nossa aplicação.
Anderson Gonçalves – Introdução ao framework CodeIgniter
Estrutura de pastas
● Cache – Páginas em cache
● Config – Arquivos de configuração
● Controllers – Arquivos com as classes do controller
● Core – Arquivos que estendem as funcionalidade do CI ou o
“motor” da aplicação
● Helpers – Arquivos com funções de ajuda
● Hooks – Arquivos contendo classes a ser usadas em gatilhos do CI
● Language – Pastas e arquivos para o suporte a multi- linguagem
● Library – Bibliotecas construídas exclusivamente para o projeto
● Models – Classes responsáveis para acesso a dados em DB ou
arquivos (persistência de dados)
● Views – Arquivos que geram a interface (retorno) pro usuário
Anderson Gonçalves – Introdução ao framework CodeIgniter
Sistema de rotas
Anderson Gonçalves – Introdução ao framework CodeIgniter
Sistema de rotas
O CodeIgniter trabalha com um sistema de rotas baseado na
segmentação de URL, onde através deste é determinado qual
controller usar, qual método acessar e qual parâmetro passar (se
houver).
Anderson Gonçalves – Introdução ao framework CodeIgniter
Sistema de rotas
● Exemplo.com
Carragará o controller default, configurado no arquivo routes.php
● Exemplo.com/um_controller
Carregará o controller um_controller e executará o método index
● Exemplo.com/um_controller/um_metodo
Carregará o controller um_controller e executará o método um_metodo
● Exemplo.com/um_controller/um_metodo/um_param
Carregará o controller um_controller, executará o método um_metodo e
passará param como parâmetro
Anderson Gonçalves – Introdução ao framework CodeIgniter
Application/config/routes.php
No arquivo routes.php é onde configuramos o controller default, na opção
default_controller, e onde podemos criar rotas personalizadas através
do vertor armazenado em $route, tendo como índice o caminho
personalizado e, em seu valor, o controller com (ou sem) o método ou
parâmetro. É possível utilzar expressão regular.
Ex: $router['supermercados/:num/pdvs/([a-z0-9_]+)'] = 'pdvs/listar/$1';
Acessando por exemplo: exemplo.com/supermercados/3/pdvs/6
Será carregado o controller Pdvs, executar o método listar e passar
como parâmetro o valor 6.
Anderson Gonçalves – Introdução ao framework CodeIgniter
Controllers
Cada classe controller deve estar num arquivo de mesmo nome,
incluindo maiúsculas e minúsculas. Uma sugestão é utilizar o
padrão Nome_da_classe. E deve, obrigatoriamente, estender a
classe CI_Controller.
Nos controllers, é através do método view da classe Loader
(esta classe é instanciada automaticamente) que é carregada as
views, para isto utilizados:
$this->load->view('arquivo'); //Sem a extensão
$this->load->view('pasta/arquivo'); //Se estiver numa subpasta
Anderson Gonçalves – Introdução ao framework CodeIgniter
Controllers
O método view() ainda pode receber um vetor como o segundo
parâmetro, onde que com o índice é criado uma variável de
mesmo nome e o seu valor.
Ex: $data = array(
'title' => 'Introdução ao CI'
);
$this->load->view('exemplo', $data);
Assim, carregará a view exemplo.php, que terá disponível a
variável $title contendo o valor Introdução ao CI.
Anderson Gonçalves – Introdução ao framework CodeIgniter
Loader
A classe Loader é instanciada na inicialização do CI e é uma das
classes mais utilizadas. Através dela, podemos carregar models,
helpers e librarys.
Qualquer classe carregada, o seu nome, se torna uma
propriedade do instância que o carregou. Ex:
//Carrega a Classe Usuários da pasta Model
$this->load->model('usuarios');
//Agora, existe uma propriedade com o mesmo nome
$this->usuarios->metodo_model();
Anderson Gonçalves – Introdução ao framework CodeIgniter
Model
Model são as classes responsáveis pela persistência dos dados,
geralmente, trabalhando com banco de dados. O nome da classe
deve ser o mesmo do arquivo e deve, obrigatoriamente, estender
da classe CI_Model. Sugiro o mesmo padrão que citei antes
(Nome_da_classe).
Para utilizá-la deve-se primeiro carregá-la.
$this->load->model('nome_da_classe');
Anderson Gonçalves – Introdução ao framework CodeIgniter
Query Builder
Para trabalhar com o banco de dados em nosso model, o CI
disponibiliza a classe DB_query_builder, instanciada através da
library database, e armazenada na propriedade db do objeto
instanciado.
Esta classe é interessante, pois, realiza algumas rotinas
automáticas, como:
● Escapar valores
● Construir a string a ser executada pelo database
Anderson Gonçalves – Introdução ao framework CodeIgniter
Query Builder - Insert
Para inserir dados utilizamos o método insert(), passando como
parâmetro um vetor, onde o índice é o nome do campo (coluna)
da tabela.
Ex: $data = array(
'nome' => $this->input->post('nome'),
'telefone' => $this->input->post('telefone')
);
$this->db->insert('contatos', $data);
//INSERT INTO `contatos` (nome, telefone) VALUES (`valor_nome`, `valor_telefone`);
Anderson Gonçalves – Introdução ao framework CodeIgniter
Query Builder - Update
Para atualizar dados utilizamos o método update().
Ex: $data = array(
'nome' => $this->input->post('nome'),
'telefone' => $this->input->post('telefone')
);
$where = array(
'id' => $this->input->post('id')
);
$this->db->update('contatos', $data, $where);
//UPDATE `contatos` SET `nome` = `valor_nome`, `telefone` = `valor_telefone` WHERE `id` = `valor_id`
Anderson Gonçalves – Introdução ao framework CodeIgniter
Query Builder - Select
Para selecionar dados utilizamos o método get().
$this->db->get('contatos');
//SELECT * FROM contatos
Anderson Gonçalves – Introdução ao framework CodeIgniter
Query Builder - Delete
Para apagar dados utilizamos o método delete().
$where = array(
'id' => $this->input->get('id')
);
$this->db->delete('contatos', $where);
//DELET FROM contatos WHERE id = 'valor_id'
Anderson Gonçalves – Introdução ao framework CodeIgniter
Library
O CI possui diversas libraries prontas para serem usadas, já
vimos a que auxilia na manipulação de bando de dados. Há,
também, a possibilidade de poder criar suas próprias ou estender
as já existentes.
Uma das mais usadas é o Form Validation.
$this->load->library('form_validation');
Anderson Gonçalves – Introdução ao framework CodeIgniter
Form Validation
Esta library permite criar regras de validação para as entradas
de formulários. Fazemos isto através de um vetor bidimensional.
$rules = array(
Array(
'field' => 'campo',
'label' => 'Campo',
'rules' => array('vetor_de_regras'),
'errors' => array(
'regra' => 'Mensagem'
)
)
);
Anderson Gonçalves – Introdução ao framework CodeIgniter
Form Validation
Configura a library para usar aquela validação:
$this->form_validation->set_rules($rules);
E executa o método run(), que rotorna um valor booleano, onde
TRUE, o formulário está preenchido corretamente, e FALSE,
caso não esteja.
$this->form_validation->run();
Anderson Gonçalves – Introdução ao framework CodeIgniter
Form Validation
Caso o método run() tenha retornado falso, podemos pegar os
erros gerados através dos métodos erro_array() ou
erro_string().
Cada erro retornado estará num parágrafo. Se desejar alterar a
tag que envolve o erro, utilize o método
set_error_delimiters('tag antes do erro', 'tag depois do erro');
Ex:
$this->form_validation->set_error_delimiter('<div>', '</div>');
Anderson Gonçalves – Introdução ao framework CodeIgniter
Obrigado! :)
Dúvidas?

Mais conteúdo relacionado

Mais procurados

Como escolher o Framework Java para web?
Como escolher o Framework Java para web?Como escolher o Framework Java para web?
Como escolher o Framework Java para web?Anderson Araújo
 
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem DorPlay Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem DorAllyson Barros
 
Desenvolvendo Aplicações com Zend Framework
Desenvolvendo Aplicações com Zend FrameworkDesenvolvendo Aplicações com Zend Framework
Desenvolvendo Aplicações com Zend FrameworkDomingos Teruel
 
Criando Aplicações PHP Poderosas com Zend Framework 2 - 8º SOLISC
Criando Aplicações PHP Poderosas com Zend Framework 2 - 8º SOLISCCriando Aplicações PHP Poderosas com Zend Framework 2 - 8º SOLISC
Criando Aplicações PHP Poderosas com Zend Framework 2 - 8º SOLISCFlávio Lisboa
 
Entendendo Framework Web com Python
Entendendo Framework Web com PythonEntendendo Framework Web com Python
Entendendo Framework Web com PythonPythOnRio
 
Apostila Java Web com JSF, JPA e Primefaces
Apostila Java Web com JSF, JPA e PrimefacesApostila Java Web com JSF, JPA e Primefaces
Apostila Java Web com JSF, JPA e PrimefacesRosicleia Frasson
 
Começando com Zend Framework 2
Começando com Zend Framework 2Começando com Zend Framework 2
Começando com Zend Framework 2Cezar Souza
 
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2Cezar Souza
 
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendAnálise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendThiago Sinésio
 
Construindo aplicações web java com netbeans
Construindo aplicações web java com netbeansConstruindo aplicações web java com netbeans
Construindo aplicações web java com netbeansSliedesharessbarbosa
 
Desenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e ServletsDesenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e ServletsIgo Coelho
 
JSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.javaJSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.javaEduardo Bregaida
 
Analise frameworks php
Analise frameworks phpAnalise frameworks php
Analise frameworks phpIgor Moura
 
Criando websites a jato com Django
Criando websites a jato com DjangoCriando websites a jato com Django
Criando websites a jato com DjangoMarcos Petry
 
Desenvolvimento de Módulos Divi Builder
Desenvolvimento de Módulos Divi BuilderDesenvolvimento de Módulos Divi Builder
Desenvolvimento de Módulos Divi BuilderDaniel Paz
 
Zend Framework em Exemplos
Zend Framework em ExemplosZend Framework em Exemplos
Zend Framework em Exemplosxbacon
 
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação WebDjango Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Webantonio sérgio nogueira
 
Conhecendo o Zend Framework
Conhecendo o Zend FrameworkConhecendo o Zend Framework
Conhecendo o Zend FrameworkJaime Neto
 

Mais procurados (20)

Como escolher o Framework Java para web?
Como escolher o Framework Java para web?Como escolher o Framework Java para web?
Como escolher o Framework Java para web?
 
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem DorPlay Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
 
Desenvolvendo Aplicações com Zend Framework
Desenvolvendo Aplicações com Zend FrameworkDesenvolvendo Aplicações com Zend Framework
Desenvolvendo Aplicações com Zend Framework
 
Criando Aplicações PHP Poderosas com Zend Framework 2 - 8º SOLISC
Criando Aplicações PHP Poderosas com Zend Framework 2 - 8º SOLISCCriando Aplicações PHP Poderosas com Zend Framework 2 - 8º SOLISC
Criando Aplicações PHP Poderosas com Zend Framework 2 - 8º SOLISC
 
Entendendo Framework Web com Python
Entendendo Framework Web com PythonEntendendo Framework Web com Python
Entendendo Framework Web com Python
 
Apostila Java Web com JSF, JPA e Primefaces
Apostila Java Web com JSF, JPA e PrimefacesApostila Java Web com JSF, JPA e Primefaces
Apostila Java Web com JSF, JPA e Primefaces
 
Começando com Zend Framework 2
Começando com Zend Framework 2Começando com Zend Framework 2
Começando com Zend Framework 2
 
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2
 
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendAnálise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
 
Construindo aplicações web java com netbeans
Construindo aplicações web java com netbeansConstruindo aplicações web java com netbeans
Construindo aplicações web java com netbeans
 
Desenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e ServletsDesenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e Servlets
 
JSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.javaJSF e outras tecnologias Java Web - IMES.java
JSF e outras tecnologias Java Web - IMES.java
 
Analise frameworks php
Analise frameworks phpAnalise frameworks php
Analise frameworks php
 
Frameworks em Java
Frameworks em JavaFrameworks em Java
Frameworks em Java
 
Criando websites a jato com Django
Criando websites a jato com DjangoCriando websites a jato com Django
Criando websites a jato com Django
 
Minicurso Yii2
Minicurso Yii2Minicurso Yii2
Minicurso Yii2
 
Desenvolvimento de Módulos Divi Builder
Desenvolvimento de Módulos Divi BuilderDesenvolvimento de Módulos Divi Builder
Desenvolvimento de Módulos Divi Builder
 
Zend Framework em Exemplos
Zend Framework em ExemplosZend Framework em Exemplos
Zend Framework em Exemplos
 
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação WebDjango Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
 
Conhecendo o Zend Framework
Conhecendo o Zend FrameworkConhecendo o Zend Framework
Conhecendo o Zend Framework
 

Semelhante a Introdução ao framework CodeIgniter

ZF Básico - 1. Introdução
ZF Básico - 1. IntroduçãoZF Básico - 1. Introdução
ZF Básico - 1. IntroduçãoMarcos Bezerra
 
hibernate annotation
hibernate annotationhibernate annotation
hibernate annotationeduardo dias
 
Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5Lucas Augusto Carvalho
 
Treinamento Básico de Django
Treinamento Básico de DjangoTreinamento Básico de Django
Treinamento Básico de DjangoLeandro Zanuz
 
Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5Erisvaldo Junior
 
Zend Framework 2 - Desenvolvimento Ágil Competente
Zend Framework 2 - Desenvolvimento Ágil CompetenteZend Framework 2 - Desenvolvimento Ágil Competente
Zend Framework 2 - Desenvolvimento Ágil CompetenteMichael Cardoso
 
Introdução ao zend framework
Introdução ao zend frameworkIntrodução ao zend framework
Introdução ao zend frameworkMarcos Oliveira
 
Aula05 android persistencia
Aula05 android persistenciaAula05 android persistencia
Aula05 android persistenciaRoberson Alves
 
ASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre TarifaASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre Tarifaguestea329c
 
Mini curso introdutório ao Django
Mini curso introdutório ao DjangoMini curso introdutório ao Django
Mini curso introdutório ao DjangoVinicius Mendes
 
Palestra MVC - Online tech day 2010
Palestra MVC - Online tech day 2010Palestra MVC - Online tech day 2010
Palestra MVC - Online tech day 2010Alexandre Tarifa
 
Entendendo Frameworks web com Python
Entendendo Frameworks web com PythonEntendendo Frameworks web com Python
Entendendo Frameworks web com PythonLuiz Aldabalde
 
Documentação CakePHP - Português Br
Documentação CakePHP -  Português BrDocumentação CakePHP -  Português Br
Documentação CakePHP - Português BrLuiz Ladeira
 
Zend Framework 2 é legal ! Mas como ele funciona ?!
Zend Framework 2 é legal ! Mas como ele funciona ?!Zend Framework 2 é legal ! Mas como ele funciona ?!
Zend Framework 2 é legal ! Mas como ele funciona ?!Alefe Variani
 
Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.Vinícius de Paula
 

Semelhante a Introdução ao framework CodeIgniter (20)

ZF Básico - 1. Introdução
ZF Básico - 1. IntroduçãoZF Básico - 1. Introdução
ZF Básico - 1. Introdução
 
Palestra
PalestraPalestra
Palestra
 
Aula1
Aula1Aula1
Aula1
 
Django Módulo Básico Parte II
Django Módulo Básico Parte IIDjango Módulo Básico Parte II
Django Módulo Básico Parte II
 
hibernate annotation
hibernate annotationhibernate annotation
hibernate annotation
 
Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5
 
Treinamento Básico de Django
Treinamento Básico de DjangoTreinamento Básico de Django
Treinamento Básico de Django
 
Introdução Play framework
Introdução Play frameworkIntrodução Play framework
Introdução Play framework
 
Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5
 
Zend Framework 2 - Desenvolvimento Ágil Competente
Zend Framework 2 - Desenvolvimento Ágil CompetenteZend Framework 2 - Desenvolvimento Ágil Competente
Zend Framework 2 - Desenvolvimento Ágil Competente
 
Introdução ao zend framework
Introdução ao zend frameworkIntrodução ao zend framework
Introdução ao zend framework
 
Aula05 android persistencia
Aula05 android persistenciaAula05 android persistencia
Aula05 android persistencia
 
ASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre TarifaASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre Tarifa
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
Mini curso introdutório ao Django
Mini curso introdutório ao DjangoMini curso introdutório ao Django
Mini curso introdutório ao Django
 
Palestra MVC - Online tech day 2010
Palestra MVC - Online tech day 2010Palestra MVC - Online tech day 2010
Palestra MVC - Online tech day 2010
 
Entendendo Frameworks web com Python
Entendendo Frameworks web com PythonEntendendo Frameworks web com Python
Entendendo Frameworks web com Python
 
Documentação CakePHP - Português Br
Documentação CakePHP -  Português BrDocumentação CakePHP -  Português Br
Documentação CakePHP - Português Br
 
Zend Framework 2 é legal ! Mas como ele funciona ?!
Zend Framework 2 é legal ! Mas como ele funciona ?!Zend Framework 2 é legal ! Mas como ele funciona ?!
Zend Framework 2 é legal ! Mas como ele funciona ?!
 
Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.
 

Último

19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdfmarlene54545
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxMarcosLemes28
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxFlviaGomes64
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfHELENO FAVACHO
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfHELENO FAVACHO
 
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...Francisco Márcio Bezerra Oliveira
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxLuizHenriquedeAlmeid6
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2Maria Teresa Thomaz
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...PatriciaCaetano18
 
LENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretaçãoLENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretaçãoLidianePaulaValezi
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfFrancisco Márcio Bezerra Oliveira
 
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdfTCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdfamarianegodoi
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfcomercial400681
 
O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.denisecompasso2
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxTailsonSantos1
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTailsonSantos1
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfTutor de matemática Ícaro
 
migração e trabalho 2º ano.pptx fenomenos
migração e trabalho 2º ano.pptx fenomenosmigração e trabalho 2º ano.pptx fenomenos
migração e trabalho 2º ano.pptx fenomenosLucianoPrado15
 
M0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxM0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxJustinoTeixeira1
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfHELENO FAVACHO
 

Último (20)

19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptx
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
 
LENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretaçãoLENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretação
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdfTCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 
O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
migração e trabalho 2º ano.pptx fenomenos
migração e trabalho 2º ano.pptx fenomenosmigração e trabalho 2º ano.pptx fenomenos
migração e trabalho 2º ano.pptx fenomenos
 
M0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxM0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptx
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
 

Introdução ao framework CodeIgniter

  • 1. Anderson Gonçalves – Introdução ao framework CodeIgniter Introdução ao framework CodeIgniter
  • 2. Anderson Gonçalves – Introdução ao framework CodeIgniter Sobre mim Anderson Gonçalves (Bônus) ● Instrutor e desenvolvedor Freelancer ● Focado em back-end. ● Experiência com PHP há 6 anos. ● E um pai babão... https://github.com/Bonus3 @AndersonWebM
  • 3. Anderson Gonçalves – Introdução ao framework CodeIgniter Framework é uma abstração que une códigos comuns entre vários projetos de software provendo uma funcionalidade genérica. Um framework pode atingir uma funcionalidade específica, por configuração, durante a programação de uma aplicação. Ao contrário das bibliotecas, é o framework quem dita o fluxo de controle da aplicação, chamado de Inversão de Controle. - Wikipedia
  • 4. Anderson Gonçalves – Introdução ao framework CodeIgniter Visão geral do CodeIgniter ● Licença MIT ● Grande documentação e comunidade ativa ● Solução leve para problema complexo usando MVC ● Compatibilidade (PHP >= 5.2, suporte a vários DB) ● Alta performance ● Liberdade ● Sem necessidade de Template Engine ● Fácil de aprender
  • 5. Anderson Gonçalves – Introdução ao framework CodeIgniter Outros frameworks
  • 6. Anderson Gonçalves – Introdução ao framework CodeIgniter Instalação ● Faça o download em https://codeigniter.com/download ● Descompacte-o em seu servidor. O arquivo index.php indica o root da sua aplicação. ● Abra e altere os arquivos config.php e database.php na pasta application/config
  • 7. Anderson Gonçalves – Introdução ao framework CodeIgniter Application/config/config.php No arquivo config.php, há uma variável $config que armazena um vetor das configurações possíveis. As principais: ● base_url (http://www.exemplo.com) ● index_page () ● subclass_prefix (MY_) ● log_threshold (TRUE) RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L]
  • 8. Anderson Gonçalves – Introdução ao framework CodeIgniter Application/config/database.php Neste arquivo fica as configurações de conexão com o database. O CodeIgniter suporta diversosdatabe, como: MySQL, PostgreSQL, Oracle. As principais configuraçoes: ● DNS ou Hostname ● Username ● Password ● Database ● DBDriver
  • 9. Anderson Gonçalves – Introdução ao framework CodeIgniter Estrutura de pastas As duas principais pastas que compõe o CI é system e application. Na system, fica os arquivos core do framework, só mexa nesta pasta se realmente souber o que está fazendo. E application é onde ficam os arquivos que forma nossa aplicação.
  • 10. Anderson Gonçalves – Introdução ao framework CodeIgniter Estrutura de pastas ● Cache – Páginas em cache ● Config – Arquivos de configuração ● Controllers – Arquivos com as classes do controller ● Core – Arquivos que estendem as funcionalidade do CI ou o “motor” da aplicação ● Helpers – Arquivos com funções de ajuda ● Hooks – Arquivos contendo classes a ser usadas em gatilhos do CI ● Language – Pastas e arquivos para o suporte a multi- linguagem ● Library – Bibliotecas construídas exclusivamente para o projeto ● Models – Classes responsáveis para acesso a dados em DB ou arquivos (persistência de dados) ● Views – Arquivos que geram a interface (retorno) pro usuário
  • 11. Anderson Gonçalves – Introdução ao framework CodeIgniter Sistema de rotas
  • 12. Anderson Gonçalves – Introdução ao framework CodeIgniter Sistema de rotas O CodeIgniter trabalha com um sistema de rotas baseado na segmentação de URL, onde através deste é determinado qual controller usar, qual método acessar e qual parâmetro passar (se houver).
  • 13. Anderson Gonçalves – Introdução ao framework CodeIgniter Sistema de rotas ● Exemplo.com Carragará o controller default, configurado no arquivo routes.php ● Exemplo.com/um_controller Carregará o controller um_controller e executará o método index ● Exemplo.com/um_controller/um_metodo Carregará o controller um_controller e executará o método um_metodo ● Exemplo.com/um_controller/um_metodo/um_param Carregará o controller um_controller, executará o método um_metodo e passará param como parâmetro
  • 14. Anderson Gonçalves – Introdução ao framework CodeIgniter Application/config/routes.php No arquivo routes.php é onde configuramos o controller default, na opção default_controller, e onde podemos criar rotas personalizadas através do vertor armazenado em $route, tendo como índice o caminho personalizado e, em seu valor, o controller com (ou sem) o método ou parâmetro. É possível utilzar expressão regular. Ex: $router['supermercados/:num/pdvs/([a-z0-9_]+)'] = 'pdvs/listar/$1'; Acessando por exemplo: exemplo.com/supermercados/3/pdvs/6 Será carregado o controller Pdvs, executar o método listar e passar como parâmetro o valor 6.
  • 15. Anderson Gonçalves – Introdução ao framework CodeIgniter Controllers Cada classe controller deve estar num arquivo de mesmo nome, incluindo maiúsculas e minúsculas. Uma sugestão é utilizar o padrão Nome_da_classe. E deve, obrigatoriamente, estender a classe CI_Controller. Nos controllers, é através do método view da classe Loader (esta classe é instanciada automaticamente) que é carregada as views, para isto utilizados: $this->load->view('arquivo'); //Sem a extensão $this->load->view('pasta/arquivo'); //Se estiver numa subpasta
  • 16. Anderson Gonçalves – Introdução ao framework CodeIgniter Controllers O método view() ainda pode receber um vetor como o segundo parâmetro, onde que com o índice é criado uma variável de mesmo nome e o seu valor. Ex: $data = array( 'title' => 'Introdução ao CI' ); $this->load->view('exemplo', $data); Assim, carregará a view exemplo.php, que terá disponível a variável $title contendo o valor Introdução ao CI.
  • 17. Anderson Gonçalves – Introdução ao framework CodeIgniter Loader A classe Loader é instanciada na inicialização do CI e é uma das classes mais utilizadas. Através dela, podemos carregar models, helpers e librarys. Qualquer classe carregada, o seu nome, se torna uma propriedade do instância que o carregou. Ex: //Carrega a Classe Usuários da pasta Model $this->load->model('usuarios'); //Agora, existe uma propriedade com o mesmo nome $this->usuarios->metodo_model();
  • 18. Anderson Gonçalves – Introdução ao framework CodeIgniter Model Model são as classes responsáveis pela persistência dos dados, geralmente, trabalhando com banco de dados. O nome da classe deve ser o mesmo do arquivo e deve, obrigatoriamente, estender da classe CI_Model. Sugiro o mesmo padrão que citei antes (Nome_da_classe). Para utilizá-la deve-se primeiro carregá-la. $this->load->model('nome_da_classe');
  • 19. Anderson Gonçalves – Introdução ao framework CodeIgniter Query Builder Para trabalhar com o banco de dados em nosso model, o CI disponibiliza a classe DB_query_builder, instanciada através da library database, e armazenada na propriedade db do objeto instanciado. Esta classe é interessante, pois, realiza algumas rotinas automáticas, como: ● Escapar valores ● Construir a string a ser executada pelo database
  • 20. Anderson Gonçalves – Introdução ao framework CodeIgniter Query Builder - Insert Para inserir dados utilizamos o método insert(), passando como parâmetro um vetor, onde o índice é o nome do campo (coluna) da tabela. Ex: $data = array( 'nome' => $this->input->post('nome'), 'telefone' => $this->input->post('telefone') ); $this->db->insert('contatos', $data); //INSERT INTO `contatos` (nome, telefone) VALUES (`valor_nome`, `valor_telefone`);
  • 21. Anderson Gonçalves – Introdução ao framework CodeIgniter Query Builder - Update Para atualizar dados utilizamos o método update(). Ex: $data = array( 'nome' => $this->input->post('nome'), 'telefone' => $this->input->post('telefone') ); $where = array( 'id' => $this->input->post('id') ); $this->db->update('contatos', $data, $where); //UPDATE `contatos` SET `nome` = `valor_nome`, `telefone` = `valor_telefone` WHERE `id` = `valor_id`
  • 22. Anderson Gonçalves – Introdução ao framework CodeIgniter Query Builder - Select Para selecionar dados utilizamos o método get(). $this->db->get('contatos'); //SELECT * FROM contatos
  • 23. Anderson Gonçalves – Introdução ao framework CodeIgniter Query Builder - Delete Para apagar dados utilizamos o método delete(). $where = array( 'id' => $this->input->get('id') ); $this->db->delete('contatos', $where); //DELET FROM contatos WHERE id = 'valor_id'
  • 24. Anderson Gonçalves – Introdução ao framework CodeIgniter Library O CI possui diversas libraries prontas para serem usadas, já vimos a que auxilia na manipulação de bando de dados. Há, também, a possibilidade de poder criar suas próprias ou estender as já existentes. Uma das mais usadas é o Form Validation. $this->load->library('form_validation');
  • 25. Anderson Gonçalves – Introdução ao framework CodeIgniter Form Validation Esta library permite criar regras de validação para as entradas de formulários. Fazemos isto através de um vetor bidimensional. $rules = array( Array( 'field' => 'campo', 'label' => 'Campo', 'rules' => array('vetor_de_regras'), 'errors' => array( 'regra' => 'Mensagem' ) ) );
  • 26. Anderson Gonçalves – Introdução ao framework CodeIgniter Form Validation Configura a library para usar aquela validação: $this->form_validation->set_rules($rules); E executa o método run(), que rotorna um valor booleano, onde TRUE, o formulário está preenchido corretamente, e FALSE, caso não esteja. $this->form_validation->run();
  • 27. Anderson Gonçalves – Introdução ao framework CodeIgniter Form Validation Caso o método run() tenha retornado falso, podemos pegar os erros gerados através dos métodos erro_array() ou erro_string(). Cada erro retornado estará num parágrafo. Se desejar alterar a tag que envolve o erro, utilize o método set_error_delimiters('tag antes do erro', 'tag depois do erro'); Ex: $this->form_validation->set_error_delimiter('<div>', '</div>');
  • 28. Anderson Gonçalves – Introdução ao framework CodeIgniter Obrigado! :) Dúvidas?