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
Mãos a Obra:
Página do módulo: http://www.coelho.net/mod_macro/
Para instalar no Gentoo, apenas digite:
e espere terminar, após isso, edite o arquivo /etc/conf.d/apache2/ e adicione na linha APACHE2_OPTS a seguinte entrada: “-D MACRO”
Agora vamos criar nosso template de vhost.
Criamos o arquivo ‘/etc/apache2/vhosts.d/01.vhosts.macro.conf, com o seguinte conteudo
<macro Virtual $server $docroot>
<virtualhost>
servername $server
documentroot $docroot
<ifmodule>
ServerEnvironment apache apache
</ifmodule>
</virtualhost>
</macro>
Include /etc/apache2/vhosts.d/vhosts.include
e no arquivo Include /etc/apache2/vhosts.d/vhosts.include, indicamos nossa macro e passamos os parâmetros:
Use Virtual meusite1.com.br /var/www/meusite1.com.br/htdocs/
Use Virtual meuoutrosite.com.br /var/www/meuoutrosite/htdocs/
Bom é isso, muito menos código em seus arquivos para criar vhosts.
Abraços
December 8th, 2007 by alexm
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:
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
É 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
Este projeto fornece a capacidade de usar disposivos remotos,
controlados via tcp-ip apartir de outro ponto,
Hoje (12/07), o projeto ainda encontra-se instavel, mais já é possivel utilizar, mouse, teclados e storages pela rede.
http://usbip.sourceforge.net/
Abraços
December 5th, 2007 by alexm
Início de meu Blog pessoal, contento aqui tudo que sei, e vivo aprendendo.
abraços e até mais.
December 4th, 2007 by alexm