alexmontoanelli

a place to have some fun..

Trabalhando com Banco de Dados no ZendFrameWork – Parte 1

Bem, sou fã incondicional do Framework da Zend.

Um de seus componentes é Zend_DB, que faz toda a parte de conexão, e manipulação do Banco de dados.

Irei neste artigo apenas explicar de forma básica como realizar a conexão com o banco de dados, e executar algumas operações de sql , de uso diário.

Tendo o ZendFrameWork corretamente instalado e configurado em seu ‘include path’, poderemos prosseguir.

Abaixo exemplo de conexão a um banco Mysql, usando o driver Pdo_Mysql:

$config = array
	(
		'host' => 'localhost',
		'username' => 'usuariodobanco',
		'password' => 'senhadobancodedados',
		'dbname' => 'nomedobancodedados'
	)
 
$_resource = Zend_Db::factory('Pdo_Mysql', $config);

Na variavel $_resource você receberá um objeto do tipo ‘Zend_Db_Adapter_Abstract’.

Podemos recurperar um resultado de um select com o seguinte código:

$sql = "SELECT * FROM cidades WHERE nome = 'Tijucas'";
 
$result = $_resource->fetchAll($sql);

Por padrão, fetchAll retorna um array de linhas de forma associativa.

As chaves dos arrays são as colunas ou aliases selecionadas na sql.

Bom pra começar e ter uma idéia é isso.

O assunto é extenso, passando desde classes para manipular a tabela, as linhas da tabela, a controle de statment ( begin, comit, rollback) entre outros.

Até a próxima.

December 12th, 2007 by alexm
Posted in php | No Comments »

Dicas função __autoload()

Olá,

Pra quem não sabe, existe um método ‘mágico’ usado como ultima tentativa para carregar uma classe antes que o PHP retorne um erro.

Esse método tem a seguinte assinatura:

__autoload($className);

O argumento de entrada recebido é o nome da classe que o Interpretador esta procurando.

Então se sempre usarmos as boas práticas e tivermos nossos arquivos e classes em uma Estrutura hierárquica bem organizado podemos utilizar o método a nosso favor, e dar adeus a requires_onces em nossas classe, veja o exemplo abaixo:

Diretório: Unetvale:
Arquivo: Core.php -> Classe: Unetvale_Core
Arquivo: Auth.php -> Class: Unetvale_Auth
Arquivo: Auth/Lib/Ldap.php -> Class: Unetvale_Auth_Lib_Ldap

function __autoload($className){
 
     if (ereg('_', $className)) {
 
       $file = null;
       $path = str_replace('_', DIRECTORY_SEPARATOR, $className);
       $file = $path . '.php';
 
       require_once($file);
 
     }
 
}

Pronto, basta ter o include_path apontando tambem para os diretorios onde temos nossa bibliotecas e esta tudo resolvido.

abraços

December 6th, 2007 by alexm

Escreva seu código de forma legivel

É mais fácil para debugar e mante-lo mais tarde.

Escrever um codigo legivel, organizado,usando tabulação, nomes auto-sugestivos, e fazendo a aplicação em partes pequenas, funcionais, e reusáveis.

Abaixo um exemplo básico de como NÃO fazer:

if($c!==mir($c)){$d=strtolower(mirC($c));}else{$d=$c;}

e abaixo um exemplo mais organizado:

if ($input !== checkForSpellingErrors($input))
{
	$output = strtolower(correctSpelling($input));
}
else
{
	$output = $input;
}

Mais fácil não ?

December 5th, 2007 by alexm