Outlet ORM – PHP – Parte 1, Configurando

Boa noite,

Estou a falar do Outlet-ORM, acesse.

Outlet is an open source object-to-relational mapping tool for PHP.

Outlet ORM - Logo
Outlet ORM – Logo

New BSD License.

Ele difere de outras soluções ORM para PHP, já que prevê a persistência transparente e discreto, ele utiliza uma abordagem semelhante à hibernação em Java, utilizando objetos proxy.

Depois de utilizar em alguns projetos, resolvi criar este Post para mostrar como ele funciona, um mini tutorial.

1 passo – CONFIGURAÇÃO, Crie um arquivo com o seguinte conteúdo:

return array(
‘connection’ => array(
‘dsn’ => ‘mysql:host=myserver.com;dbname=mydb’,
‘username’ => ‘user’,
‘password’ => ‘pass’,
‘dialect’ => ‘mysql’
),
‘classes’ => array(
‘Categoria’ => array(
‘table’ => ‘categoria’,

‘props’ => array(

‘ID’ => array(‘id’, ‘int’, array(‘pk’=>true, ‘autoIncrement’=>true)),

‘Nome’ => array(‘nome’, ‘varchar’)

),

‘associations’ => array(
array(‘one-to-many’, ‘Produto’, array(‘key’=>’ID’))

),’useGettersAndSetters’ => true

),
‘Produto’ => array(
‘table’ => ‘produto’,

‘props’ => array(

‘ID’ => array(‘id’, ‘int’, array(‘pk’=>true, ‘autoIncrement’=>true)),

‘Nome’ => array(‘nome’, ‘varchar’)

),

‘associations’ => array(

array(‘many-to-one’, ‘Categoria’, array(‘key’=>’ID’))

),’useGettersAndSetters’ => true

)
)
);

Neste array a chave connection define a conexão com o banco de dados, o Outlet aceita, Mysql, Postgres, SQLite e SQL Server.
Está configuração permite você definir que a classe Categoria e Produto represente as tabelas no banco de dados.o parametro ‘useGettersAndSetters’ => true, indica que os campos serão retornados utilizando metodos get/set

2 – Criando as Classes Categoria e Produto
class Categoria{
private $ID;
private $Nome;
private $Produtos;
public function getId(){ return $this->ID; }
public function setId( $ID ){ $this->ID = $ID; }
public funciton getNome(){     return $this->Nome; }
public function setNome( $nome ) { $this->Nome = $nome; }

public function setProdutos( $produtos ){ $this->Produtos = $produtos; }
public function getProdutos( ){ return $this->Produtos; }
}

E para Produtos

class Produto{
private $ID;
private $Nome;
private $Categoria;
/**
* @return the $ID
*/
public function getID() {
return $this->ID;
}
/**
* @return the $Nome
*/
public function getNome() {
return $this->Nome;
}
/**
* @return the $Categoria
*/
public function getCategoria() {
return $this->Categoria;
}
/**
* @param $ID the $ID to set
*/
public function setID($ID) {
$this->ID = $ID;
}
/**
* @param $Nome the $Nome to set
*/
public function setNome($Nome) {
$this->Nome = $Nome;
}
/**
* @param $Categoria the $Categoria to set
*/
public function setCategoria($Categoria) {
$this->Categoria = $Categoria;
}
}

Agora é só iniciar o Outlet

require_once( “arquivo_com_objetos.php” ); // arquivo com as classes que foi criado com as definições das tabelas
Outlet::init(include ‘outlet-configuracao.php’); // arquivo de configuracao que voce criou
$outlet = Outlet::getInstance();
$outlet->createProxies();

PRÓXIMO POST, VOU MOSTRAR COMO INTERAGIR COM OS OBJETOS, FAZER UM SELECT, INSERT, UPDATE E DELETE.

CategoriasBanco de Dados, PHP Tags:, , ,

jQuery Validação Formulário (quase) sem javascript

Olá, a todos que estiver lendo.
Recentemente iniciei o desenvolvimento de um plugin para jquery, um validador onde é possivel voce definir os campos requeridos do formulario apenas por atributos no formulario, exemplificando:

Usando esquema de Namespace do xhtml,

<form enctype=”application/x-www-form-urlencoded” validate:form=”formulario_1″ action=”">

isso informa ao plugin que este formulário deve ser validado, ou seja, a instrução validate:form=”formulario_1″, a identificação formulario_1 deve ser unica, isso identifica caso tenha 2 formulários na pagina.

Para informar que um campo é requerido, usamos validate:tipo_campo=”opcao”, tipo_campo pode ser date, cpf, cnpj, texto, numero, e outros que irei adicionando ao longo do tempo. veja um exemplo.

<input id=”cpf” name=”cpf” type=”text” value=”" validate:cpf=”true” mask:cpf=”true” />

Outro recurso interessante é a possibilidade de definir mascaras para o campo, utilizando o atributo mask:cpf=”true” ou mask:phone=”true” , mask:date=”true”

Bom, estou na faze inicial do projeto, definindo a estrutura, falta ainda escrever mais testes e implementar campos  que é muito utilizado como CEP por exemplo.

Outro recurso que ainda tenho que pesquisar é como tornar este namespace válido seguindo  http://www.w3.org/TR/xhtml1/normative.html
Bom, para quem quiser colaborar ou copiar, o link é:  git clone http://github.com/diogocolete/jquery-validador.git

Ainda está em faze de desenvolvimento, quero chegar a versão 0.1.

Tendência Vídeo HTML5

Um dos assuntos mais atuais é o HTML5, e muita coisa nova
esta surgindo. Por isso achei interessante está noticia e relevante
para o pessoal que trabalha com Web.

Para mais uma desilusão da Adobe, a campanha para a inserção de
vídeos na Wikipédia está privilegiando um formato de compressão de
vídeos aberto.

Há um tempo atras li que o HTML5 seria um “Flash killer” e já começa
aparecer estes traços, animação, interatividade.

Fonte: http://www.geek.com.br/posts/12543-wikipedia-agora-tera-videos-mas-nao-em-flash

CategoriasHTML5 Tags:

Novo Padrão de Codigo para o PHP 5.3

Recentemente estava procurando sobre padrão de escrita de códigos, identação, nomenclatura este tipo de coisa, e achei um link interessante, veja um trecho:
PHP Standards e o PHP 5.3
O PHP 5.3 traz novidades e que podem mudar muito a forma de como programamos hoje. O uso de namespace, lambda functions e outros podem bagunçar o codigo de qualquer um.
Não existe um padrão oficial para PHP. Por enquanto. Recentemente um grupo de desenvolvedores de varios frameworks, entre eles Symfony, Cake, Zend e se reuniram e criam um grupo para defenir esses padrões. Espera-se que todos os projetos existentes hoje como o PEAR, os frameworks, WordPress, drupal e magento, alem dos novos, tenham uma mesma forma, principalmente agora com o advento do PHP 5.3.
Link: http://www.php-zine.net/2009/06/08/novo-padrao-de-codificacao-php-5/#more-42
Link 2: http://news.php.net/php.standards/2
CategoriasPHP Tags:

Grupo PHP Curitiba

Para quem trabalha em curitiba, estamos com o grupo no google e  yahoo http://groups.google.com.br/group/php-curitiba e  http://br.groups.yahoo.com/group/php-curitiba/

Não importa se você está começando ou já é um Expert, pode entrar.

CategoriasPHP Tags:

Hello world!

Welcome to WordPress.com. This is your first post. Edit or delete it and start blogging!

CategoriasPHP
Seguir

Obtenha todo post novo entregue na sua caixa de entrada.