ActView e Forms.util terminadas!
Domingo, Março 2, 2008
Bem, depois de programar durante a madrugada ( hora mais produtiva ), acabo de terminar a classe ActView e um arquivo de funções de formulários. Vejam alguns recursos da ActView:
- Inclusão de css, javascript e imagens de pastas especificadas na config;
- Formatação de links;
- Links para controllers e blank_controllers ( blanks são usados para chamadas AJAX )
- Redirecionamento.
E também funções de formulários que funcionam assim: Você chama a função, dizendo o objeto e o atributo, se o objeto existir ele preenche automaticamente com o valor do atributo
.
- Select com opção para optgroups;
- Submit, hidden e input simples;
- Textarea;
Tecnicamente o pacote está terminado, já posso chamar de versão Alpha ^^. Estou esboçando uma classe que poderá se chamar ActForm e pode ser muito parecida com a newForms do Django. E estou pensando numa classe de paginação de resultados utilizando ajax e json, coisa bem simples para tarefas rotineiras, como listar itens de alguma coisa, sei lá. E muito distante a ideia de adicionar suporte a stored procedures… Se eu arrumar um jeito legal quem sabe, porque em PHP é uma dor de cabeça pois as variaveis de retorno devem ser passadas como referência. Então é só. Quem sabe eu não boto o Beta pra download ^^”.
Até mais!
Mudanças de última hora
Domingo, Março 2, 2008
Bem, eu tava sem nada pra fazer e resolvi dar uma mudada nas classes. As classes principais possuem sua configuração escrita num arquivo xml, e seus atributos de configuração eram privados. Mas… andei pensando… decidi tornar os atributos de configuração publicos para o caso de não se utilizar o arquivo de configuração padrão. Não faz sentido ter mais trabalho, mas, há quem goste de fazer umas coisas braçais
. Então é isso.
Até breve!
PS: A classe ActDB voltou a se chamar ActDataBase por questão de estética… Era a única classe com nome abreviado :/ . Estou pensando em mudar de ActModel para ActRecord novamente. Mas isso fica pra outro dia.
Supresa: Surge ActController!(edited)
Sábado, Março 1, 2008
Olá pessoal! Fazia tempo que eu havia desistido de implementar um controller em PHP. Eu simplesmente não conseguia lidar de alguma forma com o escopo de variáveis, devo ter passado batido em alguma coisa por ai. Mas vi um método muito simples de incluir um arquivo passando variáveis que foram instânciadas dentro do controller, utilizando a função “extract” ^^. Então eis que surge ActController! Agora não tem mais gambiarra pra chamar os controllers igual a versão 0.8 do ActPHP. O método load_view do controller chama a view que você passar, assim como o do Django, dá include e chama as variáveis; até objetos podem ser passados. Tudo que precisa é colocar tudo num array ( PHP é uma linguagem orientada a Array ) e pronto! Pra facilitar a questão de layouts onde geramente só se muda o miolo, criei uma funçãozinha chamada “call_ctrl” que vai executar o action do controller ^^. Então dá pra ter vários “call_ctrll” pela página e chamar várias views :~~~~~~~. Bem por hoje é só.
Até breve!
Model terminado!
Quarta-feira, Fevereiro 27, 2008
Dei hoje por encerrada a classe ActModel, internamente ela usa a classe ActDB para seus métodos. Consegui fazer um ORM bem satisfatório do meu ponto de vista.
Agora vou trabalhar a questão dos controllers, mas em PHP é uma tristeza…
Quase, quase…
Terça-feira, Fevereiro 26, 2008
Bem… praticamente estão concluídas as: ActDB, ActResultSet e DBException. Em andamento estão ActModel e MDException. Testei com os bancos SQLite e MySQL. Infelizmente o MS SQL Server deu pau. Pesquisei algumas soluções e nada de concreto. Eu não consegui usá-lo. Decidi que colocarei pra download o pacote completo. Vejamos alguns features do que ja foi implementado:
- Configuração da aplicação em XML;
- “Lançamento” de Exceptions em todas as operações que podem ocorrer erros;
- Incremento na parte de log. Agora é possivel fazer um log em xml e ainda colocar atributos nas tags.
- Redução do tamanho do código;
- Melhor documentação do código.
Essas são algumas novidades. Farei a documentação oficial em breve, pois estou agilizando a questão do dominio ainda.
Até breve.
ActDB colocada no forno!
Sábado, Fevereiro 23, 2008
Bem gente… Dei um gás na implementação da classe de banco. Agora ela se chama ActDB e não ActDatabase… Dei uma cortada no nome para ajudar os preguiçosos de plantão, e o método query_database agora é apenas query, e o execute_query agora é apenas execute. As linhas estão bem comentadas e dei uma enxugada na lógica do código. Estou indo dormir agora. Quando acordar eu farei os testes e possivelmente amanhã eu coloco a disposição pra download ( alpha ).
Até a vista.
Planejando a classe de Banco (edited)
Sexta-Feira, Fevereiro 22, 2008
Bem, vamos por café no bule. Primeiro a classe de banco de dados. Definiremos o que ela fará por nós:
- Acessará o banco;
- Executará instruções DML;
- Executará transações seguras ( vide item 2 );
- Retornará um ResultSet quando for solicitado;
- ‘Jogará’ Exceptions para os erros mais diversos;
- Log das ações executadas, gravados tanto em banco, quanto em xml;
Para auxiliar a classe de banco, teremos uma classe de ResultSet, que conterá objetos retornados de uma consulta. Ela terá alguns atributos úteis. Vamos listar alguns:
- Agirá como uma lista ( possuindo um Iterator interno);
- Poderá retornar blocos de objetos, como uma paginação ( embora esse recurso não deva ser utilizado em grandes porporções );
- O valor de cada campo da consulta será acessado como membro da classe. ( isso agiliza bastante, não ter aqueles gets chatos );
Acho que é só por enquanto. Estou só dependendo de uma inspiração pra começar o código, tenho tudo na cabeça. Nos vemos.
Até a vista.
O primeiro passo
Quarta-feira, Fevereiro 20, 2008
Como toda jornada começa no primeiro passo, hoje eu dei um. Estou estudando a PDO - PHP Data Objects, uma classe nativa do PHP para acesso a multiplos bancos de dados. A nova versão do ActPHP será construida em cima dela. Assim que eu organizar um pouco a documentação da versão atual eu colocarei o ActPHP pra download e farei alguns tutoriais. Mas agora que foi decidido usar a PDO em breve eu posto a primeira implementação - O método que conectará com o banco.
Até a vista.
Conhecer mais linguages não te deixa mais bonito, mas torna melhor programador
Segunda-feira, Fevereiro 18, 2008
Bem, estou escrevendo esse post para falar o que muita gente sabe, mas meu objetivo é encorajar o aprendizado de novas linguagens de programação. Hoje sou um programador desenvolvedor mediano, e boa parte disso foi dedicação ao estudo de outras linguagens. Veja bem, se a linguagem X possui um recurso que a linguagem Y não tem, mas você não pode usar a linguagem X, sabendo como funciona e o que faz, você pode implementar esse recurso em Y facilmente, com muito menos dor de cabeça. Estou escrevendo essas mal traçadas linhas apenas para incentivar o aprendizado de outras linguagens, e vocês verão que durante o desenvolvimento da nova versão do ActPHP eu citarei de onde vieram os recursos e as ideias. Nada brota do nada. Repetindo meu jargão: Não queiram dominar o mundo. Ele é grande demais.
Até a vista.
Primeiro Post!
Quinta-feira, Fevereiro 14, 2008
Olá pessoal, meu nome é Jonathan, atualmente trabalho como programador. Minha experiência pode ser vista na página do meu perfil. Com esse blog pretendo dar uma pequena contribuição ao mundo do Desenvolvimento Web. Colocarei as minhas experiências e as coisas que irei desenvolver.
Cerca de 1 ano atrás eu tive contato com um framework que atualmente é muito conhecido: o Rails. Escrito em Ruby e utilizando da mesma linguagem, ele oferece um poder incrível de velocidade no desenvolvimento de aplicações web. Foi amor a primeira vista. Comprei livros, li foruns, fiz pesquisas etc. Sugeri a implantação no meu trabalho, mas devido a conflitos de desinteresse tive que seguir com PHP como minha linguagem oficial. Então meses depois surgiu um projeto, e esse projeto foi desenvolvido utilizando orientação a objetos ( até então não se programava muito orientado a objeto por lá ) e com isso surgiram ideias e mais ideias, um verdadeiro brainstorm começou comigo e um amigo meu. Sob o nome de Hangar25, iniciou-se o planejamento de classes que semelhante ao Rails iriam agilizar nosso trabalho. Assim surgia o ActPHP, um framework que promete agilizar o trabalho dos programadores em PHP, que não desejam nada de complexo, soluções mirabolantes ou coisas do gênero. O ActPHP vem pra cumprir uma missão: Organizar e Agilizar. Ele não tem a pretenção de conquistar o mundo e nem mesmo tomar o lugar de outros frameworks. Atualmente se encontra na versão 0.8, mas eu pretendo desenvolver a versão 2.0 colocando o progresso dele no blog. Vai o nome de algumas classes do ActPHP, aqueles mais familiarizados com Rails entenderão logo de cara.
- ActDatabase - Faz a conexão com banco de dados; atualmente suporta MySQL e SQL Server;
- ActRecord - Seria o modelo, faz referências as tabelas do banco, utiliza atributos dinâmicos e cumpre muito bem seu papel se usada corretamente;
- ActView - Auxilia na construção de formulários para interagir com a ActRecord, possui funções de criptografia para o GET se você gostar de urls mais seguras ao invés de amigáveis
- ActXML - Converte objetos e arrays em XML’s válidos, muito uteis se for utilizar o Adobe Flex.
Essas são as classes básicas, infelizmente a documentação tende a zero. Por isso vou redesenvolve-lo da maneira correta. Desmembrar muitos métodos da classes ( ActView principalmente ) criar classes para tipos ( é horrivel fazer validação de tipos em PHP) e talvez prover alguns atalhos para integração de javascript, visto que o ActPHP se deu muito bem com a Prototype + Script.aculo.us.
Bem… é isso. Agora basta aguardar as novidades. Terão alguns posts sobre Python + Django, pois é a plataforma que estou estudando atualmente, estou querendo abrir uma empresa e é isso que vamos utilizar.
Até a vista.