O documento discute os principais frameworks PHP, comparando suas características e funcionalidades. Apresenta detalhes sobre arquitetura, acesso a dados, formulários, validações, cache, segurança, internacionalização e documentação de frameworks como CakePHP, CodeIgniter, Symfony e Zend Framework.
25. Acesso a Dados e ORM // SELECT nome FROM usuarios u // JOIN telefones t ON t.usuario_id = u.id $this->db->select('nome'); $this->db->from('usuarios u'); $this->db->join('telefones t', 't.usuario_id = u.id'); $query = $this->db->get(); // SELECT nome FROM usuarios WHERE id = $id LIMIT 10, 20 $this->db->select('nome')-> from('usuarios')-> where('id', $id)-> limit(10, 20); $query = $this->db->get() ;
26.
27. Acesso a Dados e ORM class Usuarios extends Zend_Db_Table { protected $_name = "usuarios"; } // Controller public function indexAction() { $usuarios = new Usuarios(); $this->view->usuarios = $usuarios->fetchAll(); }
28.
29. Acesso a Dados e ORM class UsuarioPeer extends BaseUsuarioPeer { public static function retrieveByLoginSenha($login, $senha) { $c = new Criteria(); $c->add(self::LOGIN, $login); $c->add(self::SENHA, $senha); return self::doSelectOne($c); } } class Usuario extends BaseUsuario { public function getNomeCompleto() { return $this->nome . “ “ . $this->sobrenome; } }
30.
31. Formulários e Validações class BaseUsuarioForm extends BaseFormPropel { public function setup() { $this->setWidgets(array( 'nome' => new sfWidgetFormInput(), )); $this->setValidators(array( 'nome' => new sfValidatorString( array('max_length' => 100, 'required' => true)), )); } public function getModelName() { return 'Usuario'; } }
32. Formulários e Validações $form = new UsuarioForm(); $valores = $request->getParameter($form->getName()); $arquivos = $request->getFiles($form->getName()); $form->bind($valores, $arquivos); if ($form->isValid()) { $usuario = $form->save(); // OU // $usuario = $form->getObject(); // $usuario->save(); }
37. Formulários e Validações class UsuarioForm extends Zend_Form { public function __construct($options = null) { parent::__construct($options); $this->setName("Usuario"); $id = new Zend_Form_Element_Hidden("id"); $nome = new Zend_Form_Element_Text("nome"); $nome->setLabel("Nome") ->setRequired(true); $submit = new Zend_Form_Element_Submit("enviar"); $this->addElements(array($id, $nome$submit)); } }
46. Cache // Construção do objeto cache $cache = Zend_Cache::factory($frontendName, $backendName, $frontendOptions, $backendOptions); // Exemplo de cache de Saída if (!($cache->start('meu_cache'))) { echo ”Isso está em cache (“.time().”)“; $cache->end(); } echo “Isso NÃO está no cache”.time().”)”;
47.
48. Cache #<appName>/config/settings.yml dev: .settings: cache: on #<appName>/modules/<moduleName>/config/cache.yml list: enabled: on with_layout: false # Default value lifetime: 86400 # Default value // Removendo o cache $cacheManager = $this->getContext()->getViewCacheManager(); $cacheManager->remove('usario/listar'); $cacheManager->remove('usario/mostrar?id='.$user_id)