Introdução
Evandro Klimpel Balmant
@EvandroBalmant
Framework ?
“Framework é um conjunto de classes
que colaboram para realizar uma responsabilidade
para um domínio de um sub...
DRY
Don‘t repeat yourself
“Não se repita”
“É um princípio de desenvolvimento de software com
vista a reduzir a repetição d...
Zend Framework ?
Jiraya
Framework
Zend ?
Arquitetura MVC
Componentes Zend
Configuração Básica
Nome do Projeto
Diretório da Aplicação
Arquivos de Configuração
Controladoras
Controladora Principal
M...
Bootstrap (index.php)
• Arquivo principal da aplicação;
• Define todos os caminhos onde os arquivos estão
armazenados, e t...
index.php (Bootstrap)
<?php
/** Identifica o sistema operacional do servidor, considerando que podem ser
Windows ou Linux ...
index.php (Bootstrap)
/** Parte das Visões */
/** Cria um novo objeto do tipo view */
$view = new Zend_View();
$view->setE...
index.php (Bootstrap)
/** Carrega configurações da base de dados.
* do arquivo config.ini na sessão database */
$config = ...
IndexController
<?php
class IndexController extends Zend_Controller_Action
{
public function indexAction()
{
$this->view->...
index.phtml
<html>
<head>
<title>Hello World</title>
</head>
<body>
<p>Olá, hoje é dia <?=$this->data?>.</p>
</body>
</htm...
.htaccess (URL’s Amigáveis / Permissões)
RewriteEngine on
RewriteRule .* index.php
php_flag magic_quotes_gpc off
php_flag ...
URL’s
http://localhost/ Classe: IndexController
Método: indexAction()
http://localhost/produtos Classe: ProdutosController...
config.ini
[database]
db.adapter = PDO_MYSQL
db.config.host = localhost
db.config.username = root
db.config.password = roo...
DAO (Zend_Db_Table)
<?php
class Produto extends Zend_Db_Table
{
protected $_name = “tb_produto”;
}
?>
Arquivo: application...
Insert
<?php
$dao = new Produto();
$dados = array(
‘titulo’ => ‘Blablablabla’,
‘descricao’ => ‘Nononononono’
);
$dao->inse...
Select
<?php
$dao = new Produto();
$sql = $dao->select()
->from($dao, array(‘titulo’,’descricao’))
->order(‘titulo’);
$dad...
Update
<?php
$dao = new Produto();
$dados = array(
‘titulo’ => ‘Blablablabla’,
‘descricao’ => ‘Nononononono’
);
$where = $...
Delete
<?php
$dao = new Produto();
$sql = $dao->getAdapter()->quoteInto(‘id = ?’,
10);
$dao->delete($sql);
?>
Dúvidas ?
Evandro Klimpel Balmant
@EvandroBalmant
http://www.blogalizado.com.br
Próximos SlideShares
Carregando em…5
×

Curso de Introdução - PHP Zend Framework

10.584 visualizações

Publicada em

Apresentação do curso de Introdução PHP Zend Framework

Publicada em: Tecnologia
0 comentários
7 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
10.584
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2.397
Ações
Compartilhamentos
0
Downloads
217
Comentários
0
Gostaram
7
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Curso de Introdução - PHP Zend Framework

  1. 1. Introdução Evandro Klimpel Balmant @EvandroBalmant
  2. 2. Framework ? “Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação.” FAYAD e SCHMIDT “Em desenvolvimento de software, um framework ou arcabouço é uma abstração que une códigos comuns entre vários projetos de software provendo uma funcionalidade genérica.” Wikipédia
  3. 3. DRY Don‘t repeat yourself “Não se repita” “É um princípio de desenvolvimento de software com vista a reduzir a repetição de informações de todos os tipos.” Wikipédia
  4. 4. Zend Framework ? Jiraya Framework
  5. 5. Zend ?
  6. 6. Arquitetura MVC
  7. 7. Componentes Zend
  8. 8. Configuração Básica Nome do Projeto Diretório da Aplicação Arquivos de Configuração Controladoras Controladora Principal Models Views Templates Templates da Controladora Index Template do Método indexAction() Definição de permissão de acesso Arquivos de Documentação Bibliotecas Classes do Zend Framework Definição de permissão de acesso Arquivos Públicos Folhas de estilo Imagens JavaScrips Definição de permissão de acesso Definição de permissão de acesso Bootstrap
  9. 9. Bootstrap (index.php) • Arquivo principal da aplicação; • Define todos os caminhos onde os arquivos estão armazenados, e todos os componentes que a aplicação utilizar; • Responsável por inicializar a aplicação, ele invoca os arquivos de controlador que são responsáveis pelo funcionamento da aplicação.
  10. 10. index.php (Bootstrap) <?php /** Identifica o sistema operacional do servidor, considerando que podem ser Windows ou Linux */ $operationalSystem = stripos($_SERVER['SERVER_SOFTWARE'],'win32') !== FALSE ? 'WINDOWS' : 'LINUX'; $pathSeparator = $operationalSystem == 'WINDOWS' ? ';' : ':'; /** Configura o caminho a ser procurado em todos os includes */ $path = $pathSeparator . 'library'; $path .= $pathSeparator . 'application' . DIRECTORY_SEPARATOR . 'models'; $path .= $pathSeparator . 'application' . DIRECTORY_SEPARATOR . 'controllers'; set_include_path(get_include_path() . $path); /** Zend_Loader_Autoloader carrega arquivos, classes e recursos*/ require_once('Zend/Loader/Autoloader.php'); /** Inicializa o autoloader */ $autoloader = Zend_Loader_Autoloader::getInstance(); /** Configurar para que outras classes sem namespace sejam incluidas */ $autoloader->setFallbackAutoloader(true);
  11. 11. index.php (Bootstrap) /** Parte das Visões */ /** Cria um novo objeto do tipo view */ $view = new Zend_View(); $view->setEncoding('UTF-8'); $view->setEscape('htmlentities'); /** Definindo diretório onde estarão as views */ $view->setBasePath('./application/views/'); /** Registra na memória o objeto $view */ Zend_Registry::set('view', $view); /** Configura o controlador do projeto, que por acaso, é o index.php */ $baseUrl = substr($_SERVER['PHP_SELF'], 0, strpos($_SERVER['PHP_SELF'], '/index.php')); /** Cria uma nova instância da classe controladora */ $frontController = Zend_Controller_Front::getInstance(); /** Configura o endereço do controlador do projeto */ $frontController->setBaseUrl($baseUrl); /** Indica o diretório onde estão os outros controladores da aplicação */ $frontController->setControllerDirectory('./application/controllers'); /** O controlador deve tratar as excessões */ $frontController->throwExceptions(true);
  12. 12. index.php (Bootstrap) /** Carrega configurações da base de dados. * do arquivo config.ini na sessão database */ $config = new Zend_Config_Ini('./application/configs/config.ini', 'database'); /** Registra na memória a variável config */ Zend_Registry::set('config', $config); /** Configura a conexão com a base de dados, pegando as variáveis do arquivo de configuração */ $db = Zend_Db::factory($config->db->adapter, $config->db->config->toArray()); Zend_Db_Table_Abstract::setDefaultAdapter($db); /** Registra a variável db */ Zend_Registry::set('db',$db); /** Configura o formato para data */ date_default_timezone_set("America/Sao_Paulo"); /** Executa o controlador do projeto * Ele Irá receber todas as requisições */ $frontController->dispatch(); ?>
  13. 13. IndexController <?php class IndexController extends Zend_Controller_Action { public function indexAction() { $this->view->assign('data', date('d/m/Y')); } } ?>
  14. 14. index.phtml <html> <head> <title>Hello World</title> </head> <body> <p>Olá, hoje é dia <?=$this->data?>.</p> </body> </html>
  15. 15. .htaccess (URL’s Amigáveis / Permissões) RewriteEngine on RewriteRule .* index.php php_flag magic_quotes_gpc off php_flag register_globals off Arquivo: .htaccess deny from all Arquivo: application/.htaccess RewriteEngine off Arquivo: library/.htaccess Arquivo: public/.htaccess
  16. 16. URL’s http://localhost/ Classe: IndexController Método: indexAction() http://localhost/produtos Classe: ProdutosController Método: indexAction() http://localhost/produtos/cadastro Classe: ProdutosController Método: cadastroAction() http://localhost/loja-virtual Classe: LojaVirtualController Método: indexAction()
  17. 17. config.ini [database] db.adapter = PDO_MYSQL db.config.host = localhost db.config.username = root db.config.password = root db.config.dbname = nome_banco Arquivo: application/configs/config.ini
  18. 18. DAO (Zend_Db_Table) <?php class Produto extends Zend_Db_Table { protected $_name = “tb_produto”; } ?> Arquivo: application/models/Produto.php
  19. 19. Insert <?php $dao = new Produto(); $dados = array( ‘titulo’ => ‘Blablablabla’, ‘descricao’ => ‘Nononononono’ ); $dao->insert($dados); ?>
  20. 20. Select <?php $dao = new Produto(); $sql = $dao->select() ->from($dao, array(‘titulo’,’descricao’)) ->order(‘titulo’); $dados = $dao->fetchAll($sql)->toArray(); ?>
  21. 21. Update <?php $dao = new Produto(); $dados = array( ‘titulo’ => ‘Blablablabla’, ‘descricao’ => ‘Nononononono’ ); $where = $dao->getAdapter()->quoteInto(‘id = ?’, 10); $dao->update($dados, $where); ?>
  22. 22. Delete <?php $dao = new Produto(); $sql = $dao->getAdapter()->quoteInto(‘id = ?’, 10); $dao->delete($sql); ?>
  23. 23. Dúvidas ? Evandro Klimpel Balmant @EvandroBalmant http://www.blogalizado.com.br

×