curso de introdução - php zend framework

23
Introdução Evandro Klimpel Balmant @EvandroBalmant

Upload: evandro-klimpel-balmant

Post on 29-Jun-2015

9.654 views

Category:

Technology


2 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Curso de Introdução - PHP Zend Framework

Introdução

Evandro Klimpel Balmant

@EvandroBalmant

Page 2: Curso de Introdução - PHP Zend Framework

Framework ?

“Framework é um conjunto de classesque colaboram para realizar uma responsabilidadepara 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

Page 3: Curso de Introdução - PHP Zend Framework

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

Page 4: Curso de Introdução - PHP Zend Framework

Zend Framework ?

JirayaFramework

Page 5: Curso de Introdução - PHP Zend Framework

Zend ?

Page 6: Curso de Introdução - PHP Zend Framework

Arquitetura MVC

Page 7: Curso de Introdução - PHP Zend Framework

Componentes Zend

Page 8: Curso de Introdução - PHP Zend Framework

Configuração Básica

Nome do ProjetoDiretório da AplicaçãoArquivos de ConfiguraçãoControladorasControladora PrincipalModelsViewsTemplatesTemplates da Controladora IndexTemplate do Método indexAction()Definição de permissão de acessoArquivos de DocumentaçãoBibliotecasClasses do Zend FrameworkDefinição de permissão de acessoArquivos PúblicosFolhas de estiloImagensJavaScripsDefinição de permissão de acessoDefinição de permissão de acessoBootstrap

Page 9: Curso de Introdução - PHP Zend Framework

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.

Page 10: Curso de Introdução - PHP Zend Framework

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);

Page 11: Curso de Introdução - PHP Zend Framework

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);

Page 12: Curso de Introdução - PHP Zend Framework

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();?>

Page 13: Curso de Introdução - PHP Zend Framework

IndexController

<?phpclass IndexController extends Zend_Controller_Action{

public function indexAction(){

$this->view->assign('data', date('d/m/Y'));}

}?>

Page 14: Curso de Introdução - PHP Zend Framework

index.phtml

<html><head>

<title>Hello World</title></head><body>

<p>Olá, hoje é dia <?=$this->data?>.</p></body>

</html>

Page 15: Curso de Introdução - PHP Zend Framework

.htaccess (URL’s Amigáveis / Permissões)

RewriteEngine onRewriteRule .* index.phpphp_flag magic_quotes_gpc offphp_flag register_globals off

Arquivo: .htaccess

deny from all

Arquivo: application/.htaccess

RewriteEngine off

Arquivo: library/.htaccessArquivo: public/.htaccess

Page 16: Curso de Introdução - PHP Zend Framework

URL’s

http://localhost/ Classe: IndexControllerMétodo: indexAction()

http://localhost/produtos Classe: ProdutosControllerMétodo: indexAction()

http://localhost/produtos/cadastro Classe: ProdutosControllerMétodo: cadastroAction()

http://localhost/loja-virtual Classe: LojaVirtualControllerMétodo: indexAction()

Page 17: Curso de Introdução - PHP Zend Framework

config.ini

[database]db.adapter = PDO_MYSQLdb.config.host = localhostdb.config.username = rootdb.config.password = rootdb.config.dbname = nome_banco

Arquivo: application/configs/config.ini

Page 18: Curso de Introdução - PHP Zend Framework

DAO (Zend_Db_Table)

<?phpclass Produto extends Zend_Db_Table{

protected $_name = “tb_produto”;}

?>

Arquivo: application/models/Produto.php

Page 19: Curso de Introdução - PHP Zend Framework

Insert

<?php$dao = new Produto();

$dados = array(‘titulo’ => ‘Blablablabla’,‘descricao’ => ‘Nononononono’

);$dao->insert($dados);

?>

Page 20: Curso de Introdução - PHP Zend Framework

Select

<?php$dao = new Produto();

$sql = $dao->select()->from($dao, array(‘titulo’,’descricao’))->order(‘titulo’);

$dados = $dao->fetchAll($sql)->toArray();?>

Page 21: Curso de Introdução - PHP Zend Framework

Update

<?php$dao = new Produto();

$dados = array(‘titulo’ => ‘Blablablabla’,‘descricao’ => ‘Nononononono’

); $where = $dao->getAdapter()->quoteInto(‘id = ?’, 10);

$dao->update($dados, $where);?>

Page 22: Curso de Introdução - PHP Zend Framework

Delete

<?php$dao = new Produto(); $sql = $dao->getAdapter()->quoteInto(‘id = ?’,

10);$dao->delete($sql);

?>

Page 23: Curso de Introdução - PHP Zend Framework

Dúvidas ?

Evandro Klimpel Balmant

@EvandroBalmant

http://www.blogalizado.com.br