php framewarks - sem cakephp
DESCRIPTION
Complete PHP FrameWARks presentation without the CakePHP part.TRANSCRIPT
PHP FrameWARks
Leo Thomas, Marcelo, Márcio e Sandro
O que é um framework?
Conjunto de Classes
Funcionalidade(s)específica(s)
Dita o fluxo de controle
Zend FrameworkO FRAMEWORK!!!
Framework COMPLETO
Desenvolvimentode aplicações
PHP 5
Baixar o pacoteEstrutura dediretórios (zf.sh)
Configurar o bootstrapConfigurar o application.iniConfigurar o .conf (opcional)
ck
CAKE - Framework para desenvolvimento
RÁPIDO em PHPÚltima versão estável: 1.2.3.8166 PHP 4.x e 5.x
Vocês ainda não viram...O Framework
O Framework mais rápido (muito rápido mesmo)
Instalação e Configuração-versão atual: 1.7.2 roda no PHP 5.3
-baixe e descompacte o arquivo-informe parâmetros de conexão com o banco
application/config/database.php-informe a raiz do site
application/config/config.php
sf
Framework de verdade é esse daqui!
Instalação e Configuração...
- Sandbox- Pear- Donwload do pacote
Configuração baseada em arquivos yaml...
Arquitetura...
eXtreme Programming
MENSAGEM SUBLIMINAR
ZEND FRAMEWORKÉ O MELHOR!!!
Como o symfony ajuda o desenvolvimento ágil?
Potente gerador de código...
Potente gerador de código...
ci
Arquitetura: simples...e completa
Acoplamento,extensão
Curva de aprendizado...
Curva de aprendizado...-tem tudo no user guide-video tutoriais-fórum
zf
LIBERDADE!!!
ORMDAO
Active Record
class Usuarios extends Zend_Db_Table
{
protected $_name = "usuarios";
}
ci
MENSAGEM SUBLIMINAR
USE O ZEND FRAMEWORK!!
Acesso a dados e ORM:*Active Record à disposição
Leitura fácil:$this->db->get("tabela");// SELECT * FROM tabela
class User extends Model {
function User() { parent::Model();// Chama o construtor do Model } function get10() { $query = $this->db->get('user', 10); return $query->result(); }
sf
Acesso a Dados e ORM...
symfony propel:build-schemasymfony propel:build-model
symfony doctrine:build-schemasymfony doctrine:build-model
Formulários e Validações...
- sfForm- sfFormPropel- sfFormDoctrine- sfValidator
sfValidatorDate sfValidatorDateRange sfValidatorEmail sfValidatorNumber sfValidatorInteger sfValidatorString sfCallbackValidator
symfony propel:build-forms
symfony doctrine:build-forms
zf
Zend_FormZend_Form_Element_*
Validações
XSS e SQL Injection
Zend_Validation
ci
MENSAGEM SUBLIMINAR
CAKE FAZ MAL SAÚDE!!!
Formulários e validações
Formulários: helpers para tags html
echo form_input('user','');echo form_password('pass','')echo form_textarea('texto','')echo form_checkbox('confirma', '1', TRUE);
Validações:$rules['user'] = "required";$rules['pass'] = "required";$rules['idade'] = "min_value";$rules['email'] = "valid_email";
Helpers, libs, plugins$this->load->helper(array('form', 'url'));$this->load->library('form_validation');$this->form_validation->set_rules('user', 'Username', 'required');$this->form_validation->set_rules('pass', 'Password', 'required');
Cache de páginas:$this >output >cache(60);//Controller
Utiliza o sistema de arquivos: system/cache
zf
Zend_Cache BackendArquivo
Banco de DadosXcacheAPC
Memcache...
Zend_Cache FrontendSaída de Dados (Output)
FunçõesObjetosPáginas...
sf
MENSAGEM SUBLIMINAR
SYMFONY CAUSAIMPOTÊNCIA
Cache...
- sfAPCCache,- sfEAcceleratorCache- sfMemcacheCache- sfSQLiteCache- sfXCacheCache
Segurança...
Autenticação...
Classe: sfUserMétodos:
setAuthenticated() isAuthenticated()
Autorização...
Classe: sfUserMétodos:
addCredential()hasCredential()
zf
Segurança mirrada...
Zend_AclPapéis (Roles)
Recursos (Resources)
Zend_AuthBanco de Dados
HTTPLDAPDigestOpenID
ci
MENSAGEM SUBLIMINAR
CODE IGNITER BAIXA O QI
Segurança: a classe input$dados = $this->input->xss_clean($dados);
Segurança: array $_GET sob controlehttp://localhost/index.php/cadastro/user/1
$user_id = $this >uri >segment(3, 0);
Classe DB: valores limpos$this->db->where('nome', $nome);// Produces: WHERE nome = 'Leo'
Localização e Internacionalização
system/application/language/pt-BR/form_lang.php$this->lang->load('form-lang', 'pr-BR');
$this->lang->line('required');
sf
Localização...
Internacionalização...
User Culture: combinação do idioma e país do usuárioEx: pt_BR, en_US
Helpers: informações no formato correto(de acordo com o User Culture)
- format_date- format_datetime- format_currency- format_number...
Armazenar tradução no banco de dados:
product ( id, price)
product_i18n (id, culture, name)
$product = ProductPeer::retrieveByPk(1);$product->setName('Nome do produto');$product->save(); echo $product->getName(); => 'Nome do produto' $product->setName('Product name', 'en');$product->save(); echo $product->getName('en'); => 'Product name'
zf
Zend_LocaleZend_Date
Zend_CurrencyZend_Measure_*
Zend_TranslateArrayCSVINI
Gettext...
DocumentaçãoCompleta
Quick StartAPI
Guia de Referência
e tem “documentações”...
ComunidadeAtiva
Contribuições
e tem “comunidades”...
ci
Documentação e Comunidade
sf
Documentação e Comunidade...
http://www.symfony-project.org
Quem aqui usa Symfony?
ci
Quem aqui usa Code
Igniter?
zf
ProfissionaisZend Framework
Super ProfissionalZend Framework
Quem usa Zend Framework?
MENSAGEM SUBLIMINAR
LEMBRE-SE...CHUCK NORRIS USA ZEND
Tudo Igual...PHP 5OOMVCORM
Formulários e ValidaçõesCache
I18n e l10n...
Aumento de Produtividade
Escolha um...E comece!!!
Mas claro que o ZendFramework é o melhor!!!
Obrigado!!!
http://www.phpba.com.br
[email protected]@gmail.com
[email protected]@gmail.com
[email protected]@gmail.com