Dúvidas Gerais

Gravatar de Wilckerson Wilckerson Tópico publicado em
17/08/2009, 02:04:44

Semelhanças com o CakePHP

Olá galera!

Passeando pela net encontrei esse framework de vocês e vi que é totalmente em português, e isso é difícil, ainda mais produtos de qualidade…hhehehe (não desmerecendo os brasileiros claro, alias sou um deles xD).

Gostei bastante do Spaghetti pois ele é simples e funcional, porém, depois de algumas observações, percebi que a arquitetura que vocês usaram está praticamente idéntica ao do CakePHP.

Ai parei para me perguntar, será que vocês não estariam re-inventando a roda?
Em outras palavras, qual é a diferença que vocês esperam que exista estre os dois e qual vantagem teria usar o Spaghetti sendo que (com minhas análises nada aprofundadas…) o Spaghetti parece ser uma versão simplificada do CakePHP.

Desculpem caso esteja falando besteira pois estou aqui querendo ajuda-los e impedir que percam tempo criando algo que já existe, contudo, apoio muito este projeto pois é uma iniciativa totalmente brasileira e o conteúdo da framework está show.

Abraço!

Gravatar de Julio Greff Julio Greff Resposta publicada em
17/08/2009, 08:23:33

Semelhanças com o CakePHP

O Spaghetti* não é uma versão simplificada nem abrasileirada do CakePHP. Sim, seguimos muito da estrutura dele no começo, mas se você for acompanhar o desenvolvimento da versão 0.2, verá que estamos seguindo nosso próprio caminho.

A diferença entre o Spaghetti* e o CakePHP está basicamente na filosofia: o Cake tem coisa demais, e a gente precisava de muito menos do que aquilo para os nossos trabalhos. Além do mais, o Cake ainda dá suporte ao PHP 4, e ficar suportando coisas antigas não é a idéia do Spaghetti. Todas as diferenças que estão surgindo partem desses dois princípios. Outro princípio que começará a fazer muita diferença é o incentivo a práticas como TDD, DRY, uso da linha de comando, automatização de processos, etc.

Gravatar de Rafael Marin Rafael Marin Resposta publicada em
17/08/2009, 08:30:15

Semelhanças com o CakePHP

O Spaghetti* tem uma premissa de se manter simples e genérico, fornecendo o básico para desenvolver uma aplicação Web. Contudo, a estrutura do framework permite estendê-lo para comportar diferentes necessidades.

Reinventar a roda nesse caso é questão de empreendedorismo. Se ninguém quisesse reinventar a roda, nem Rails, nem Django, nem Cake exisitiriam.

Gravatar de Wilckerson Wilckerson Resposta publicada em
17/08/2009, 10:59:40

Semelhanças com o CakePHP

Agradeço pelos esclarecimentos, agora posso ver que realmente vocês estão querendo manter a linha da simplicidade e da funcionalidade e creio que estão no caminho certo.
Vou continuar acompanhando este projeto e estudando um pouco este framework pois ele está bem flexivel e o melhor de tudo, a documentação está bem explicativa.
Boa sorte a todos!

Gravatar de Igor Cemim Igor Cemim Resposta publicada em
19/08/2009, 15:56:39

Semelhanças com o CakePHP

“...uso da linha de comando, automatização de processos, etc.”

Não gostei disso. :P

Vai estragar todo o FW, se manter a simplicidade é o objetivo
acho que linha de comando não deveria ser usada.

Sem mais.

Abraços, Igor Cemim

Gravatar de Julio Greff Julio Greff Resposta publicada em
19/08/2009, 16:55:00

Semelhanças com o CakePHP

Embora pareça complicado pra quem nunca tenha usado, scripts de linha de comando simplificam muito o trabalho do programador. Você nunca mais precisará criar um model, ou controller, ou view na mão, nunca mais precisará abrir o phpMyAdmin pra criar/editar uma tabela, não precisará abrir o browser pra rodar testes, além de você mesmo poder criar scripts que automatizem tarefas repetitivas. A linha de comando é um ótimo aliado, e não um inimigo ;)

Gravatar de Igor Leroy Igor Leroy Resposta publicada em
24/08/2009, 13:45:08

Semelhanças com o CakePHP

Concordo, para quem já desenvolveu em Rails ou Django sabe a facilidade de gerar scripts por linha de comando. Vou gostar, se o Spaghetti tomar o mesmo caminho.

Gravatar de Igor Cemim Igor Cemim Resposta publicada em
28/08/2009, 12:31:38

Semelhanças com o CakePHP

Hummm… mas a linha de comando seria opcional então?
Quero dizer, a documentação sobre como criar um controller, view e etc manualmente
irá continuar?

A grande vantagem de usar um framework PHP simples é saber como ele funciona.

Gravatar de Julio Greff Julio Greff Resposta publicada em
28/08/2009, 13:47:44

Semelhanças com o CakePHP

Sim, a linha de comando seria opcional, e a documentação vai continuar disponível, mesmo não sendo tão útil assim (o código gerado pelos scripts de linha de comando será exatamente o mesmo que se geraria manualmente, só que muito mais rápido ;)

Gravatar de Rafael Marin Rafael Marin Resposta publicada em
28/08/2009, 13:54:01

Semelhanças com o CakePHP

Só é importante saber distinguir o seguinte: ser simples não significa foco no desenvolvedor iniciante. Já aplicamos diversos padrões de projeto e orientação a objetos, e usar um framework com essas características implica conhecer as reais vantagens dessa abordagem sobre um modelo de desenvolvimento procedural.

O Spaghetti* é desenvolvido para quem sabe programar. Não estamos aqui para ensinar os desenvolvedores a pensarem em algoritmos, este requisito é mínimo. Estamos oferecendo uma ferramenta para tornar o trabalho mais rápido de quem já sabe como é ruim desenvolver Web sem padrões de projeto.

Usar scripts de linha de comando não é e provavelmente não será obrigatório, porém se o cara se considera programador, e está em busca de um framework para tornar seu trabalho mais rápido e organizado, linha de comando é um obstáculo que já deveria ter sido vencido antes de se cogitar usar um framework pronto.

Não queremos prender ninguém ao Spaghetti*, queremos cultivar uma filosofia de experimentação. O Spaghetti* não é a ferramenta ideal para todas as necessidades nem para todos os desenvolvedores, e esperamos que quem use o Spaghetti* tenha a cabeça aberta para ir além do que mostramos em tutoriais e screencasts, que consiga ir atrás das próprias soluções independente de usar comandos no terminal ou criar arquivos na mão.

Gravatar de Guilherme Guilherme Resposta publicada em
29/08/2009, 21:25:52

Semelhanças com o CakePHP

Poxa Igor, linha de comando é divertido, talves você ainda não tenha usado nada com gerador de scripts, mas quando você passar a usar a linha de comando para gerar scripts vai perceber que é bem mais simples, facil, rapido e divertido (sempre gostei do Spaghetti* por conta desse ultimo termo), fique calmo, vai dar tudo certo.

E mais uma coisa você deveria se sentir impolgado em saber que vai aprender a usar a linha de comandos do seu SO para gerar seus scripts sem precisar daquele trabalho entediante e repetitivo de descrever a mesma coisa pra tudo o que for criar, isso é fantastico (e divertido)! Pelo menos eu me sentiria assim, e acho que é como todo programador deveria se sentir, aprender alguma coisa, seja ela qual for, é sempre bom.

Se fosse para o Spaghetti* ser simples sob esse ponto de vista teria parado na versão 0.1

Gravatar de Klawdyo Klawdyo Resposta publicada em
30/08/2009, 12:14:29

Semelhanças com o CakePHP

Mas está sendo feita alguma coisa nesse sentido, ou é um projeto futuro?

Gravatar de Julio Greff Julio Greff Resposta publicada em
30/08/2009, 15:23:07

Semelhanças com o CakePHP

Embora já tenhamos começado a trabalhar nisso há muito tempo atrás, paramos para dar prioridade a outras features de mais urgência para a gente. Desde então virou projeto para alguma versão futura, ou até que eu me invoque e faça isso fora de ordem xD

Gravatar de Igor Cemim Igor Cemim Resposta publicada em
29/09/2009, 19:02:49

Semelhanças com o CakePHP

Se eu gostasse de código gerado usava Delphi... :p

Gravatar de Julio Greff Julio Greff Resposta publicada em
29/09/2009, 22:55:51

Semelhanças com o CakePHP

A questão é que o código gerado não é algo parecido com Delphi ou .NET, são coisas que seria geradas por um snippet, por exemplo, só com algum poder a mais.

Gravatar de augusto_hp augusto_hp Resposta publicada em
13/01/2010, 16:30:38

Semelhanças com o CakePHP

É, eu encontrei o framework de vocês na internet, e depois de uns 15min olhando o código fonte e lendo este tópico ainda tenho minhas dúvidas.

- Qual a razão da classe "Object" no Framework? No Cakephp ela serve para fornecer métodos como __construct e __destruct (porco, mas meio que funciona) pras demais classes no PHP4. No Projeto de vocês, não existe motivo além de ... ? Não sei.

- Qual a razão de vocês usarem retorno e atribuição por referência em TANTOS lugares? É PHP 5 gente. No CakePHP a gente precisa passar as coisas por referência por causa do PHP 4. No PHP5 não tem porquê. Inclusive, avisos do PHP são gerados por conta disso ....

- Qual a razão da existência do Class Registry? No CakePHP, por causa do suporte versão 4, nós não podemos contar com o AutoLoad, na versão 5 ela é inútil. Pelo contrário, na versão 5 essa classe mais prejudica do que ajuda.

Eu já li que "vocês estão seguindo o próprio caminho" e "no começo usaram muito do cake". Mas, na boa? O framework de vocês é o CakePHP. Só acho prejudicial e anti-ético; se basear, copiar trabalho dos outros e querer que este trabalho seja marcado como autêntico.
Porque estou falando isso? Onde no site do framework está menção ao CakePHP?
Onde no código está menção ao CakePHP?
Sinto muito, mas dizer que vocês se "basearam" é sacanagem. Vocês forkaram o projeto, tiraram o que não queriam, e seguiram daí pra frente.

Gravatar de avelino avelino Resposta publicada em
13/01/2010, 16:48:43

Semelhanças com o CakePHP

Augusto tirando que eles não segue as regras da Licença MIT onde o CakePHP é escrita.

http://www.opensource.org/licenses/mit-license.php

Gravatar de Julio Greff Julio Greff Resposta publicada em
13/01/2010, 16:53:47

Semelhanças com o CakePHP

Acho que você não olhou todo o código fonte. Primeiro, citamos sim o CakePHP como nossa fonte inicial de inspiração nas informações de licensiamento. Não colocamos essa informação em cada arquivo porque não temos código do CakePHP (com excessão da classe Security, onde os métodos do Cake estão indicados como tal).

Quanto a classe Object, ela não é usada pra muita coisa no momento. Também não sei se será usada no futuro. Inicialmente, ela servia para disponibilizar os métodos error, stop (por razão de testes) e log (que nunca foi implementado). error e log vão ser removidos, stop continuará pela mesma razão, e será adicionado callMethod, para chamar métodos da própria classe por razões de performance no uso do call_user_func_array.

Quanto às referências, elas servem para não criarmos cópias de objeto na memória. Sim, strict warnings eram gerados na versão 0.1, na versão 0.2 TODOS relacionados a referências foram corrigidos.

A razão do ClassRegistry é a mesma do CakePHP: recursão na hora de referenciar modelos relacionados. Usamos ele em vários outros lugares também, mas foi por pura estupidez minha. De qualquer forma, o ClassRegistry nem será mais necessário na versão 0.3.

Parece que você está usando como base somente a versão 0.1. Dê uma olhada no que já estamos fazendo para o futuro, e me diga se por acaso estamos ao menos seguindo o mesmo caminho do CakePHP.

Gravatar de Rafael Marin Rafael Marin Resposta publicada em
13/01/2010, 21:05:45

Semelhanças com o CakePHP

Só tenho uma coisa pra falar: tem gente que tá bullshitando em cima de uma versão que já está bastante desatualizada, de um release de mais de 1 ano de vida. Quem se deu o trabalho de abrir o nosso github e de entender as razões de todas as escolhas que fizemos até agora não entraria aqui para fazer algumas das considerações que foram feitas.

O Spaghetti* não foge da regra de que sempre há o que melhorar. E isso é absolutamente notável pelo histórico de mudanças que tem sido feitas desde 2008, quando o projeto começou.

Sei que estou ficando repetitivo, mas parece que teve gente que não entendeu: o Spaghetti* não é para enterprise. Se vai ser algum dia, não se sabe. Agora, considero grande ignorância começar a sugerir e dar pitacos em versões defasadas do código. Erros e inconsistências sempre existirão, e trabalhamos como qualquer desenvolvedor proativo para corrigi-los.

Além disso, a nossa proposta é clara, e tem também a ver com diversão. Tentamos fazer as coisas do nosso jeito para tornar o fluxo de desenvolvimento menos burocrático e chato. Algumas etapas importantes ainda não foram desenvolvidas, mas de novo, não queremos abraçar o mundo, nem mesmo as grandes corporações de desenvolvedores certificados Zend.

Partes do framework podem ser melhores do que estão hoje? Claro que podem, sempre poderão. Faltam features? Faltam, sempre faltarão. Dá pra refatorar mais? Sim, sempre dará. Existe algum padrão de projeto que poderia ser empregado? Sim, sempre existirá. O que queremos entregar um framework para quem consegue compreender isso.

Honestamente não sei por que perdi meu tempo escrevendo tanto, especialmente para gente que não veio para ajudar a construir e que provavelmente não vai voltar aqui para ler isso. Se você não consegue pensar antes de falar, o Spaghetti* não é para você.

Gravatar de augusto_hp augusto_hp Resposta publicada em
14/01/2010, 03:47:15

Semelhanças com o CakePHP

Julio, vamos lá .. retrucando.

- A classe Object nunca será usada no futura e é uma má/péssima prática aceita no Cake por causa dos benefícios que ela proporciona;

- O PHP 5 já passa objetos só por referência;

Quanto ao Rafael Marin, meu caro .... do mesmo jeito que eu "não estou ajudando vocês" vocês não estão ajudando o Cake. Poderiam mas não estão. E é esse o motivo de meu post.

E tem mais, o que o Avelino falou é sério. Vocês precisam no Copyright do Cake nos arquivos dele que vocês se basearam. E eu n preciso olhar muito pra achar vários.

De novo. Acho - além de que vocês poderiam estar ajudando um projeto - que deveriam dar os devidos créditos ao projeto que forneceu a estrutura que vocês usam hoje; não de forma escondida em um arquivo de licença. Mas se vocês tivessem algum respeito com o esforço colocado de MUITOS no código que vocês estão modificando, vocês fariam isso de forma mais clara e honesta.

Gravatar de Julio Greff Julio Greff Resposta publicada em
14/01/2010, 08:52:16

Semelhanças com o CakePHP

  • Classe Object: não entendo como uma péssima decisão no design do nosso framework e uma classe vazia se relacionam com o que você está querendo discutir.
  • Referências: sim, abusamos delas (mais do que deveríamos, realmente). Somos péssimos programadores mesmo. Também não entendo como isso se relaciona com a discussão.

Como diz a MIT License, "The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software". Todo o código substancial do Cake (no caso, acredito que só na classe Security) está apontado como tal. Os créditos ao Cake estão devidamente dados no arquivo de licença (que, acredito eu, é onde deveria estar mesmo) como nossa base. Somos honestos dizendo que nossa arquitetura inicial foi praticamente idêntica ao Cake. Não só aqui, mas no blog, em listas de discussão e em e-mails respondidos. E, se você tivesse se dado o trabalho de verificar os trabalhos no github, teria visto que nem mesmo a arquitetura parecida ao Cake será mantida.

Quanto a ajudar um projeto ou não, isso é decisão nossa. Não ajudamos o Cake por motivos que já cansamos de explicar. Se esse fosse realmente o problema, os fóruns de vários frameworks estariam cheios desse tipo de discussão.

Gravatar de augusto_hp augusto_hp Resposta publicada em
14/01/2010, 16:06:49

Semelhanças com o CakePHP

A relação com a discussão nos 3-2 pontos citados está em: vocês não sabem pra que servem as coisas, não pensaram antes de copiar algo que tinha porquê no Cake mas no Framework de vocês n faz sentido NENHUM!

Gravatar de avelino avelino Resposta publicada em
14/01/2010, 16:13:29

Semelhanças com o CakePHP

@augusto_hp vamos lá, o que o projeto de vocês atende que o cakephp não atende?

Gravatar de Julio Greff Julio Greff Resposta publicada em
14/01/2010, 16:14:01

Semelhanças com o CakePHP

Object não foi uma cópia sem pensar, eu tenho em mente pra que ele irá servir. Além do callMethod, ele proverá suporte a plugins quando migrarmos para o PHP5.3, tal qual o Lithium fez (embora a nossa arquitetura de plugins seja drasticamente diferente da do Lithium).

Abuso de referências vem do meu mindset PHP4. Realmente não sabia que tudo se passava por referência no PHP5. Depois da sua afirmação, já fui procurar material a respeito e tem bastante coisa que não devia estar lá. Entretanto, sem strict warnings.

ClassRegistry, como eu já disse, tem sua razão de ser. O PHP entra em um loop infinito com a nossa arquitetura de models sem ele.

De um jeito ou de outro, não vejo de onde esses 3-2 pontos nos tornam uma cópia escrachada do Cake.

Gravatar de Julio Greff Julio Greff Resposta publicada em
14/01/2010, 16:17:53

Semelhanças com o CakePHP

@avelino nada. Pelo contrário, o Cake atende muito mais do que a gente. Isso é um problema pra você?

Gravatar de Klawdyo Klawdyo Resposta publicada em
14/01/2010, 16:23:17

Semelhanças com o CakePHP

Caralho.
Os caras tão dizendo desde o início: O framework FOI baseado no Cake, mas não é mais. A nova versão não terá mais nada dele, nem a organização dos arquivos, que é uma coisa básica.

Tu num sabe ler não, bichona? O espertão é fera em achar semelhanças em códigos que não tem nada a ver, mas não consegue entender uma frase simples.

Não interessa a ninguém se alguma coisa faz, ou deixa de fazer sentido pra você. Ninguém aqui te perguntou nada.

O cara se acha o tampa, mas vem aqui e se rebaixa ao nível de um trollzinho...

Isso sim, não faz sentido NENHUM!

Gravatar de Rafael Marin Rafael Marin Resposta publicada em
14/01/2010, 16:23:31

Semelhanças com o CakePHP

avelino francamente, esse é o tipo de pergunta xiita que não merece resposta, mas vou colar um trecho de um post que publicamos há algum tempo, espero que consiga extrair a sua resposta a partir daí.

Vocês estão nessa para concorrer com os frameworks já existentes?

Não pretendemos ser divisores de águas, nem desbancar as ferramentas já existentes. O Spaghetti* existe pois ele foi uma ferramenta criada para uso interno. Porém, o resultado em termos de produtividade e de facilidade tem sido tão bom que pensamos que, talvez, pudessemos compartilhar nossos resultados com outras pessoas e equipes. Repetimos, então, que não queremos desbancar nem concorrer. Estamos aqui para divulgar um trabalho que tem dado certo para a gente e sentir os resultados desta ferramenta em outras equipes.

Aonde o Spaghetti* pretende chegar, então?

Algo que temos em mente, e que guia o desenvolvimento dos recursos presentes no Spaghetti*, é cautela e despretensão. Você pode ver que em momento algum nos promovemos como grande framework, divisor de águas, aniquilador de concorrência. Como até então vinhamos utilizando-o internamente, sabíamos exatamente o que era necessário dentro do core e quais recursos faziam falta.

Agora, porém, trata-se de um projeto público, onde devemos também considerar a opinião dos desenvolvedores que nos deram a oportunidade e se interessaram pelo Spaghetti*. Não sabemos o futuro do Spaghetti*, só sabemos que este futuro vai existir, pois é um projeto que dá bons frutos e que merece continuidade.

Sobre novos recursos e aprimoramento dos já existentes, nós já temos alguns em mente, e outros queremos saber o que a comunidade deseja. Tudo será colocado em uma balança e serão produzidos os que realmente agregarão valor ao projeto.

Gravatar de avelino avelino Resposta publicada em
14/01/2010, 16:31:25

Semelhanças com o CakePHP

Só acho que centralização de conteúdo é uma tática onde todos deveria aplicar.
Mas hoje podemos fazer o queremos então quem sou eu para falar alguma coisa do projetos de vocês, só tenta achar um diferencial para o projetos de você caso não tenha, e estude a possibilidade de centralização.

Sempre quando vou fazer um projeto faço as seguintes perguntas:
Porque?
Porque fazer.

Onde?
Onde fazer.

Como?
Como fazer.

Se eu não saio nem da primeira pergunta não vejo motivo de fazer;

Gravatar de augusto_hp augusto_hp Resposta publicada em
14/01/2010, 16:40:10

Semelhanças com o CakePHP

Eu vou propor o seguinte.

Vamos todos pegar uma Ferrari. Pintar ela de cor diferente, trocar os bancos .. quem saber colocar um sistema de som fudido nela. Agora falta o quê? Chamar ela de "Augustari"!

É isso que vocês fizeram. Já disse, vou escrever de novo: não tenho nada contra o fork de projeto. Tenho contra a afirmação de vocês. Vc se basearam no CakePHP e AINDA se baseiam. Não quero que vocês parem com o projeto de vocês, mas sinceramente? Cuspir no conhecimento dos outros, conhecimento que vocês não tem e ainda falar que o trabalho é de vocês?

Os pontos que eu levantei foram feitos em 10min durante todos os 3-4 arquivos que eu abri pra olhar. Se eu olhar TODO código fonte, eu escrevo um livro de "coincidências" entre o código de vocês e o do CakePHP.

Acho MUITO justo, e acharia DIGNO da parte de vocês, colocar um "CakePHP Powered" como o Lithium fez (por exemplo, e o Lithium não é de ninguém menos que o criador e grande contribuidor do Cake).
Vamos ver se eu deixo claro as coisas: acho louvável o trabalho do Julio Greff e do Rafael Marin; MAS, eles pecam em não dar os devidos créditos a quem merece.

@Klawdyo: Eu não faltei com respeito em nenhum post a nenhum de vocês. Eu não ataquei ninguém pessoalmente porque não conheço a capacidade profissional do Julio nem do Rafael. Mas de uma coisa eu tenho certeza. VOCÊ não tem capacidade pra me julgar. A nova versão (do github) ainda tem MUITA coisa do Cake. Se você não é capaz de ver isso, você é cego. As semelhanças de código são ridículas, extremamente ridículas.

Gravatar de Julio Greff Julio Greff Resposta publicada em
14/01/2010, 17:40:40

Semelhanças com o CakePHP

@avelino: todo mundo questiona a gente por isso. Nos oferecemos menos que o Cake, mas o que a gente oferece a gente oferece de uma maneira diferente. Não necessariamente pra todo mundo, mas pelo menos pra mim, "coçando minha própria coceira".

@augusto_hp: os créditos estão dados. O que foi usado de código está documentado como manda a licença MIT, e a base está creditada no arquivo de licença. E sim, a versão do GitHub tem muita coisa do Cake, pois foi código importado do branch v0.2-dev, e ainda não foi mexido. O branch v0.3-dev (ou master, agora) tem bem pouco tempo de vida ainda. No fim das contas, o que você espera que a gente faça? Os créditos estão dados, conforme a licença, e está dito no fórum, no blog, no license.txt, em e-mails e tudo o mais que usamos a estrutura do Cake. O que mais você precisa pra entender que não estamos maquiando a origem da estrutura do Spaghetti?

Gravatar de renan.saddam renan.saddam Resposta publicada em
14/01/2010, 17:44:26

Semelhanças com o CakePHP

@Julio Greff: A diferença entre o Spaghetti* e o CakePHP está basicamente na filosofia: o Cake tem coisa demais, e a gente precisava de muito menos do que aquilo para os nossos trabalhos. Além do mais, o Cake ainda dá suporte ao PHP 4, e ficar suportando coisas antigas não é a idéia do Spaghetti. Todas as diferenças que estão surgindo partem desses dois princípios. Outro princípio que começará a fazer muita diferença é o incentivo a práticas como TDD, DRY, uso da linha de comando, automatização de processos, etc.

Tentarei explicar algumas coisas relativas ao seu comentário...

Cake tem coisa demais, e a gente precisava de muito menos do que aquilo para os nossos trabalhos.

Isso é devido à modularidade que queremos dar ao usuário. E como tudo, você não precisa usar todos os recursos que estão disponíves no CakePHP.
Essa semana o Mark Story tirou algumas "magicals" features (como ele denominou) do Core justamente para fazer com que coisas que você não precisa não sejam carregadas.
Outros Frameworks como Zend e PEAR são abarrotados de funcionalidades, porém nem todas precisam ser usadas ao mesmo tempo.

Além do mais, o Cake ainda dá suporte ao PHP 4, e ficar suportando coisas antigas não é a idéia do Spaghetti.

Quando se mantém um Framework a 5 anos você passa por diversas fases de tecnologia, todos nós sabemos que a tecnologia avança muito rapidamente esses dias.
E acredite ou não, até ano passado muitas empresas ainda desenvolviam em PHP4, ou tinham aplicações em PHP4. Por isso, devido ao compromisso que temos para/com a comunidade não podemos, não podemos simplesmente falar: Bom, PHP5 tá aí, vamos codar em PHP5 e esquecer quem ainda precisa dar suporte em aplicações que tem PHP4.

Além do mais, quando se pega o PHP4 e PHP5 (< PHP5.3) manter o código para ambas as versões não requer muito trabalho. A única desvantagem é quando algo (função buil-in do PHP por exemplo) funciona apenas em uma das versões.

Outro princípio que começará a fazer muita diferença é o incentivo a práticas como TDD, DRY, uso da linha de comando, automatização de processos, etc.

TDD: O CakePHP tem mais de 14000 testes (asserts). Acho que essa prática é bem usada no CakePHP.
DRY: Significa Don't Repeat Yourself e também usamos o máximo possível. Eu mesmo peguei alguns lugares do Core e refactorei para remover alguns códigos duplicados.
Uso da linha de comando: Foi muito citado o uso da Linha de Comando, seria mais ou menos como o Bake ou outros 6 comandos que são inclusos no CakePHP?
Automatização de processos: que seria?

Alguém ai disse que se não fosse para re-inventar a roda projetos como DJango, Rails e outros não existiriam. Existe uma grande diferença entre re-inventar a roda e fazer uma roda melhor.
Eu diria que no momento vocês estão re-inventando a roda, espero que cheguem ao ponto de colaborar para ter uma roda melhor ou fazer com que a sua fique melhor.

Gravatar de avelino avelino Resposta publicada em
14/01/2010, 20:56:28

Semelhanças com o CakePHP

renan.saddam

Olhando o seu source dada para verificar muito visivelmente que tem varias coisas em PHP 4, que não é o foco de vocês manter coisas antiga como você mesmo falo.

Vendo apenas a parte de controller:

/**
 *  A classe Controller é responsável pela camada Controller da aplicação.
 *
 *  Licensed under The MIT License.
 *  Redistributions of files must retain the above copyright notice.
 *  
 *  @package Spaghetti
 *  @subpackage Spaghetti.Core.Controller
 *  @license http://www.opensource.org/licenses/mit-license.php The MIT License
 */

Batendo o olho no source seu e do cake tem muitas functions com mesmo escopo só name diferente.

Ah e no comentaria vem falando:
* @package Spaghetti
* @subpackage Spaghetti.Core.Controller
* @license http://www.opensource.org/licenses/mit-license.php The MIT License

Cade o credito?

Gravatar de renan.saddam renan.saddam Resposta publicada em
15/01/2010, 10:30:04

Semelhanças com o CakePHP

@avelino

Eu como Core Developer do CakePHP posso lhe afirmar que quero que os devidos créditos sejam dados, afinal, está na licença acima de tudo.

Gravatar de augusto_hp augusto_hp Resposta publicada em
15/01/2010, 17:14:44

Semelhanças com o CakePHP

É.

Não precisa ser Core Developer, nem contribuidor, nem usuário nem nada pra querer que os créditos sejam dados. É simplesmente errado e de má fé querer que conhecimento dos outros sejam encarados como seus.

Como disse e os pontos que levantei. As inconsistências no código são enormes. É muito claro que vocês usam o CakePHP de base para tudo que estão fazendo; não fazem um CTRL+C/CTRL+V, mas a base no código é muito explícita. Quanto mais a fundo se vai no código; mais e mais se chega a conclusão de que não existe conhecimento agregado no projeto para construir o que existe hoje; e eu conheço bem o código fonte do CakePHP (Aliás ... @saddan, realmente o Model melhor pra caralho !!!!!). Mas não precisa conhecer o código fonte do Cake. Qualquer um que tirar 30min da vida pra ver um arquivo do Spaguetti e um do Cake vai notar.

Gravatar de Julio Greff Julio Greff Resposta publicada em
15/01/2010, 17:22:14

Semelhanças com o CakePHP

OK, vamos colocar as informações de licenciamento como vocês demandam. Como eu sou extremamente parcial, me digam vocês (especialmente o @saddam, que acho que conhece o Cake melhor do que ninguém por aqui) quais arquivos ou métodos contém uma base substancial do Cake. E então encerramos o assunto, todo mundo feliz.

Gravatar de Julio Greff Julio Greff Resposta publicada em
15/01/2010, 17:25:03

Semelhanças com o CakePHP

E, por favor, considerem o código novo, branches master e v0.2-dev.

Gravatar de Max Max Resposta publicada em
22/02/2010, 20:37:23

Semelhanças com o CakePHP


"SANCHO LOS PERROS LADRAN SEÑAL DE QUE ESTAMOS CAMINANDO"
Miguel de Cervantes Saavedra (El Quijote de la Mancha)

"SANCHO  OS  CÃES  LATEM ... SINAL DE QUE  AVANÇAMOS.......!"
Miguel de Cervantes Saavedra (O quixote)
Es increible como hay gente que se muere de envidia quando alguen le sale al frente com alguna idea..

[.. desculpem, é minha lingua Paterna, agora vou a lingua Materna,...]

É incrível como tem gente que se MORDE de INVEJA quando surge algo eles gostarian de ter FEITO, ou quando ALGUEM começa a Crecer e ele não pode fazer nada para impedi-lo, e o pánico toma conta do seu espirito e comença a cuspir fogo para todos os lados e no cume do sua paranoia começa a ver fantasmas de todos os tipos no quintal do vizinho AQUI NÃO TEM DISCUSÃO ANALITICA NEM EMPIRICA porque para discutir tem de ter MÉTODO no minimo com CARATER MATEMATICO INDUCTIVO DEDUCTIVO,ETC ou com o método cientifico, AQUI NAO TEM THEOREMA E depois de revisar este topico é muito claro ver que

"AQUI NO PASADA NADA", :)

Tem gente que se afoga com sua propria saliva (nem sequer num copo de agua).


licença MIT é para isso que EXISTE E AQUI  neste projeto: spaghettiphp ESTA TUDO EM REGRA nothing more. 

quer o endoidado com sua ligua mordaz discutir, entao vai discutir com os criadores da licença.
quer processar?? entao prepare-se a perder, segue texto para quem ainda tiver dúvida:

Origem: Wikipédia, a enciclopédia livre. Ir para: navegação, pesquisa A licença MIT, também chamada de licença X ou de licença X11, é uma licença de programas de computadores (software), criada pelo Massachusetts Institute of Technology. Ela é uma licença não copyleft utilizada em software livre, isto é, ela permite a reutilização de software licenciado em programas livres ou proprietários.

Muitos grupos utilizam a licença MIT no seu software, como os programas Expat, MetaKit, PuTTY, as bibliotecas do projeto Mono, Lua, e o sistema X Window, este último, é o exemplo mais conhecido.

Índice [esconder] 1 Texto da licença 2 Usos da licença MIT 3 Comparação com outras licenças 4 Ligações externas [editar] Texto da licença * Copyright (c) <year> <copyright holders> * Permission is hereby granted, free of charge, to any person obtaining a copy of this * software and associated documentation files (the "Software"), to deal in the Software * without restriction, including without limitation the rights to use, copy, modify, merge, * publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons * to whom the Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all copies or * substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR * PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. [editar] Usos da licença MIT Não há copyright no texto da licença MIT, por isso, outros grupos podem modificar a licença para atender as suas necessidades. Por exemplo, a Free Software Foundation utiliza a licença MIT para a sua biblioteca ncurses, com a adição do seguinte texto:

* Except as contained in this notice, the name(s) of the above copyright holders shall * not be used in advertising or otherwise to promote the sale, use or other dealings in * this Software without prior written authorization. A licença MIT fica praticamente idêntica a licença BSD com a adição deste texto.

Outros grupos preferem uma licença dual para os seus produtos sob a licença MIT. Versões antigas da biblioteca cURL, permitiam que o usuário escolhesse entre as licenças Mozilla e MIT.

Segundo a lista de licenças da Free Software Foundation [1], a licença MIT deveria ser chamada de licença X11, já que o MIT possui muitas licenças para software. Por outro lado, o Open Source Initiative se refere a ela como licença MIT, assim como outros. Deve-se notar que as licenças MIT e X11 não são iguais. A "licença MIT" é idêntica a "licença Expat" enquanto a licença do "MIT X Window System" (ou X11) é sutilmente diferente da "licença MIT".

[editar] Comparação com outras licenças A licença MIT é similar a licença BSD versão "3-clause". Essencialmente, a diferença reside no fato de a licença BSD conter um aviso proibindo o uso promocional do nome do autor sob copyright. A versão "4-clause" da licença BSD também inclui uma cláusula determinando que toda a propaganda do software inclua uma nota, enquanto a licença MIT, nunca teve tal cláusula. A licença MIT, por outro lado, coloca de forma mais explícita os direitos do usuário final, incluíndo o direito ao uso, cópia, modificação, fusão, distribuição, "sublicenciamento", e/ou venda de software.

A licença estilo BSD, ou licença BSD versão "2-clause", encontrada em softwares como o WebCore da Apple Computer (ainda que a maior parte do WebCore esteja sob a licença LGPL), é praticamente idêntica a licença MIT, já que ela não contém a "cláusula de promoção".

[editar] Ligações externas


http://pt.wikipedia.org/wiki/Licen%C3%A7a_MIT
http://pt.wikipedia.org/wiki/Licen%C3%A7a_MIT


HASTA LA VISTA BABY puf!!
:)

até a proxima.

VIVA AO BRASIL!!

VIDA LONGA A LICENÇA MIT!!

Gravatar de robsonkarls robsonkarls Resposta publicada em
23/03/2010, 18:49:32

Semelhanças com o CakePHP

Julio Greff
Resposta publicada em
15/01/2010, 17:22:14
Semelhanças com o CakePHP

OK, vamos colocar as informações de licenciamento como vocês demandam. Como eu sou extremamente parcial, me digam vocês (especialmente o @saddam, que acho que conhece o Cake melhor do que ninguém por aqui) quais arquivos ou métodos contém uma base substancial do Cake. E então encerramos o assunto, todo mundo feliz.

quote de segurança

Você deve estar logado para responder a um tópico ou adicionar um novo.
Efetue login ou Registre-se para participar das discussões.