Eric Silva [email_address] www.argohost.net Bem-vindo à Framework Code Igniter Hospedagem  Web  com Facilidade
http://cepug.org Framework? Um conjunto de bibliotecas (classes) que auxiliam no desenvolvimento de um projeto. É uma aplicação semi-pronta que deve ser extendida e personalizada. Bem-vindo à Framework Code Igniter
http://cepug.org O Code Igniter... O Code Igniter foi criado por  Derek Allard  e irá ajudá-lo no melhor, e muito facilmente. Ele irá diminuir a quantidade de código que você escreve atualmente.  Ele irá disciplinar o seu código e torná-lo mais robusto, em alguns casos, sem você sequer saber. Bem-vindo à Framework Code Igniter
http://cepug.org Para quem é o Code Igniter? Você quer um framework leve e que não ocupe espaço. Você precisa de excepcional performance. Você precisa de compatibilidade vasta com empresas de hospedagem que rodam uma variedade de versões e configurações do PHP. Você quer um framework que precise de quase nenhuma configuração. Você quer um framework que não precise que você use a linha de comando. Bem-vindo à Framework Code Igniter
http://cepug.org Mas, ainda sou iniciante... Você só precisa de uma base, não precisa ser nenhum especialista em PHP para se beneficiar dos recursos que o CI pode lhe oferecer. O CI é tão simples que não requer uma linha de aprendizagem longa, o que facilita seu aprendizado. Bem-vindo à Framework Code Igniter
http://cepug.org Me prove essa facilidade! Bom, vamos comparar dois códigos: Um feito em PHP “puro” e outro utilizando os recursos do CI. Bem-vindo à Framework Code Igniter
http://cepug.org PHP puro... $conexao  =  mysql_connect(“host”, “cepug”, “260908”); mysql_select_db(“ cepug”, $conexao); $resultado  =  mysql_query(“SELECT * FROM membros”); while( $linha  = mysql_fetch_array( $resultado )) { echo  $linha [‘nome’]; } Bem-vindo à Framework Code Igniter
http://cepug.org Em CI...  :-) $this  -> load -> database(“cepug”);  $query  =  $this  -> db-> get(“membros”);  foreach( $query  -> result() as  $linha ) { echo  $linha  -> nome; } Bem-vindo à Framework Code Igniter
http://cepug.org Um exemplo em HTML <select name=“sites”> <option value=“1”>www.cepug.org</option> <option value=“2”>www.google.com</option> <option value=“3”>www.yahoo.com</option> </select> $urlArray  = array(‘1’ => ‘www.cepug.org’,   ‘ 2’ => ‘www.google.com’,   ‘ 3’ => ‘www.yahoo.com’); echo form_dropdown(‘sites’,  $urlArray , ‘1’); Bem-vindo à Framework Code Igniter
http://cepug.org Enviando e-mail com anexo $this  -> load -> library(‘email’); $this  -> email -> from(‘eu@gmail.com’, ‘Eric’); $this  -> email -> to(‘voce@gmail.com’); $this  -> email -> subject(‘Code Igniter’); $this  -> email -> message(‘Muito bom!!’); $this  -> email -> attach(‘/caminho/arquivo.jpg’); $this  -> email -> send(); Bem-vindo à Framework Code Igniter
http://cepug.org Sobre O Code Igniter é disponibilizado sob uma licença de código aberto no estilo da Apache/BSD. Sendo assim, você pode utilizá-lo como desejar. Seu objetivo, através de um abrangente conjunto de bibliotecas voltadas as tarefas mais comuns, de uma interface e uma estrutura lógica simples para acesso àquelas bibliotecas, é possibilitar que você desenvolva projetos mais rapidamente do que se estivesse codificando do zero. Bem-vindo à Framework Code Igniter
http://cepug.org O CI roda em PHP 4 O Code Igniter foi escrito para ser compatível com o PHP 4. Na época da criação do CI o PHP 5 não tinha seu uso disseminado, o que significaria que estaríamos alienando grande parte de nossa audiência potencial. O CI irá rodar em PHP 5. Ele apenas não tomará vantagem das várias características nativas disponibilizadas por essa nova versão da linguagem. Bem-vindo à Framework Code Igniter
http://cepug.org O Code Igniter é Peso Pena Ele é muito leve. O núcleo do sistema requer apenas algumas pequeninas bibliotecas. Isto é um grande constraste em comparação a alguns frameworks que requerem significativamente mais recursos. Bibliotecas adicionais são carregadas dinamicamente sob requisição, baseado nas necessidades de um dado processo, por isto o sistema básico é enxuto e bem rápido. Bem-vindo à Framework Code Igniter
http://cepug.org O Code Igniter usa M-V-C O Code Igniter usa a abordagem Model-View-Controller, que permite a ótima separação entre a lógica a apresentação. Isto é particularmente bom para projetos em que designers estão trabalhando com seus arquivos template, já que o código nestes arquivos será mínimo.  Bem-vindo à Framework Code Igniter
http://cepug.org O CI gera URLs limpas As URLs geradas pelo CI são limpas e amigáveis aos motores de busca. No lugar de usar a abordagem padrão &quot;query string&quot; para as URLs que é sinônimo de sistemas dinâmicos, o CI usa uma abordagem  baseada em segmentos : www.site.com/ noticias / artigos /345 Bem-vindo à Framework Code Igniter
http://cepug.org O CI é muito Documentado A documentação oficial ( http://codeigniter.com/user_guide/ )  é muito extensa, além de existir o fórum oficial ( http://codeigniter.com/forums/ )  e um Wiki ( http://codeigniter.com/wiki/ ),  isso fora as listas de discussão e o Google. Bem-vindo à Framework Code Igniter
http://cepug.org Fluxograma da Aplicação O index.php serve como um controlador primário, iniciando os recursos básicos necessários para rodar o Code Igniter. 2. O roteador examina a requisição HTTP para determinar o que deve ser feito com ela. 3. Se já existem o arquivo 'cacheado', ele é enviado diretamente ao browser, pulando as outras etapas de execução. 4. Segurança. Antes da controller de aplicação ser carregado, a requisição HTTP e qualquer dado submetido pelo usuário é filtrado por segurança. Bem-vindo à Framework Code Igniter
http://cepug.org Fluxograma da Aplicação 5. O Controller carrega o model as bibliotecas principais, plugins, assisntes e qualquer outro recurso necessário para processar a requisição específica. 6. A View finalizada é renderizada e então enviada ao browser para ser vista. Se o cache está habilitado, a view é 'cacheada' primeiro para que seja servida em requisições subseqüentes. Bem-vindo à Framework Code Igniter
http://cepug.org Model, View e Controller O  Model  representa suas estruturas de dados. Tipicamente, suas classes model irão conter funções que lhe ajudarão a buscar, inserir e substituir informações em sua bando de dados... A  View  é a informação que será apresentada ao usuário. A View será normalmente uma página web, mas no Code Igniter, uma view pode ser também um fragmento de página como um cabeçalho ou rodapé. Ela pode ser também uma página RSS, ou qualquer outro tipo de &quot;página&quot;. O  Controller  serve como um  intermediário  entre o Model, a View, e qualquer outro recurso necessário para processar a requisição HTTP e gerar a página web. Bem-vindo à Framework Code Igniter
http://cepug.org Instalando... Além de ser fácil de utilizar, o CI é fácil de instalar também :P Basta efetuar o download ( http://codeigniter.com/download.php ), descompactar os arquivos, alterar pouquíssimas linhas de configuração e ser feliz... De preferência, descompacte o CI fora do diretório visível na web (public_html) Bem-vindo à Framework Code Igniter
http://cepug.org Configurando... Basicamente são três configurações: - A localização do diretório system arquivo index.php Acesso ao banco de dados arquivo config/database.php URL base da aplicação arquivo config/config.php E em poucos minutos já temos o CI funcionando... Bem-vindo à Framework Code Igniter
http://cepug.org Autoload O CI vem com um recurso de &quot;Auto-load&quot; que permite que bibliotecas, assistentes e plugins sejam inicializados automaticamente toda vez que o sistema rodar. Se você precisa de certos recursos globais em sua aplicação, deve considerar carregá-los automaticamente para sua conveniência. Podemos carregar por padrão a biblioteca de acesso ao banco de dados e o assistente de URL, que auxilia no trabalho co url’s. No arquivo  system/pplication/config/autoload.php  podemos adicionar o(s) item(ns) que desejamos carregar.  Bem-vindo à Framework Code Igniter
http://cepug.org Controller (Olá Mundo!) System/application/controllers/OlaMundo.php <? class OlaMundo extends Controller { function __construct() { parent:: __construct(); } public function index() { echo ‘Olá Mundo!’; } } ?> Bem-vindo à Framework Code Igniter
http://cepug.org View System/application/views/Minha_View.php Olá, eu sou uma view! System/application/controllers/OlaMundo.php public function info() { $this -> load -> view(‘Minha_View’); } Public  Bem-vindo à Framework Code Igniter
http://cepug.org Adicionando dados na View System/application/views/Minha_View.php Olá <?=$nome?>, seja bem-vindo! System/application/controllers/OlaMundo.php public function info() { $info = array(); $info[‘nome’] = ‘Eric’; $this -> load -> view(‘Minha_View’, $info); } Bem-vindo à Framework Code Igniter
http://cepug.org Model System/application/models/Ola_Model.php class Ola_Model extends Model {      function __construct() { parent::__construct();   } public function inserir($dados = array()) { /*Cada índice do array será o nome de um    campo da tabela, e o seu valor será o    conteúdo a ser inserido*/   $this -> db -> insert(‘membros’, $dados); } } Bem-vindo à Framework Code Igniter
http://cepug.org Assistentes(Helpers) Assistentes, como o nome sugere, lhe ajudam em suas tarefas. Cada arquivo assistente é simplesmente uma conjunto de funções de uma categoria particular. Há os  Assistentes de URL , que lhe ajudam a criar links, os  Assisntes de Formulário  que lhe ajudam a criar os elementos de seu form, os  Assistentes de Texto  que geram várias rotinas de formatação de texto, os  Assistentes de Cookie  que criam e lêem cookies, os  Assistentes de Arquivo  que lhe ajudam a trabalhar com arquivos etc. Bem-vindo à Framework Code Igniter
http://cepug.org Blog Vamos exercitar o que aprendemos sobre o CI criando um pequeno e singelo “Blog”. O blog somente listará os post’s permitindo a inserção de comentários em um determinado post. Bem-vindo à Framework Code Igniter
http://cepug.org Referênicas  http://www.codeigniter.com http://www.codeigniter.com/user_guide http://www.google.com - Livro Code Igniter for Rapid PHP Application Development (David Upton, julho 2007) Bem-vindo à Framework Code Igniter

CEPUG 2 - Bem-vindo a Framework CodeIgniter

  • 1.
    Eric Silva [email_address]www.argohost.net Bem-vindo à Framework Code Igniter Hospedagem Web com Facilidade
  • 2.
    http://cepug.org Framework? Umconjunto de bibliotecas (classes) que auxiliam no desenvolvimento de um projeto. É uma aplicação semi-pronta que deve ser extendida e personalizada. Bem-vindo à Framework Code Igniter
  • 3.
    http://cepug.org O CodeIgniter... O Code Igniter foi criado por Derek Allard e irá ajudá-lo no melhor, e muito facilmente. Ele irá diminuir a quantidade de código que você escreve atualmente. Ele irá disciplinar o seu código e torná-lo mais robusto, em alguns casos, sem você sequer saber. Bem-vindo à Framework Code Igniter
  • 4.
    http://cepug.org Para quemé o Code Igniter? Você quer um framework leve e que não ocupe espaço. Você precisa de excepcional performance. Você precisa de compatibilidade vasta com empresas de hospedagem que rodam uma variedade de versões e configurações do PHP. Você quer um framework que precise de quase nenhuma configuração. Você quer um framework que não precise que você use a linha de comando. Bem-vindo à Framework Code Igniter
  • 5.
    http://cepug.org Mas, aindasou iniciante... Você só precisa de uma base, não precisa ser nenhum especialista em PHP para se beneficiar dos recursos que o CI pode lhe oferecer. O CI é tão simples que não requer uma linha de aprendizagem longa, o que facilita seu aprendizado. Bem-vindo à Framework Code Igniter
  • 6.
    http://cepug.org Me proveessa facilidade! Bom, vamos comparar dois códigos: Um feito em PHP “puro” e outro utilizando os recursos do CI. Bem-vindo à Framework Code Igniter
  • 7.
    http://cepug.org PHP puro...$conexao = mysql_connect(“host”, “cepug”, “260908”); mysql_select_db(“ cepug”, $conexao); $resultado = mysql_query(“SELECT * FROM membros”); while( $linha = mysql_fetch_array( $resultado )) { echo $linha [‘nome’]; } Bem-vindo à Framework Code Igniter
  • 8.
    http://cepug.org Em CI... :-) $this -> load -> database(“cepug”); $query = $this -> db-> get(“membros”); foreach( $query -> result() as $linha ) { echo $linha -> nome; } Bem-vindo à Framework Code Igniter
  • 9.
    http://cepug.org Um exemploem HTML <select name=“sites”> <option value=“1”>www.cepug.org</option> <option value=“2”>www.google.com</option> <option value=“3”>www.yahoo.com</option> </select> $urlArray = array(‘1’ => ‘www.cepug.org’, ‘ 2’ => ‘www.google.com’, ‘ 3’ => ‘www.yahoo.com’); echo form_dropdown(‘sites’, $urlArray , ‘1’); Bem-vindo à Framework Code Igniter
  • 10.
    http://cepug.org Enviando e-mailcom anexo $this -> load -> library(‘email’); $this -> email -> from(‘eu@gmail.com’, ‘Eric’); $this -> email -> to(‘voce@gmail.com’); $this -> email -> subject(‘Code Igniter’); $this -> email -> message(‘Muito bom!!’); $this -> email -> attach(‘/caminho/arquivo.jpg’); $this -> email -> send(); Bem-vindo à Framework Code Igniter
  • 11.
    http://cepug.org Sobre OCode Igniter é disponibilizado sob uma licença de código aberto no estilo da Apache/BSD. Sendo assim, você pode utilizá-lo como desejar. Seu objetivo, através de um abrangente conjunto de bibliotecas voltadas as tarefas mais comuns, de uma interface e uma estrutura lógica simples para acesso àquelas bibliotecas, é possibilitar que você desenvolva projetos mais rapidamente do que se estivesse codificando do zero. Bem-vindo à Framework Code Igniter
  • 12.
    http://cepug.org O CIroda em PHP 4 O Code Igniter foi escrito para ser compatível com o PHP 4. Na época da criação do CI o PHP 5 não tinha seu uso disseminado, o que significaria que estaríamos alienando grande parte de nossa audiência potencial. O CI irá rodar em PHP 5. Ele apenas não tomará vantagem das várias características nativas disponibilizadas por essa nova versão da linguagem. Bem-vindo à Framework Code Igniter
  • 13.
    http://cepug.org O CodeIgniter é Peso Pena Ele é muito leve. O núcleo do sistema requer apenas algumas pequeninas bibliotecas. Isto é um grande constraste em comparação a alguns frameworks que requerem significativamente mais recursos. Bibliotecas adicionais são carregadas dinamicamente sob requisição, baseado nas necessidades de um dado processo, por isto o sistema básico é enxuto e bem rápido. Bem-vindo à Framework Code Igniter
  • 14.
    http://cepug.org O CodeIgniter usa M-V-C O Code Igniter usa a abordagem Model-View-Controller, que permite a ótima separação entre a lógica a apresentação. Isto é particularmente bom para projetos em que designers estão trabalhando com seus arquivos template, já que o código nestes arquivos será mínimo. Bem-vindo à Framework Code Igniter
  • 15.
    http://cepug.org O CIgera URLs limpas As URLs geradas pelo CI são limpas e amigáveis aos motores de busca. No lugar de usar a abordagem padrão &quot;query string&quot; para as URLs que é sinônimo de sistemas dinâmicos, o CI usa uma abordagem baseada em segmentos : www.site.com/ noticias / artigos /345 Bem-vindo à Framework Code Igniter
  • 16.
    http://cepug.org O CIé muito Documentado A documentação oficial ( http://codeigniter.com/user_guide/ ) é muito extensa, além de existir o fórum oficial ( http://codeigniter.com/forums/ ) e um Wiki ( http://codeigniter.com/wiki/ ), isso fora as listas de discussão e o Google. Bem-vindo à Framework Code Igniter
  • 17.
    http://cepug.org Fluxograma daAplicação O index.php serve como um controlador primário, iniciando os recursos básicos necessários para rodar o Code Igniter. 2. O roteador examina a requisição HTTP para determinar o que deve ser feito com ela. 3. Se já existem o arquivo 'cacheado', ele é enviado diretamente ao browser, pulando as outras etapas de execução. 4. Segurança. Antes da controller de aplicação ser carregado, a requisição HTTP e qualquer dado submetido pelo usuário é filtrado por segurança. Bem-vindo à Framework Code Igniter
  • 18.
    http://cepug.org Fluxograma daAplicação 5. O Controller carrega o model as bibliotecas principais, plugins, assisntes e qualquer outro recurso necessário para processar a requisição específica. 6. A View finalizada é renderizada e então enviada ao browser para ser vista. Se o cache está habilitado, a view é 'cacheada' primeiro para que seja servida em requisições subseqüentes. Bem-vindo à Framework Code Igniter
  • 19.
    http://cepug.org Model, Viewe Controller O Model representa suas estruturas de dados. Tipicamente, suas classes model irão conter funções que lhe ajudarão a buscar, inserir e substituir informações em sua bando de dados... A View é a informação que será apresentada ao usuário. A View será normalmente uma página web, mas no Code Igniter, uma view pode ser também um fragmento de página como um cabeçalho ou rodapé. Ela pode ser também uma página RSS, ou qualquer outro tipo de &quot;página&quot;. O Controller serve como um intermediário entre o Model, a View, e qualquer outro recurso necessário para processar a requisição HTTP e gerar a página web. Bem-vindo à Framework Code Igniter
  • 20.
    http://cepug.org Instalando... Alémde ser fácil de utilizar, o CI é fácil de instalar também :P Basta efetuar o download ( http://codeigniter.com/download.php ), descompactar os arquivos, alterar pouquíssimas linhas de configuração e ser feliz... De preferência, descompacte o CI fora do diretório visível na web (public_html) Bem-vindo à Framework Code Igniter
  • 21.
    http://cepug.org Configurando... Basicamentesão três configurações: - A localização do diretório system arquivo index.php Acesso ao banco de dados arquivo config/database.php URL base da aplicação arquivo config/config.php E em poucos minutos já temos o CI funcionando... Bem-vindo à Framework Code Igniter
  • 22.
    http://cepug.org Autoload OCI vem com um recurso de &quot;Auto-load&quot; que permite que bibliotecas, assistentes e plugins sejam inicializados automaticamente toda vez que o sistema rodar. Se você precisa de certos recursos globais em sua aplicação, deve considerar carregá-los automaticamente para sua conveniência. Podemos carregar por padrão a biblioteca de acesso ao banco de dados e o assistente de URL, que auxilia no trabalho co url’s. No arquivo system/pplication/config/autoload.php podemos adicionar o(s) item(ns) que desejamos carregar. Bem-vindo à Framework Code Igniter
  • 23.
    http://cepug.org Controller (OláMundo!) System/application/controllers/OlaMundo.php <? class OlaMundo extends Controller { function __construct() { parent:: __construct(); } public function index() { echo ‘Olá Mundo!’; } } ?> Bem-vindo à Framework Code Igniter
  • 24.
    http://cepug.org View System/application/views/Minha_View.phpOlá, eu sou uma view! System/application/controllers/OlaMundo.php public function info() { $this -> load -> view(‘Minha_View’); } Public Bem-vindo à Framework Code Igniter
  • 25.
    http://cepug.org Adicionando dadosna View System/application/views/Minha_View.php Olá <?=$nome?>, seja bem-vindo! System/application/controllers/OlaMundo.php public function info() { $info = array(); $info[‘nome’] = ‘Eric’; $this -> load -> view(‘Minha_View’, $info); } Bem-vindo à Framework Code Igniter
  • 26.
    http://cepug.org Model System/application/models/Ola_Model.phpclass Ola_Model extends Model {      function __construct() { parent::__construct(); } public function inserir($dados = array()) { /*Cada índice do array será o nome de um campo da tabela, e o seu valor será o conteúdo a ser inserido*/ $this -> db -> insert(‘membros’, $dados); } } Bem-vindo à Framework Code Igniter
  • 27.
    http://cepug.org Assistentes(Helpers) Assistentes,como o nome sugere, lhe ajudam em suas tarefas. Cada arquivo assistente é simplesmente uma conjunto de funções de uma categoria particular. Há os Assistentes de URL , que lhe ajudam a criar links, os Assisntes de Formulário que lhe ajudam a criar os elementos de seu form, os Assistentes de Texto que geram várias rotinas de formatação de texto, os Assistentes de Cookie que criam e lêem cookies, os Assistentes de Arquivo que lhe ajudam a trabalhar com arquivos etc. Bem-vindo à Framework Code Igniter
  • 28.
    http://cepug.org Blog Vamosexercitar o que aprendemos sobre o CI criando um pequeno e singelo “Blog”. O blog somente listará os post’s permitindo a inserção de comentários em um determinado post. Bem-vindo à Framework Code Igniter
  • 29.
    http://cepug.org Referênicas http://www.codeigniter.com http://www.codeigniter.com/user_guide http://www.google.com - Livro Code Igniter for Rapid PHP Application Development (David Upton, julho 2007) Bem-vindo à Framework Code Igniter