SlideShare une entreprise Scribd logo
1  sur  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?

Contenu connexe

Tendances

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
Allyson Barros
 
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
Sliedesharessbarbosa
 
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
Eduardo Bregaida
 

Tendances (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
 

Similaire à Introdução ao framework CodeIgniter

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
Erisvaldo Junior
 
ASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre TarifaASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre Tarifa
guestea329c
 
Palestra MVC - Online tech day 2010
Palestra MVC - Online tech day 2010Palestra MVC - Online tech day 2010
Palestra MVC - Online tech day 2010
Alexandre Tarifa
 
Documentação CakePHP - Português Br
Documentação CakePHP -  Português BrDocumentação CakePHP -  Português Br
Documentação CakePHP - Português Br
Luiz Ladeira
 

Similaire à 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.
 

Dernier

ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
azulassessoria9
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
azulassessoria9
 
No processo de aprendizagem motora, a forma como o indivíduo processa as info...
No processo de aprendizagem motora, a forma como o indivíduo processa as info...No processo de aprendizagem motora, a forma como o indivíduo processa as info...
No processo de aprendizagem motora, a forma como o indivíduo processa as info...
azulassessoria9
 

Dernier (20)

Educação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxEducação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptx
 
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
 
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
 
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 
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.
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
 
Modelos de Inteligencia Emocional segundo diversos autores
Modelos de Inteligencia Emocional segundo diversos autoresModelos de Inteligencia Emocional segundo diversos autores
Modelos de Inteligencia Emocional segundo diversos autores
 
Caderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdfCaderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdf
 
aprendizagem significatica, teórico David Ausubel
aprendizagem significatica, teórico David Ausubelaprendizagem significatica, teórico David Ausubel
aprendizagem significatica, teórico David Ausubel
 
CATEQUESE primeiro ano . CATEQUESE 1ºano
CATEQUESE primeiro ano . CATEQUESE 1ºanoCATEQUESE primeiro ano . CATEQUESE 1ºano
CATEQUESE primeiro ano . CATEQUESE 1ºano
 
apostila filosofia 1 ano 1s (1).pdf 1 ANO DO ENSINO MEDIO . CONCEITOSE CARAC...
apostila filosofia 1 ano  1s (1).pdf 1 ANO DO ENSINO MEDIO . CONCEITOSE CARAC...apostila filosofia 1 ano  1s (1).pdf 1 ANO DO ENSINO MEDIO . CONCEITOSE CARAC...
apostila filosofia 1 ano 1s (1).pdf 1 ANO DO ENSINO MEDIO . CONCEITOSE CARAC...
 
No processo de aprendizagem motora, a forma como o indivíduo processa as info...
No processo de aprendizagem motora, a forma como o indivíduo processa as info...No processo de aprendizagem motora, a forma como o indivíduo processa as info...
No processo de aprendizagem motora, a forma como o indivíduo processa as info...
 
Aula 1 - Psicologia Cognitiva, aula .ppt
Aula 1 - Psicologia Cognitiva, aula .pptAula 1 - Psicologia Cognitiva, aula .ppt
Aula 1 - Psicologia Cognitiva, aula .ppt
 
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.docGUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
 
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
 
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
 
Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)
 
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
 
Sistema de Bibliotecas UCS - Cantos do fim do século
Sistema de Bibliotecas UCS  - Cantos do fim do séculoSistema de Bibliotecas UCS  - Cantos do fim do século
Sistema de Bibliotecas UCS - Cantos do fim do século
 
Slides Lição 06, Central Gospel, O Anticristo, 1Tr24.pptx
Slides Lição 06, Central Gospel, O Anticristo, 1Tr24.pptxSlides Lição 06, Central Gospel, O Anticristo, 1Tr24.pptx
Slides Lição 06, Central Gospel, O Anticristo, 1Tr24.pptx
 

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?