• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

yoda

novo projecto / ideia

6 mensagens neste tópico

Boas tardes,

Para comemorar o meu 3º post neste fórum, e depois de ler por alto a ideia original do codeBetter, resolvi partilhar isto com a comunidade, na esperança que esta ideia seja apoiada por alguns de vós.

Era suposto escrever aqui uma pequena história da vida do programador comum, mas vou encurtar essa parte e ser o mais directo possível:

O objectivo daquilo que eu proponho aqui é criar uma simples e leve plataforma de integração de objectos. Ou seja, para dar um exemplo, eu saco uma classe deste fórum, criada por um conterrâneo nosso, e a plataforma permite-me com 1 linha de código apenas incluir essa classe e quaisquer dependências que ela tenha, aglomerando a instância criada num super-objecto, ao estilo do CodeIgniter. (http://www.codeigniter.com)

Os objectivos da plataforma :

- Permitir através de uma simples chamada de uma função incluir uma classe e todas as suas dependências, físicas e metódicas;

- Permitir o fácil acesso às instâncias dos objectos criadas pela sua inclusão, através de de um padrão $this->instancia_do_objecto ;

- Dar um uso mais significativo da portabilidade das classes públicas partilhadas por nossos camaradas;

- Proporcionar um outro tipo de experiência metódica a nível de programação em PHP, para os menos experientes em OOP, e para os que simplesmente não usam ainda.

Como penso já terem reparado, não pretendo desta plataforma nenhuma framework, nem nada que se pareça. Apenas um método de unificar qualquer sistema através do uso da OOP em PHP, e da reutilização de classes, aumentando a produtividade. Uma coisa simples e fácil de entender  :P

Antes de tudo, gostaria de ler a vossa opinião sobre o assunto, assim como possíveis perguntas e críticas.

Interessados em participar também são convidados a demonstrar aqui o seu interesse  :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Antes de mais, bem vindo a esta comunidade nacional .

Espero que possas aumentar esse teu número de posts porque pretendemos ter a contribuição de todos para passar o conhecimento.

Fico feliz por gostares da ideia do codeBetter, pena que não tenha conseguido atrair muita gente para levar avante da forma que eu esperava.

Em relação à tua ideia, não tinha pensado nisso, mas fiquei aqui atraído por isso, gostei imenso da ideia.

Acho que é um tema que merece toda a discussão.

Obrigado pela sugestão :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas,

Obrigado Gurzi  :D

Visto que não estou a ver interesse por parte da comunidade nisto, e como eu sou um líder natural e não preciso de ser apoiado, vou avançar com isto para a frente com o único interessado que obtive : DanielSilva

Deixo porém aqui uma pergunta : que nome terá isto?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tambem me pareceu uma boa ideia apesar de têr lido um bocado na diagonal.

A mesma será alvo de atenção por parte do staff, oportunamente serão comunicadas as conclusões.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tambem me pareceu uma boa ideia apesar de têr lido um bocado na diagonal.

A mesma será alvo de atenção por parte do staff, oportunamente serão comunicadas as conclusões.

Boas,

Obrigado RL, e restante Staff ;)

Antes de mais, se acharem que isto já merece título de projecto, enviem PM para eu mover as coisas para lá e poderem apagar este tópico.

Ora,

Chamei-lhe Elementum, latim para constituinte básico, primeiro principio, elemento. penso ser adequado :P

Já começei a fazer o esboço do script em conjunto com o DanielSilva, e já funciona relativamente bem.

O sistema é baseado num objecto, chamado Elementum, que contém todas as funções base para poder fazer o seu trabalho. deste modo, pode ser usado das seguintes formas :

  • Ser instanciado normalmente num ficheiro;
  • Ser criada uma classe ( workspace ) que extenda o core, para se poder trabalhar lá dentro.

Pessoalmente prefiro o método do workspace, porque dá mais sentido ao projecto, mas pode ser usado até das duas formas em simultâneo.

Em relação às funções, segue uma pequena lista e objectivos :

Função autoload

Registada através do spl_autoload_register() dentro do objecto, serve como a tradicional __autoload(), com a diferença que carrega todos os ficheiros php de uma dada pasta, para situações de objectos extendidos, e iniciando de seguida o objecto principal.

Função load

Permite carregar as classes, atribuir-lhes alias e grupos, onde estes 2 ultimos passos são opcionais. Todas as classes carregadas sem indicação de um grupo ficarão disponíveis directamente a partir do objecto principal. Se for disponibilizado um alias, a classe ficará registada no objecto principal com esse nome, e se for disponibilizado um grupo, esta será assignada a ele apenas.

Exemplo (sem grupo)

$Elementum->class1

Exemplo (com grupo library)

$Elementum->library->class1

Função set_group

Permite a definição de um grupo para as classes, passando o nome do grupo como único parâmetro.

Função join_group

Permite assignar uma ou mais classes (já carregadas no objecto) a um grupo. Ao fazer isto, as classes disponíveis da base do objecto principal são movidas para o grupo, ou seja, passam a pertencer ao grupo e o seu local de origem (root do objecto) será destruído para liberar memória e nomes.

Pode parecer uma função pouco usual, por podermos atribuir logo a classe ao grupo na sua inclusão ao objecto principal, mas achámos que poderia vir a ser útil a alguém :(

Função share

Como o nome indica, permite partilhar objectos, ou neste caso torná-los mais acessíveis. Imaginando que temos uma classe loja_online, e que lá dentro precisamos de ter acesso a uma base de dados. Para facilitar isso, esta função torna o objecto database disponível dentro da classe loja_online. Ou seja, dentro da classe loja_online o objecto database estará disponível usando :

$this->database

Obs : Este método é discutível, pelo que eu e o DanielSilva pensá-mos fazer fazer a partilha usando um grupo:

$this->shared->database

.. De modo a reduzir a probabilidade de colisões de nomes. É uma questão a debater ainda B)

----------

E pronto, para já penso ser tudo. Dúvidas, sugestões, ideias, seja o que for, postem que nós logo analisamos. De qualquer modo, esta noite ainda deixo aqui a primeira RC do Elementum, para ser avaliada B)

Depois da primeira RC, pode começar-se a projectar outras vertentes / variantes deste projecto :D

Abraço!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas,

Estive um pouco ocupado estes dias, mas aqui vai a RC1 do Elementum

Deixem feedback e dúvidas quem tiver! E opiniões para futuro improvement também!  :)

link para sacar

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora