RSS Assine nosso RSS

Posts com a Tag ‘php’

13/05/2009 por samanta.tavares

Evento PHPSC Conf 2.0

A Drimio estará presente no PHPSC Conf 2.0, um dos maiores eventos de PHP do Brasil.

As incrições já estão abertas. O evento acontecerá em Itajaí nos dias 29,30 e 31 de Maio.

Participe!

04/12/2008 por andre.gustavo

Utilizando o Zend_Db_Select

Mais um post em paralelo com o blogdoxorna.com

O uso da classe Zend_Db_Select é muito simples, o intuito dela é proporcionar ao desenvolvedor a possibilidade de fazer consultas complexas sem a necessidade de escrever código SQL, e sim utilizando um objeto, abaixo estarei mostrando alguns mini-exemplos.

Consulta simples, como um SELECT * FROM `users`

$select = new Zend_Db_Select();

$select->from(‘users’);

$rs = $select->query();

$data = $rs->fetchAll();

Consulta com inserção de clausula WHERE, como um SELECT * FROM `users` WHERE `id` > 10:

$select = new Zend_Db_Select();

$select->from(‘users’);

$select->where(‘id > ?’, 10);

$rs = $select->query();

$data = $rs->fetchAll();

· Consulta com seleção de campos e cláusula WHERE, como um SELECT id, name FROM `users` WHERE id > 10:

$select = new Zend_Db_Select();

$select->from(‘users’);

$select->columns(‘id, name’);

$select->where(‘id > ?’, 10);

$rs = $select->query();

$data = $rs->fetchAll();

· Consulta com seleção de campos e cláusula WHERE e INNER JOIN, como um SELECT `users`.`id`, `users`.`name`, `pictures`.`address` FROM `users` INNER JOIN `pictures` ON `pictures`.`user_id` = `users`.`id` WHERE id > 10;

$select = new Zend_Db_Select();

$select->from(‘users’);

$select->columns(‘users.id, users.name, pictures.address’);

$select->joinInner(‘picures’, ‘picures.user_id = user.id’);

$select->where(‘id > ?’, 10);

$rs = $select->query();

$data = $rs->fetchAll();

Além dos métodos utilizados acima a api da classe na qual o Drimio_Db_Select extende em http://framework.zend.com/apidoc/core/Zend_Db/Select/Zend_Db_Select.html

03/12/2008 por andre.gustavo

Profiling de consultas utilizando Firebug, FirePHP e Zend_Db_Profiler_Firebug

Mais um post em paralelo com o blogdoxorna.com

Um recurso muito interessante do navegador Firefox são suas extensões, e para os desenvolvedores web uma das extensões mais importantes é o Firebug, com ele você consegue fazer o profiling da camada de visão da sua aplicação, podendo por exemplo monitorar todas as requisições Ajax, seus cabeçalhos e dados, tempo de carregamento de cada arquivo da interface e o tamanho de cada um. Mas ele não para por aí, utilizando o FirePHP que é uma extensão do Firefox mas ele trabalha sobre Firebug, você consegue fazer profiling das camadas que são processadas no servidor, como a camada de modelo, que é o caso utilizado neste post. Abaixo estarei mostrando de maneira simples e objetiva como utilizar este recurso, assumindo que você já tenha instalado o Firefox, o Firebug e o FirePHP, então vamos lá:

No seu arquivo de bootstrap, após criar a sua conexão com o banco de dados, você deverá criar um profile e defini-lo como o profiler daquelas conexão:

$connection = Zend_Db::factory($adapter, $config);

$profiler = new Zend_Db_Profiler_Firebug('All DB Queries');

$profiler->setEnabled(true);

$connection->setProfiler($profiler);

Após isso, basta ter o firebug e o firephp ativados para conferir o profiling de suas consultas no console do firebug.

27/11/2008 por andre.gustavo

Guardar Sessões em Cache com Zend Framework e Memcached

Post em paralelo com o www.blogdoxorna.com

O post de hoje se dedica a aumentar a performance no armazenamento e recuperação de sessões, mais um dos estudos realizados pela nossa equipe e que foi implantado no nosso projeto. Ele consiste em pega a sessão do usuário e armazenar em um servidor de cache, no nosso caso o memcached.

A implementação é muito simples, você terá apenas que criar uma classe e mudar o modo que cria sua sessão, o resto permanece igual, pois é Zend_Session se encarrega de achar a sessão dentro do cache. Abaixo vai o código da nova classe que deve implementar a interface  Zend_Session_SaveHandler_Interface.

class Xorna_SessionHandler implements Zend_Session_SaveHandler_Interface{

private $maxlifetime = 3600;

public $cache = '';	public function __construct($cacheHandler) {

$this->cache = $cacheHandler;

}

public function open($save_path, $name) {

return true;

}

public function close() {

return true;

}

public function read($id) {

if(!($data = $this->cache->load($id))) {

return '';

}

else {

return $data;

}

}

public function write($id, $sessionData) {

$this->cache->save($sessionData, $id, array(), $this->maxlifetime);

return true;

}

public function destroy($id) {

$this->cache->remove($id);

return true;

}

public function gc($notusedformemcache) {

return true;

}

}

?>

Bom, feito isso agora só precisamos instanciar isso, e criar a sessão:

Zend_Loader::loadClass('Xorna_SessionHandler');

$cache = Zend_Cache::factory('Core', 'Memcached', $frontendOptions, $backendOptions);

Zend_Session::setSaveHandler(new Xorna_SessionHandler($_cache));

Zend_Session::start();

Daqui em diante nada muda.

26/11/2008 por elton.minetto

Desenvolvendo aplicações web escaláveis

Material da palestra apresentada no ConaPHP 2008

Download

BlogBlogs.Com.Br