Seções iMasters
Framework + PHP

Conheça o Easy Framework

Fala, pessoal, tudo tranquilo?

Hoje gostaria de apresentar para vocês um novo Framework para PHP. Nossa, mais um??

Acreditem, esse é diferente.

O Easy Framework foi desenvolvido por mim (Ítalo Lelis de Vietro) e é um dos poucos frameworks brasileiros. O projeto teve início em junho de 2011, quando senti a necessidade de uma ferramenta de auxílio para o desenvolvimento de aplicações ágeis em PHP (RapidApplicationDevelopment) e com facilidade para manter o código. Hoje o projeto conta com o suporte da comunidade PHP-PB e promete ser um ótimo framework.

Vamos aprender a criar uma aplicação simples com o EasyFw. Que tal criarmos um aplicativo para cadastrar livros de uma livraria?

Baixando o EasyFw

Primeiramente precisamos baixar a versão 2.0.0, que é a que vou utilizar no exemplo de hoje. Para isso, basta acessar o site do EasyFw.

Após isso, descompacte os arquivos no seu servidor web. Agora podemos criar nosso projeto. Existe uma pasta chamada demos, e nela temos um helloworld. Se você quiser, pode copiá-la para uma estrutura que fica mais ou menos assim.

  • livraria
  • easyframework

Agora, nessa estrutura, acesse livraria/App/webroot/index.php e mude a linha que informa onde nosso núcleo está.

$easy = '../../../easyframework/framework/Easy/bootstrap.php';

Estrutura de pastas

A estrutura de pastas do EasyFw é simples e lógica. Como já trabalhamos com namespaces, será muito fácil seguir uma hierarquia de pastas. Vamos conhecer a estrutura padrão:

  • livraria
    • App – Aqui é a raiz de nosso projeto
      • Config – Todas as configurações padrão estarão aqui
      • Controller – Os controllers da nossa aplicação
        • Components – Componentes que você quiser criar
    • Locale – Arquivos de tradução da aplicação
    • Model– Os Modelos da app
    • Vendors – Bibliotecas de terceiros do projeto
    • View
      • Elements – Os elementos para compor uma página
      • Layouts – Os layouts da aplicação
      • Pages – As views
    • tmp – Arquivos de cache
    • webroot – CSS, JS e imagens

 

  • easyframework – Diretório do núcleo do EasyFw

Essa estrutura nos permite criar vários projetos utilizando o mesmo núcleo.

Criando o banco de dados

Entendida a estrutura das pastas da aplicação, vamos trabalhar na criação do banco de dados.

Como nosso aplicativo será um cadastro de livros, teremos duas tabelas: uma para os livros e outra para as categorias.

CREATE DATABASE livraria

Com isso vamos criar as tabelas, começando pelos livros

CREATE TABLE `livros` (

`id` bigint(20) NOT NULL AUTO_INCREMENT,

`titulo` varchar(45) NOT NULL,

`descricao` varchar(255) DEFAULT NULL,

`ano` int(11) DEFAULT NULL,

`created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,

`categoria_id` bigint(20) NOT NULL,

PRIMARY KEY (`id`),

KEY `FK_livros_categorias` (`categoria_id `),

CONSTRAINT `FK_livros_categorias` FOREIGN KEY (`categoria_id `) REFERENCES `categorias` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

E agora a tabela de categorias:

CREATE TABLE `categorias` (

`id` bigint(20) NOT NULL AUTO_INCREMENT,

`nome` varchar(45) NOT NULL,

`status` varchar(10) NOT NULL DEFAULT 'ATIVO',

`created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Pronto, agora nós já podemos criar as configurações para nossa aplicação acessar o banco. Para isso. saiba qual a senha e usuário para acessar o seu SGBD.

Vá até a pasta de configurações no arquivo database.yml. App/Config/database.yml

Nele, você poderá setar diversas informações sobre o banco de dados, inclusive qual utilizar para testes, produção ou desenvolvimento. Para nosso exemplo, utilizaremos apenas o banco de desenvolvimento. Vejamos como configurá-lo.

datasource:

development:

default:

driver: mysql

host: localhost

user: root

password: ''

database: livraria

encoding: utf8

prefix: ''

 

production:

default:

driver: mysql

host: localhost

user: seuUsuario

password: "suaSenha"

database: seuBancoDeProducao

encoding: utf8

prefix: ''

Acredito que o arquivo seja simples de configurar, mas vou explicar o que cada opção faz:

driver: Informamos qual o driver iremos utilizar (MySQL, SQLite, Oracle)

host: Onde nosso banco de dados está localizado

user: O usuário para acessarmos nosso banco

password: A senha para acessarmos nosso banco

database: O nome do banco

encoding: A codificação que usaremos no banco (UTF-8)

prefix: O prefixo para as tabelas

Com isso, já temos nosso banco rodando na aplicação, mas ainda temos que criar os modelos e os controllers para que a aplicação funcione corretamente.

Criando os models

Vamos criar nosso primeiro modelo.

<?php

namespace App\Model;

/**

* @TableName(“categorias”)

*/

class Categorias extendsAppModel

{

}

Nosso modelo irá herdar da classe AppModel, que está no mesmo namespace do nosso modelo App\Model, que por sua vez herda de \Easy\Model\Model.

O nome do modelo será o mesmo nome da tabela, só que ATENÇÃO: ele está no singular e a tabela, no plural. Isso não é uma regra no EasyFw, mas uma convenção para simplificarmos as coisas.

Outra coisa importante de ressaltar é que nossos modelos podem ser orientados a aspectos (anotações), nome a anotação @TableName – nela, informamos a tabela do banco de dados que nosso modelo representa. Caso o nome do seu modelo seja o singular de sua tabela, o EasyFw já fará isso automaticamente e você pode omitir essa anotação, só coloquei ali para ilustrar.

Vamos criar nosso segundo modelo:

namespaceApp\Model;

/**

* @TableName(“livros”)

* @HasOne (“Categoria”)

*/

classLivroextendsAppModel

{

}

Notem que esse modelo tem um relacionamento com categorias, nosso relacionamento diz o seguinte: um livro pertence a uma categoria. Para isso, nós usamos a anotação HasOne para dizermos que nosso modelo Livro tem um modelo Categoria relacionado a ele.

Os dois arquivos devem ser salvos dentro da nossa pasta de Modelos App\Model, com os nome Categoria.php e Livro.php.

Criando os controllers

É aqui que a mágica acontece. Os controllers vão receber as requisições dos usuários, interagir com os modelos e devolver uma página para ele.

Vamos criar o controler de categorias primeiro:

namespace App\Controller;

use Easy\Model\FindMethod;

classCategoriasControllerextendsAppController

{

}

Notem novamente as convenções: o nome de nosso controller agora está no plural, isso permitirá o EasyFw saber que esse controller interage com nosso modelo Categoria, e ele já vai disponibilizar uma variável $this->Categoria para você acessar seu modelo, sem precisar se preocupar em instanciá-lo.

Agora precisamos criar as actions para o usuário interagir com nosso controle e realizar as operações básicas de um CRUD. Para isso, vamos criar a primeira action de listagem:

public function index()

{

//Pegamos todas as categorias do banco

$categorias = $this->Categoria->getEntityManager()->find(null, FindMethod::ALL);

//Aqui iremos passer a variável para a view

$this->categorias = $categorias

}

Essa action irá pegar todas as categorias do banco e retornar para a variável categorias. Logo em seguida, nós criamos uma variável dinamicamente na View com o nome de categorias.

Agora vamos criar a action para adicionar uma categoria

public function add()

{

If ($this->RequestHandler->isPost()){

//Vamos salvar os dados que vieram de um formulário de cadastro

$this->Categorias->save($this->data);

//redirecionamos para a listagem

$this->redirectToAction(“index”);

}

}

Nessa action existe um fluxo a ser seguido, vamos entendê-lo:

O usuário irá requisitar uma View para cadastrar a categoria, então irá chamar a actionadd. Ela vai verificar se a requisição veio via POST. Como não veio, ela passa pelo if e exibe a View para o usuário.

Depois de clicar no botão de cadastrar, novamente a requisição irá para a actionadd, mas agora ela veio via POST e entrará no if, e nós vamos pegar os dados do formulário na variável $this->data, e vamos salvá-lo no nosso modelo.

Por enquanto, vamos ficar apenas com essas duas actions.

Salvem esse arquivo na pasta App/Controller com o nome CategoriasController.php

Criando as views

Vamos entender como o EasyFw trabalha com as Views.

Primeiramente, o Easy irá procurar um diretório dentro das views com o nome do Controller requisitado, como por exemplo Categorias, e dentro dessa pasta ele irá procurar um arquivo com o nome da action. Exemplo: index.tpl – é nela que vamos colocar a listagem das nossas categorias.

Depois disso, ele irá procurar por um Layout que nossa View irá herdar. Vamos começar criando o layout.

Nossas Views trabalham com o Smarty Template Engine, para realizar a abstração do PHP.

<!DOCTYPE html>
<html>
<head>
{$Html->charset()}
<title>{__(“Livraria”)}</title>
</head>
<body>
<div id="content">
{block name=”content”}{/block}
</div>
</body>
</html>

Esse é o nosso layout, ele é bem simples, mas vamos ver como ele funciona.

Nós vamos utilizar um Helper chamado $Html. Com ele, podemos tirar o trabalho de ficar digitando Html puro na mão. Por exemplo, o $Html->charset() irá imprimir “<meta charset=”utf-8”>”. Esse helper já irá identificar se você está utilizando o DOCTYPE do HTML5 e imprime o meta tag correto para você com o charset que sua aplicação utiliza. Viu como é simples?

Na linha de baixo, nós temos {__(“Livraria”)}, por que colocamos essa string entre os parentes? Simples… com isso, nós já temos suporte para internacionalizar nossa aplicação. Essa função irá gerar um arquivo de tradução para você, e você simplesmente pode traduzi-lo para outra língua e utilizá-lo na sua app, sem precisar alterar seu código.

Na divcontent, temos uma coisa chama {blockname=”content”}{/block} – é aqui que o conteúdo da View será impresso. Isso se chama herança de templates, e nos ajuda bastante a não ficar digitando o HTML completo para cada View.

Agora peguem esse arquivo e salvem-no na pasta App/View/Layouts com o nome de Layout.tpl

Vamos criar nossa View para listar as categorias:

<h1>{__(“Listagem de Categorias”)}</h1>
<tablewidth="100%" cellspacing="0" cellpadding="0">
<trbgcolor="#F0F0F0">
        <td>Id</td>
        <td>Nome</td>
        <td>Status</td>
        <td>Ações</td>
</tr>
{foreach $categorias as $categoria}   
<tr>
        <td>{$categoria->id}</td>
        <td>{$categoria->nome}</td>
        <td>{$categoria->status}</td>
        <td>
        {$Html->actionLink(“Editar”, “edit”, true, $categoria->id)}
        {$Html->actionLink(“Excluir”, “delete”, true, $categoria->id)}
</tr>
{/foreach}

Essa é a nossa view para listagem, ela é bem simples. Observem que utilizamos uma estrutura de laço de repetição, o foreach. No Smarty fazemos dessa forma {foreach $var as $v}, e ele irá iterar sobre sua coleção.

Também utilizamos outro método do HelperHtml, o actionLink, que irá criar um link para as actions no controller que você quiser. No nosso caso, ele vai imprimir:

<ahref=”http::/localhost/livraria/edit/1”>Editar</a>

<ahref=”http::/localhost/livraria/delete/1”>Excluir</a>

Salve esse arquivo na pasta de viewsApp/Views/Pages/Categorias com o nome de index.tpl

Estamos quase acabando o exemplo, só falta criarmos uma View da página inicial para o usuário ver alguma coisa. Para isso, crie um arquivo chamado index.tpl na pasta App/Views/Pages/Home.

<h1>{__(“Bem Vindo ao exemplo de Livraria”)}</h1>
{$Html->actionLink(null, “categorias”)}

Conclusão

Por enquanto, vamos ficando por aqui. Espero que tenham gostado do exemplo. Nos próximos artigos, vamos saber como adicionar, editar e excluir as Categorias e os Livros do nosso exemplo.

Obrigado pelo apoio e atenção pessoal. Abraços.

Links

Site do Framework: http://www.easyframework.net

Repositório no Github: https://github.com/LellysInformatica/EasyFramework

Site da comunidade PHP-PB: http://php-pb.net/

Mensagem do anunciante:

Aprenda WordPress de uma vez por todas com os cursos especializados em WP do Apiki WP Cursos. Conheça!

Comente também

77 Comentários

rodolfo

pra que easy framework, se eu tenho o zend framework, q é easy tambem

    CI

    estou para ver um framework melhor o que CI, até hoje não apareceu nenhum.

      cristianePopozuda

      a velho.. CI? voce tem certeza?

      CI eh melhor que o zend?

      prefiro mil vezes o zend

      Bruno Batista

      Alguem conhece o Laravel? Ou Rails?

Denner

Ele não cria as minhas tabelas de acordo com meu model? o.O’
Não to vendo nada de agradável nesse framework ai…

Alexandre I. Kopelevitch

O autor do artigo disse que começou o projeto em 2011. Ao invés de criticar, juntem-se ao desenvolvimento ou ajudem com críticas construtivas. Tem a terceira opção: parabenizar pela INICIATIVA, continuar usando o framework que ja usam e ficar quietos.

Eu também prefiro meu próprio framework por questão de costume e porque venho desenvolvendo ele há 5 anos, mas acho muito bom este tipo de iniciativa e lendo alguns pontos sempre podem surgir idéias para melhorar meu próprio código. A alma do negócio é COMPARTILHAR conhecimento galera.

    Alê Borba

    o/

    Daniel Schmitz

    concordo

    esse troll todo só pode ser coisa de brasileiro…

    lá fora as pessoas se interessam e contribuem no projeto.

    Leidson

    Concordo, pena as pessoas só quererem criticar e ainda sem saber… Nem ao menos uma crítica construtiva é posta.

    Ótima iniciativa Lelis, já tinha visto por alto o EasyFW e agora com este artigo foi estou vendo a simplicidade e facilidade de desenvolvimento com o Easy. Quando tiver um pouco mais de tempo estarei fazendo pequenas aplicações para teste e também tentarei contribuir com o projeto.

    :)

    kayo silva

    concordo com o colega… ao invés de querer acabar com o projeto, vamos ajudar a criar um framewok bom

Cícero Santos

Excelente projeto … a simplicidade é excelente … agora dizer que Zend Framework é Easy é forçar demais a barra rs rs rs … ta virando um trambolho de complicação estilo Java. Laravel php framework faz o zend parecer coisa de criança. Ainda mais a versão 2 do Zend onde pra configurar um módulo é a mesma burocracia de um atendimento em repartição pública.

Vou Utilizar o easy. Achou legal essa coisa de deixar as coisas mais flexíveis.

    Daniel Schmitz

    O Zend Framework é bom quando você o usa como uma biblioteca de classes, ou seja, você instancia lá Zend_File e usa ele. Se quiser criar uma estrutura MVC pode-se utilizar o ZF também, mas nesse caso é mais complicado.

    Não vamos diminuir nenhum framework existente no mercado, todos tem os seus prós e contras

      Wesley

      Não concordo, acho que o ZF é bom tranto como full stack e também com classes desacopladas.

Ítalo Lelis de Vietro

Então pessoal, é como o Alexandre disse, o projeto está no começo ainda, por isso estou divulgando, é para conseguir uma ajuda no desenvolvimento.
Só para constar, tem uma ferramenta que gera os models automaticamente através do seu banco de dados, mas como não era o foco deste artigo ainda não falei sobre ela, vou aborda-la em outros artigos.

Obrigado pelo apoio pessoal.

    Gustavo Andrade

    Parabens pelo projeto!

    Concordo com o Alexandre ^^

      Ítalo Lelis de Vietro

      Muito obrigado Gustavo, bom saber que alguém gostou do projeto

sobrinho

vixiiii ta parecido com neos kkkk

    Ítalo Lelis de Vietro

    Realmente algumas coisas se parecem, mas no desenrolar da estrutura e componentização fica bem evidente a diferenciação.

sobrinho

a documentação é em ingles mesmo?

Ítalo Lelis de Vietro

Já estou trabalhando na nova documentação em português, comecei com ela em inglês pois eu só tinha o apoio da comunidade CAKE-PHP, mas agora temos apoio da comunidade PHP-PB e CAKE-PHP, teremos a documentação nas duas linguagens.
Acredito que a versão em português esteja no ar até o domingo.

    sobrinho

    pq um framework brasileiro com documentação em ingles n tem nenhuma vantagem….. rs

      Ítalo Lelis de Vietro

      Certíssimo, exatamente por isso procurei ajuda em comunidades brasileiras, consegui recentemente essa ajuda e já estamos correndo para entregar uma documentação completa em Português e Inglês

João Neto

Vamos valorizar o trabalho do Italo, Brasileiro, construiu um framework sem nenhum recurso, e está disponibilizando gratuitamente. Em vez de criticar, deveríamos incentivá-lo e até mesmo ajudá-lo, por que não!!!

rodolfo

Eu retiro o que eu disse no primeiro comentario

Eu acho o zend muito bom.. mas qualquer iniciativa de programação deve ser incentivada..

ate pq eu nao programo mais que o Italo

Boa sorte com seu projeto!!!

fernando

Todo projeto Brasileiro deve ser incentivá-do e parabenizando ainda mais cedo disponibilizando gratuitamente!
Parabéns Ítalo e boa sorte no projeto;)

Flavio

Parabéns Italo pela iniciativa. Como disseram antes, projeto Brasileiro e deve ser incentivado.

Cleiton França

Parabéns bela iniciativa

Guilherme Oderdenge

Cara, muito nobre da sua parte meter a cara e desenvolver algo assim para a comunidade. Me entristece saber que existem pessoas mal agradecidas e plumitivas que fazem qualquer blame contra a sua honrosa atitude.

Não se deixe levar por elas, cara. Eu achei genial a framework e com certeza vou deixar minha marquinha nela.

De verdade, parabéns!

    Ítalo Lelis de Vietro

    Obrigado Guilherme,
    Realmente minha intenção é sempre ajudar a comunidade, até por que conhecimento é de todos.
    Fico muito grato a todos que gostaram do projeto e querem ajudar também.
    Vou continuar sempre melhorando ele para poder ajudar a todos.
    Vlw galera.

Alexandre Muniz

Kra..parabens pela iniciativa..acho valido pra caramba sua iniciativa..grandes ideias surgem apartir de projetos assim..fico decepcionado com “programadores” que são contrários a novidades e não querem sair do seu mundinho..com seu frameworkzinho..fazendo seu trabalhinho…gente assim NÃO é programador..simplesmente..excelentes COPIADORES de código…torço para que o projeto dê certo..

Nakassony Venâncio Bernardo

Parabens pela iniciativa Ítalo, não sou brasileiro (sou angolano) mas pelo pouco que vi deste post, vejo que tem tudo para ser uma grande solução brasileira, nunca vi antes um framework PHP que usasse annotation para definir relacionamento entre tabelas e outras coisas mais, isto para mim é uma grande novidade, eu também tenho/desenvolvo/mentenho um framework como consequência da minha experiência e do muito trabalho que tinha a cada novo projecto, desde já saíba que baixarei o teu Framework e estudarei de modos a que possa contribuir bem como enriquecer também o meu, infelizmente aqui em Angola ainda não existe esta coisa de comunidade, e como consequência não consigo ter uma documentação e desenvolver ao mesmo tempo, mas farei o possível para também passar o que tenho, Parabens e força…

    Ítalo Lelis de Vietro

    Obrigado Nakassony, é muito bom saber que você gostou da proposta,
    espero que as soluções implantadas no EasyFw possam ajuda-lo em seu desenvolvimento.

    Qualquer dúvida é só falar comigo, ficarei feliz em ajudar.

    Abraços.

Franklim

Ítalo, parabéns pela inciativa. Se pudesse certamente ajudaria no que vc precisasse.
Uma dica para proximas versões…..
- Sobre a Estrutura de diretórios, as novas versões dos FW’s mais utilizados( por exemplo ZF2, projetos para o Prado entre outros ) estão fugindo dessa estrutura proposta pelo Easy, que acredito estar baseada no Symfony. Imagino que a disposta pelo Zf2 é tendencia para a programação PHP em curto a medio prazo.
-Quanto ao Dependency injection e gerencimento de eventos, gerenciamento de serviço, quando os programadores PHP, lógico aqueles que não sabem, aprederem e notarem a diferença que esses conceitos traz à aplicação e ao desenvolvimento de projetos, principalmente aos projetos de média e alta complexidade, certamente eles não abrirão mão de usar essas ferramentas. Isso pode ser um risco para o Easy.
Força…

    Ítalo Lelis de Vietro

    Franklim, muito bom você ter dado essas dicas.
    Até a versão final do EasyFw já vai ter algumas coisas que você falou,
    estou trabalhando para integrar o Composer para injeção de dependência, ele já está quase pronto, também estou construindo um skeleton application para iniciar o projeto.
    Quanto a estrutura das pastas eu me basei no CakePHP, mas já estou alterando algumas coisas para se adaptar a nova estrutura dos frameworks.
    Muito obrigado pelo seu feedback, gostei mesmo.

Paulo

Ta parecido com o Cakephp , claro que é diferente. Mas concordo com todos o importante é a iniciativa.

    Ítalo Lelis de Vietro

    Exatamente Paulo,
    ele tem muitas coisas parecidas com o CakePHP, pois no inicio do projeto nós tinhamos apenas a colaboração deles.

    Agora na nova versão as coisas estão mudando e ficando mais flexíveis, mais fáceis de mexer integrar e interagir.

    Espero que goste das novidades. =)

RFT

JA OUVIRAM FALAR NO SCRIPTCASE… ESSE SIM É UM FRAMEWORK QUE LHE DA UMA EXPLOSÃO DE DESENVOLVIMENTO RAD.
AT.

Daniel Ribeiro Gomes

O mais impressionante é saber que este artigo foi aprovado pela redação do portal…

    Ítalo Lelis de Vietro

    Daniel,

    Você poderia falar do que não gostou?
    Dar novas sugestões?

    Obrigado.

      Daniel Ribeiro Gomes

      Amigo, não é questão de gostar ou não gostar. Nem cheguei a abrir o site do seu framework. A questão é que este portal não serve, ou não deveria servir, para este tipo de publicação.

        Alê Borba

        Daniel,

        O iMasters é feito pela comunidade para a comunidade. Se o projeto é aberto, interessante(pode ver pelos outros comentários) e visa agregar valor e conhecimento porque não deveríamos publicar?

    Joao Silva

    Invejoso… O Imasters devia bloquear utilizadores como você.

Carlos Antônio

Ítalo, não ligue para as pessoas que dizem que já tem Framework melhor, que já usam e não mudam, eles não sabem o que dizem.

Parabéns pelo projeto, não me disponho a ajudar por questões de tempo, estou envolvido em alguns projetos pessoais, mas vou acompanhar o projeto de perto.

Sua iniciativa é louvável e muito bem vinda, como sempre brasileiros negativando tudo que veem, por acharem que brasil não tem gente competente, estas pessoas que são incompetentes…

    Ítalo Lelis de Vietro

    Carlos,

    agradeço muito o seu apoio, é muito importante para mim.
    Espero que você goste das novidades que estão por vir, e quando tiver um tempinho e quiser opinar no desenvolvimento ficarei feliz em ouvi-lo.
    Obrigado.

xiris

Parabéns pela iniciativa!
Deveríamos ter mais brasileiros compartilhando conhecimentos do que “brasileiros” que apenas criticam, sem acrescentar nada.

“Forkearei” no git para dar uma olhada!

Abraços e sucesso!

Ronaldo de Alcântara

Ei, é uma iniciativa BRASILEIRA, meu povo! Parabéns pelo trabalho. Ítalo, gostaria de opinar em algumas coisas, entrarei em contato para conversarmos sobre alguns pontos após analisar o Framework, ok?

    Ítalo Lelis de Vietro

    Ronaldo,
    fico muito feliz em poder contar com sua ajuda,
    o feedback de vocês vai melhorar cada vez mais o framework.
    Muito obrigado pela ajuda e fico aguardando seu contato.

Alvaro

Mandou bem meu jovem! Parabéns pela iniciativa. Que este seja mais um dos inúmeros projetos de sucesso que ainda veremos aqui no Brasil.

Douglas Dreer

Ítalo, e os casts, você tem destas versões mais recente ?

    Ítalo Lelis de Vietro

    Então Douglas,
    estou trabalhando nos novos casts para colocar no site,
    vou abordar como criar uma aplicação completa abrangendo API REST,
    oAuth e integrações com redes sociais utilizando o EasyFw, acho que no dia 06 de novembro está no ar.

Mauricio

Ítalo, Acho sua iniciativa fantástica porem tenho algumas duvidas, tentei executar essa “Passo a Passo” e encontrei algumas dificuldades:

1 – quando vc exemplifica o código as informações de criação da classes estão todas juntas. Exp: classCategoriasControllerextendsAppController

2 – Tentei executar apos a criação de todo o projeto : http://localhost/livraria o mesmo da erro.

3 – A conexão com os Banco é PDO ?

4- teria alguma problema de estar usando o Zende Server CE ?

Abs

    Ítalo Lelis de Vietro

    Então Mauricio,
    Esse problema das classes juntas foi o wordpress que gerou, eu vou corrigir ele, obrigado por ter avisado.
    O erro que deu na sua aplicação com certeza foi por causa da renderização do wordpress, eu vou corrigir isso e vai dar certo.
    A conexão é feita via PDO, apesar de que pode ser utilizado bibliotecas como o MySQli.
    Nãao existe nenhum problema em usar o Zend Server, eu já utilizei e tudo funcionou tranquilamente, apesar que é sempre bom ver se o servidor está com o mod_rewrite ativado e com Allow Overwrite All
    Muito obrigado pelos toques e vou resolver esse problemas no artigo agora.

      Mauricio

      Italo, Bom dia, não sei se o erro foi por causa do wordpress pois em minha aplicação coloquei a codificação corretamente “class CategoriasController extends AppController” e apache esta configurado com Allow Overwrite All que mudei no conf. Sei que as vezes algumas coisas parecem obvias, mas seria interessante disponibilizar o codigo fonte e colocar os caminhos das URL´s na matéria.

      Abs.

        Ítalo Lelis de Vietro

        Ah Mauricio realmente, falha minha não ter colocado o fonte, mas já criei um repositório no GitHub com o fonte completo. É só acessar https://github.com/italolelis/livraria e clonar o repositório no seu servidor, clonando ele automaticamente o EasyFw já vem junto.
        Caso você apenas baixe o código (sem clonar), dai você precisa baixar o framework também e coloca-lo na pasta vendor com o nome “easyframework”.

        Pronto lá está todo o código desse artigo, irei ficar atualizando o projeto para cada artigo

Eloir Cerchiari

Louvo a decisão de Criar um Framework, eu mesmo já me envolvi na criação de um, aprendi muito com isto, pratiquei bastante a codificação, porém depois que conheci o Symofny 2, desisti de tudo, hoje prefiro escrever um bundle para o Symfony do que me esforçar com um framework que vou ter que sempre estar evoluindo detalhes nos quais não estou afim.

Renato Leite

Parabéns Italo, estou desenvolvendo um Framework também para uso interno da minha empresa e não é mole não, pessoal fica criticando mas não sabe o trabalho que dá. Acho que o pessoal que fica criticando deveria era ajudar o projeto e tentar incrementar suas ideias.

Como ja tinha falado, parabéns pela sua inciativa, admiro seu esforço, não desista e boa sorte com o projeto!

    Ítalo Lelis de Vietro

    Exatamente Renato,
    criar um Framework não é algo simples, mas com ajuda e apoio da comunidade tenho certeza que dará certo.
    Boa sorte com o seu projeto também.

Bruno Fernando

Parabéns, achei bem massa….

Alexsandro Souza

Parabens pela iniciativa, e boa sorte com seu projeto.
Merece uma testada

Gabi Tardivo

Parabéns Ítalo!
Vou testar em casa :)

Apesar de ser “nova” na área, espero poder te ajudar também!

Boa sorte!

    Ítalo Lelis de Vietro

    Obrigado pelo apoio Gabi,
    espero que esse framework possa lhe ajudar em sua dia-a-dia de trabalho.
    Qualquer dúvida é só falar ok?

Marcos

Parabéns pela iniciativa do projeto! Vou testar e lhe enviar minhas considerações.
Não ligue para os comentários negativos. É inveja!

rominmendes@gmail.com

Ainda não testei, mas parabéns pois toda iniciativa deve ser reconhecida!!

Sidney

Já “estrelei” o easy no github. Assim que possível vai ser um prazer poder ajudar.
T+

[sidtj]

    Ítalo Lelis de Vietro

    Obrigado Sidney,
    Seu apoio vai ser de grande ajuda mesmo.
    Abraços

      Thymochenko

      cara, parabenizo a sua idéia, criar um framework é bem complicado. digo isso por que também desenvolvi um fw e o utilizo em aplicações pesadas com milhares de acessos. Mas me deparei com os seguintes questionamentos:

      A grande vantagem da criação de um framework, é ele obter vantagens e algo novo em relação aos outros frameworks do mercado.

      É necessário criar testes comparativos em relação a outros frameworks, isso é inevitável.

      PHP mesmo na 5.4, ainda tem um consumo razoável de memória usando muitos objetos.

      dentre outros, só para constar, conheci um frame, chamado phalcon PHP, escrito inteiramente em C. usa MVC e as melhores práticas de desenvolvimento, vence todos os frames php no quesito desempenho e ainda é muito elegante, como uma DSL.

      no mais boa sorte. precisamos de um fw nacional de peso. mas sugiro também um bom projeto para reaproveitar aquilo que já existe, sem reinventar a roda.

Daize

Parabéns Ítalo. É muito gratificante ver o trabalho de um brasileiro sendo gerado e recebendo apoio dos colegas. Vc vai encontrar obstáculos, mas olhe para frente, veja seu objetivo maior e vá adiante. Vc merece e terá a vitória! Deus te abençoe…

ítalo

Cara parabéns pela iniciativa de divulgação , criticar é muito simples , basta ignorar esse tipo de critica idiota , como já foi dito anteriormente la fora o pessoal dar a maior força , incetiva e tal e aqui é essa falta de respeito com as pessoas (e seus trabalhos), é uma pena .
Mais uma vez , parabéns por sua iniciativa !

Bruno Gallo

ìtalo estou precisando de ajuda com um script, será que você se interessa em me ajudar?

bruno@galloti.eti.br

já lhe enviei um e-mail pelo gmail, caso receba como spam o e-mail foi brunogalloti@gmail.com

Maycon

Parabéns pela iniciativa, mto bacana. Não se abale pelas críticas, elas sempre existirão. Assim que tiver um tempinho vou lá no github e se possível quero ajudar.

Qual a sua opinião?