Dúvida Inserção - Model, DataMapper, DbTable, DomainObject - ZFDay - School of Net

156 views
Skip to first unread message

Willians - Icefusion

unread,
Oct 16, 2012, 1:45:52 PM10/16/12
to zfbr...@googlegroups.com
Eu estou montando um sistema com o Zf baseado no ZFDay feita pela school of net...
porém não esta gravando o registro quando eu tento executar o post no form do cadastro.
Ele passa pelo insert do datamapper mas não insere no banco de dados.

DataMapper.
class Application_Model_CategoriasMapper extends Icefusion_Db_DataMapperAbstract {
     protected $_dbTable = "Application_Model_DbTable_Categorias";
     protected $_model = "Application_Model_Categorias";
     
     protected function _insert(Icefusion_Db_DomainObjectAbstract $obj) {
        try {
            $dbTable = $this->getDbTable();
            $data = array(
                'name' => $obj->getName(),
                'description' => $obj->getDescription(),
                'url' => $obj->getUrl(),
                'meta-description' => $obj->getMeta_description(),
                'keywords' => $obj->getKeywords(),
                'top_id' => $obj->getTop_id(),
                'shop_id' => $obj->getShop_id(),
                'status' => $obj->getStatus(),
                'order' => $obj->getOrder(),
                'update' => $obj->getUpdate()                
            );                  
            $dbTable->insert($data);            
            return true;
        } catch (Zend_Exception $e) {
            return false;
        }
    }

    protected function _update(Icefusion_Db_DomainObjectAbstract $obj) {
        try {
            $dbTable = $this->getDbTable();
            $data = array(
                'name' => $obj->getName(),
                'description' => $obj->getDescription(),
                'url' => $obj->getUrl(),
                'meta-description' => $obj->getMeta_description(),
                'keywords' => $obj->getKeywords(),
                'top_id' => $obj->getTop_id(),
                'shop_id' => $obj->getShop_id(),
                'status' => $obj->getStatus(),
                'order' => $obj->getOrder(),
                'update' => $obj->getUpdate()           
            );            
            $dbTable->update($data, array('id = ?' => $obj->getId()));
            return true;
        } catch (Zend_Exception $e) {
            return false;
        }
    }   
}


DbTable
class Application_Model_DbTable_Categorias extends Zend_Db_Table_Abstract {

    protected $_name = 'mkx_categories';

}

Model
class Application_Model_Categorias extends Icefusion_Db_DomainObjectAbstract {

    protected $_mapper = "Application_Model_CategoriasMapper";
    private $name = null;
    private $description = null;
    private $url = null;
    private $meta_description = null;
    private $keywords = null;
    private $top_id = null;
    private $shop_id = null;
    private $status = null;
    private $order = null;
    private $update = null;
    
    public function getName() {
        return $this->name;
    }

    public function setName($name) {
        $this->name = $name;
    }

    public function getDescription() {
        return $this->description;
    }

    public function setDescription($description) {
        $this->description = $description;
    }

    public function getUrl() {
        return $this->url;
    }

    public function setUrl($url) {
        $this->url = $url;
    }

    public function getMeta_description() {
        return $this->meta_description;
    }

    public function setMeta_description($meta) {
        $this->meta_description = $meta;
    }

    public function getKeywords() {
        return $this->keywords;
    }

    public function setKeywords($keywords) {
        $this->keywords = $keywords;
    }

    public function getTop_id() {
        return $this->top_id;
    }

    public function setTop_id($topid) {
        $this->top_id = $topid;
    }

    public function getShop_id() {
        return $this->top_id;
    }

    public function setShop_id($shopid) {
        $this->top_id = $shopid;
    }

    public function getStatus() {
        return $this->status;
    }

    public function setStatus($status) {
        $this->status = $status;
    }

    public function getOrder() {
        return $this->order;
    }

    public function setOrder($order) {
        $this->order = $order;
    }
    
    public function getUpdate(){
        return $this->update;
    }
    
    public function setUpdate($update){
        $this->update = $update;
    } 

}

Controller

class Admin_CategoriasController extends Zend_Controller_Action {

    public function init() {
        if (!Zend_Auth::getInstance()->hasIdentity()) {
            return $this->redirect('/admin/auth');
        }
    }

    public function indexAction() {
        $form = new Icefusion_View_Helper_Admin_Forms_Categorias();
        $this->view->form = $form->getFormCadastro();
        $this->view->formExp = $form->getFormExportar();

        /* $categorias = new Application_Model_Categorias();
          var_dump($categorias->fetchAll());exit; */

        $report = new Icefusion_View_Helper_Admin_Reports_Categorias();
        $this->view->report = $report->getReportTable();
    }
    
    public function saveAction(){
        $form = new Icefusion_View_Helper_Admin_Forms_Categorias();
        if ($this->_request->isPost()) {
            $data = $this->_request->getPost();            
            if ($form->isValid($data)) {                
                $categoria = new Application_Model_Categorias($data);
                $categoria->save();                
                $this->_redirect("admin/categorias/");
            }
        }
        $this->view->form = $form;                
    }
}

DataMapperAbstract

abstract class Icefusion_Db_DataMapperAbstract {

    private static $_db = null;
    protected $_dbTable = null;
    protected $_model = null;

    public function getDb() {
        if (is_null(self::$_db))
            self::$_db = Zend_Db_Table::getDefaultAdapter();
        return self::$_db;
    }

    public function getDbTable() {
        $this->_dbTable = new $this->_dbTable;
        if (!$this->_dbTable instanceof Zend_Db_Table_Abstract)
            throw new Exception('Tipo inválido de tabela');
        return $this->_dbTable;
    }

    public function save(Icefusion_Db_DomainObjectAbstract $obj) {                
        if (is_null($obj->getId())){                               
            $this->_insert($obj);
        }else{                        
            $this->_update($obj);
        }
    }

    public function fetchAll(Zend_Db_Select $select = null) {        
        $dbTable = $this->getDbTable();        
        $db = $this->getDb();      
        $data = (!is_null($select)) ? $db->fetchAll($select) : $dbTable->fetchAll();   
        $dataObjArray = array();
        foreach ($data as $row){          
            $dataObjArray[] = $this->_populate($row);
        }
     
        return $dataObjArray;
    }

    public function find($id) {
        $result = $this->getDbTable()->find((int) $id);
        if (0 == count($result))
            return false;
        $row = $result->current();
        return $this->_populate($row);
    }

    public function getAsArray($id) {
        $result = $this->getDbTable()->find((int) $id);
        if (0 == count($result))
            return false;
        $row = $result->current();
        return $row->toArray();
    }

    public function delete($id) {
        $result = $this->getDbTable()->find((int) $id);
        if (0 == count($result))
            return false;
        $row = $result->current();
        return $row->delete();
    }

    protected function _populate($data) {        
        $obj = new $this->_model;        
        foreach ($data as $k => $v) {
            $method = 'set' . ucfirst($k);            
            if (!method_exists($obj, $method)) {                
                throw new Exception('Invalid property - ' . $method);
            }
            $obj->$method($v);
        }
        return $obj;
    }

    public function getLastInsertId(){
        $db = $this->getDb();
        return $db->lastInsertId();
    }

    abstract protected function _insert(Icefusion_Db_DomainObjectAbstract $obj);

    abstract protected function _update(Icefusion_Db_DomainObjectAbstract $obj);
}

DomainObjectAbstract
abstract class Icefusion_Db_DomainObjectAbstract {

    private $id = null;
    protected $_mapper = null;

    public function __construct(array $options = null) {        
        if (is_array($options))
            $this->setOptions($options);
    }

    public function setOptions(array $options) {
        $methods = get_class_methods($this);
        foreach ($options as $key => $value) {
            $method = 'set' . ucfirst($key);
            if (in_array($method, $methods))
                $this->$method($value);
        }
        return $this;
    }

    public function setId($id) {
        if (!is_null($this->id)) {
            throw new Exception('ID nao pode ser alterado');
        }
        $this->id = $id;
    }

    public function getId() {
        return $this->id;
    }

    public function getMapper() {        
        $m = new $this->_mapper;        
        return $m;
    }

    public function save() {
        $this->getMapper()->save($this);
    }

    public function fetchAll() {         
        return $this->getMapper()->fetchAll();
    }

    public function find($id) {
        return $this->getMapper()->find($id);
    }

    public function getAsArray($id) {
        return $this->getMapper()->getAsArray($id);
    }

    public function delete($id) {
        return $this->getMapper()->delete($id);
    }

    public function getLastInsertId(){
        return $this->getMapper()->getLastInsertId();
    }
}

Willians - Icefusion

unread,
Oct 22, 2012, 3:24:09 PM10/22/12
to zfbr...@googlegroups.com
alguém ja desenvolveu desta forma?

Wesley Willians

unread,
Oct 22, 2012, 3:26:11 PM10/22/12
to zfbr...@googlegroups.com
Willians,

Primeiramente peço para que coloque SEMPRE códigos em um pastebin ou gist.

Você já tentou realmente debugar o código. Provavelmente o erro está na saída para não estar inserindo.
--
Essa mensagem faz parte do grupo "zfbrasil" no Google Groups.
Para escrever neste grupo, envie um email para zfbr...@googlegroups.com
Para se desligar do grupo, envie um email para zfbrasil-u...@googlegroups.com
Mais informações, visite o grupo em http://groups.google.com/group/zfbrasil?hl=pt-BR

Anderson Henrique

unread,
Oct 24, 2012, 6:34:46 AM10/24/12
to zfbr...@googlegroups.com
Você ta inventado a roda, o Zend fornece todos os recursos que você implementou. Você só precisa do DbTable da table do Form e do Controller.
 
Você está usando MVC do Zend ou usando Standalone?
2012/10/22 Willians - Icefusion <icef...@icefusion.com.br>

principe...@gmail.com

unread,
Oct 24, 2012, 6:42:17 AM10/24/12
to zfbr...@googlegroups.com
nao seria melhor ler o livro do martin fowler?

2012/10/24 Anderson Henrique <qualn...@gmail.com>

Wesley Willians

unread,
Oct 24, 2012, 7:54:18 AM10/24/12
to zfbr...@googlegroups.com
Não está inventando a roda não.

O que ele está fazendo é um data mapper, BEM diferente do padrão Data TableGateway.

Seria legal ele utilizar doctrine.

Anderson Henrique

unread,
Oct 24, 2012, 7:28:58 PM10/24/12
to zfbr...@googlegroups.com

É só usar DbTable_Row. Eu estava desenvolvendo um projecto do zero, usei datamapper, domainobject, strategy, agora com Zend não preciso de nada disso mais. Uso DbTable e para algumas específicidades DbTable Row.

Wesley Willians

unread,
Oct 24, 2012, 8:22:58 PM10/24/12
to zfbr...@googlegroups.com
Mesmo assim, criar uma camada mapper é MUITO útil para que você consiga prover isso como serviço.

Sinceramente, minha recomendação seria trabalhar com Doctrine.
Trabalhar puramente com DbTable, em minha opinião não rola. Principalmente pq a maioria das pessoas (não estou generalizando), coloca as regras de negócio dentro do dbtable.

Anderson Henrique

unread,
Oct 24, 2012, 9:07:50 PM10/24/12
to zfbr...@googlegroups.com

Isso é por não conhecer os recursos do framework vai inchando o projecto com vários recursos redundantes.

Aí q se conhece quem é o bom programador pro gambiarrista. Principalmente na separação correta das funcionalidades.

Wesley Willians

unread,
Oct 24, 2012, 9:16:22 PM10/24/12
to zfbr...@googlegroups.com
Anderson,

Aparentemente como você é um ÓTIMO programador (da forma que vc fala).

Contribua para comunidade como você separa as funcionalidades em seu projeto Zend Framework =)

Silas Ribas Martins

unread,
Oct 24, 2012, 9:39:10 PM10/24/12
to zfbr...@googlegroups.com
Salve,

Creio que a maioria das coisas utilizadas são redundantes. Pq? DbTable, Doctrine e tal usam o PDO como base, você ja tem algo que trabalha com o banco de dados. Por que criar um conjunto de classe?  Se for ser simplista, é redundancia. Mas se for pensar a longo prazo e nos detalhes, não.

Pq programar em PHP, se com assembly é direto com a máquina? Voce cria uma linguagem que vai ser transformada em um codigo que dai vai conversar com a máquina. Mas facilita.

Num projeto grande, seja de quantidade de modulos, integracoes, tarefas e etc, onde tem muitas regras e tal, o DbTable sozinho vai funcionar, claro, como o PDO puro tambem. Mas em organizacao, manutenabilidade e outros, que estao ai para ajudar a nao complicar muito no longo prazo, um Doctrine ajuda, bem como uma camada de negócios e outras técnicas.

Mas claro que tu pode criar um sistema financeiro mexendo com bilhoes em transacoes usando so assembly, ou PHP com PDO. Mas se por uma camada de negocios, outra so com a parte de banco de dados, outra para envio de notificacoes e etc, nao fica melhor?

O problema é querer que uma solução seja a definitiva. Não existe bala de prata!

-- 
Silas Ribas Martins
55 71 9155.0533 / 8892.6095

Ghean

unread,
Oct 25, 2012, 10:36:26 AM10/25/12
to zfbr...@googlegroups.com
Conhecer todos os recursos do framework não faz de vc um programador melhor que outros, assim como também não conhecer lhe faz ser um mal programador.
;)

Anderson Henrique

unread,
Oct 26, 2012, 4:39:50 AM10/26/12
to zfbr...@googlegroups.com

Não quero aparecer, mas estou fazendo treinamento oficial da Zend, então sobre os recursos do fw estou por dentro. Tenho grande experiência com OO,alem de estar estudando bastante DP. Estudando e praticando, pois trabalho como analista desenvolvedor php.

Quando ajudar no fórum, vi q tinha um tópico sobre isso e me candidate para ajudar, mas até agora não fui contactado pelo administrador do fórum.

Espero q sejam úteis minhas contribuições da mesma forma q muito me ajudaram nestes mais de 10 anos q trabalho com TI.

Anderson Henrique

unread,
Oct 26, 2012, 5:10:15 AM10/26/12
to zfbr...@googlegroups.com
Então Silas, acho que primeiro tem que se entender o propósito de um framework. Um fw não é simplesmente uma biblioteca de classes (apesar do Zend no modo standalone prover isso), mas sim fornercer um mecanismo no qual é possível fazer os componentes interagirem (seguindo padrões de projetos, principalmente enterprise). O que o Zend e o Doctrine faz com PDO é encapsular sua execução para integrá-lo com seus outros componentes, já que este é atualmente a melhor ponte até o banco de dados. 

Uma característica do Zend é sua facilidade de integração com vários outros fw, mas só é necessária caso você já tenha um código legado que queira aproveitar, caso contrário o mesmo fornece todos os mecanismos que você necessita para criar sistemas de grande porte, sem a necessidade (a priori) de outras ferramentas, senão não seria uma ferramenta útil.

Eu finalmente descobri (pra mim) o que vem a ser um framework. É uma ferramenta que num determinado contexto (web) fornece, pelo menos (kernel), todos os componentes necessários para resolução dos problemas de um projeto sem ter que ficar reinventando a roda (como um S.O. que fazer a ponte entre o usuário e o hardware). A partir daí são regras de negócio. 

E de todos os FWs que usei o que mais conseguiu prover um ambiente de desenvolvimento das minhas aplicações foi o Zend. Tenho só que agradecer a todos os envolvidos neste projeto. Eu mesmo queria ter o privilegio de um dia participar.

Anderson Henrique

unread,
Oct 26, 2012, 5:14:46 AM10/26/12
to zfbr...@googlegroups.com
Discordo totalmente Ghean, conhecer todos os recursos do fw te faz sim melhor programador do que os outros (até porque chegar neste nível de conhecimento não é fácil), pelo menos neste contexto sim. E sabe porquê? Porque você vai saber o que fazer, como fazer e quando fazer! 

Se você não conhece o que mexe, seja fw seja linguagem, é complicado, como você vai conseguir resolver os problemas? Você vai se perder! Então não tem lógica o que você falou!

Em 25 de outubro de 2012 12:36, Ghean <gilbe...@gmail.com> escreveu:
Conhecer todos os recursos do framework não faz de vc um programador melhor que outros, assim como também não conhecer lhe faz ser um mal programador.
;)

Wesley Willians

unread,
Oct 26, 2012, 8:55:08 AM10/26/12
to zfbr...@googlegroups.com
Anderson,

Não quero tornar isso aqui uma guerra de egos e nem de flames. Trabalho há MUITO tempo com Zend Framework. Conheço quase todas as classes de dentro para fora.
O Zend\Db não é a melhor classe do mundo e falta um mapper nela. Você sabe para que server mapper? Ninguem está inchando um framework. Você sabe a utilidade de uma camada de serviço?

Pois então, trabalhar com datamapper, ter lazy load das entidades, e fazer a distribuição de responsabilidades são os pontos principais. A Zend\Db, infelizmente não faz metade disso. Tanto que na versão dois ela foi MUITO modificada.

Acredito que você não trabalhe com ela de forma simplista e sim simplória, pois da forma que você fala, basta ter uma dbtable e um row na mão e que você faz tudo. Talvez você nunca teve que disponibilizar uma API RESTful e foi perceber que usando simploriamente a DBTable e não ter uma service layer fez muita falta ou coisas do tipo (posso estar enganado).

Quando você diz separar o zend em funcionalidades eu discordo totalmente. Na minha opinião, as classes bem como o design da aplicação devem ser separados por responsabilidade e nesse ponto ter um um local que você resolve o seu domínio, entidades a qual façam e possa ainda compartilhar serviços, entre outros outros.

Na minha opinião, acho que cada projeto deve ser desenhado da forma que consigamos resolver o problema desse projeto; Também discordo quando você fala do bom e mau programador.

Acho que a diferença entre o bom e o mau programador é que quando o mau se acha muito bom, ele quer fazer coisas que não são da alçada dele, como design e arquiteturas de aplicação. 

Outra coisa, você não precisa ser contatado pelo administrador do forum para colaborar, faça posts em blogs, artigos, mostre sua famosa estrutura (que não é inchada), para nossos amigos, acho que isso sim vai fazer alguma diferença.
Falar por si só não ajuda.

Acredito que todos aguardamos ansiosamente vossas contribuições.

Silas Ribas Martins

unread,
Oct 26, 2012, 9:27:04 AM10/26/12
to zfbr...@googlegroups.com
Salve,

Rapaz conhecer tudo, se isso for minimamente possível, só lhe diz que você vai se sair melhor e mais rápido das situações que esse "tudo" cobre. Mas o ZF não suporta varias coisas. Mas, no meu ver, o que faz um grande programador é a vontade de saber ir atrás da solução, não importa se saber 10% ou 100%, sem isso, tu é um programador.

E não acredito que alguém saiba tudo de algo, seja um framework, uma linguagem de programação ou qualquer outra coisa. Mas isso é minha opinião.

2012/10/26 Wesley Willians <wesleyw...@gmail.com>



--
Atenciosamente,
Silas Ribas - Salvador/BA

71 8892-6095 ( Celular OI ) / 71 9155-0533 ( Celular TIM )
71 3377-4446 ( recado ) / 71 3377-4489 ( recado )

sil...@gmail.com ( e-mail ) / sil...@hotmail.com ( msn )
silasrm ( skype ) / @silasribas
Blog:silas.theducks.com.br
Site: www.silasribas.com.br
Linux Distro - *Ubuntu / Linux User Registered: 383742

"Quem quer vencer um obstáculo deve armar-se da força do leão e da prudência da serpente." [Píndaro]

"Triste época em que vivemos, onde é mais fácil desintegrar um átomo do que quebrar um preconceito" [Albert Einstein]

"Você poderia me dizer, por favor, qual caminho eu devo seguir?"
"Isto depende muito de onde você deseja chegar."
[Lewis Carroll, Alice no País das Maravilhas]

Gilberto Jean

unread,
Oct 26, 2012, 9:48:59 AM10/26/12
to zfbr...@googlegroups.com
Conhecer os recursos do fw te faz uma pessoa com maior CONHECIMENTO da ferramenta do que os demais.
Saber como utiliza-los, isso sim faz a diferença.

Como o Wesley citou, e tbm concordo, o Zend\Db deixa muita a desejar diante de algumas coisas que sua aplicação irá necessitar.
Por conhecer o fw posso chegar a conclusão que o Zend\Db não é suficiente diante de certas funcionalidades especificas de sua aplicação.

Para isso acaba-se criando algumas camadas extras, como mappers, factories, service layers, etc...

Para funcionalidades triviais o Zend\Db basta, mas para funcionalidades que necessitam de regras de negócios um pouco mais complexas ai fica complicado.

Diante de minha experiencia, usar somente o Zend\Db torna as tarefas um pouco lenta e não tão ágil.

A utilização do Doctrine, por exemplo, deixam as coisas um pouco mais ágeis.

Gilberto Jean

unread,
Oct 26, 2012, 10:12:04 AM10/26/12
to zfbr...@googlegroups.com
Willians conseguiu resolver seu problema?


Em terça-feira, 16 de outubro de 2012 14h45min53s UTC-3, Willians - Icefusion escreveu:

Zaedy Sayão

unread,
Oct 26, 2012, 10:53:33 AM10/26/12
to zfbr...@googlegroups.com
O cara está basicamente dizendo que o Zend\Db é o melhor dos mundos e que DataMapper não tem utilidade.

Só vai contra toda a comunidade de todas as linguagens.

Mas se ainda assim tiver bons argumentos e conseguir demonstrar isso, seria ótimo, mas não vi nada sobre.

[]s

--
Essa mensagem faz parte do grupo "zfbrasil" no Google Groups.
Para escrever neste grupo, envie um email para zfbr...@googlegroups.com
Para se desligar do grupo, envie um email para zfbrasil-u...@googlegroups.com
Mais informações, visite o grupo em http://groups.google.com/group/zfbrasil?hl=pt-BR



--
Zaedy Dantas Sayão
Graduando em Ciência da Computação DCC/UFRJ

Anderson Henrique

unread,
Oct 26, 2012, 11:42:03 AM10/26/12
to zfbr...@googlegroups.com

Acho melhor eu continuar minha vida, não vou ficar discutindo com pessoas q distorcem as palavras e julgam pelo mal para parecerem melhores. Que adianta contribuir em um lugar assim, os comentários nunca serão bons o bastante.

Wesley Willians

unread,
Oct 26, 2012, 12:58:44 PM10/26/12
to zfbr...@googlegroups.com
Anderson,

A questão não é essa, você só está falando não está mostrando nada.
Mostre a estrutura de sua aplicação ZF para contribuir com o pessoal.

Zaedy Sayão

unread,
Oct 26, 2012, 1:16:21 PM10/26/12
to zfbr...@googlegroups.com
Como eu falei:

>Mas se ainda assim tiver bons argumentos e conseguir demonstrar isso, seria ótimo, mas não vi nada sobre.

Só não vi nenhum argumento para as coisas que vc falou. Basta explicar e dar argumentos, nada demais.

[]s

2012/10/26 Anderson Henrique <qualn...@gmail.com>

Anderson Henrique

unread,
Oct 26, 2012, 1:53:18 PM10/26/12
to zfbr...@googlegroups.com

Tenho argumentos, entretanto, mesmo que eu me esforçe o máximo para tentar mostrar a concistencia do minha argumentação, não vai adiantar, pois existe um barreira que devido ao contexto atual os impedem ao menos de levá-los em consideração. Até porque vocês se bastam.

Diego Armando

unread,
Oct 26, 2012, 2:10:21 PM10/26/12
to zfbr...@googlegroups.com
Deitou!

Diego Armando

unread,
Oct 26, 2012, 2:15:05 PM10/26/12
to zfbr...@googlegroups.com
primeiro aprenda a escrever, depois você estuda programação...

Anderson Henrique

unread,
Oct 26, 2012, 2:25:04 PM10/26/12
to zfbr...@googlegroups.com

A perfeição em pessoa falando. Kkkkkkk

Zaedy Sayão

unread,
Oct 26, 2012, 2:30:58 PM10/26/12
to zfbr...@googlegroups.com
Bem,

deixando as trolladas de lado e agindo feito gente grande, fica complicado a gente tentar DEBATER algo se vc não apresenta os argumentos.

Vc está partindo do princípio que todos vão ignorar o que vc fala ou que não vão entender por simples birra ou limitação.

Assim fica impossível qualquer um perceber que a solução que vc aponta não é a melhor, que a sua de fato é a melhor ou que existe uma intermediária melhor, que ninguém descobriu ainda e que poderia ser descoberta, a partir da discussão.

[]s

2012/10/26 Anderson Henrique <qualn...@gmail.com>

Tenho argumentos, entretanto, mesmo que eu me esforçe o máximo para tentar mostrar a concistencia do minha argumentação, não vai adiantar, pois existe um barreira que devido ao contexto atual os impedem ao menos de levá-los em consideração. Até porque vocês se bastam.

Willians - Icefusion

unread,
Oct 30, 2012, 12:51:35 PM10/30/12
to zfbr...@googlegroups.com
Wesley, estão debuguei e estava aparentemente tudo normal!
Porém como estava com pressa fiz de outra maneira e estou terminando a aplicação....queria que você me indicasse material para aprender a trabalhar desta forma, pois achei muito bem organizado a forma com que você criou a aplicação. A aplicação realmente ficou muito bem estruturada. Também da forma que você citou a respeito do doctrine, que realmente tenho objetivo de modificar depois esta aplicação utilizando doctrine e também extjs.

Aos troladores, por favor galera não crio tópicos para gerar brigas, crio tópicos para tirar dúvida e aprender. Sobre reinventar a roda é questão de opnião...acredito que só vai me acrescentar mais um conhecimento que poderei de repente melhorar a forma de estruturar as coisas nas minhas aplicações..nenhum conhecimento é perdido..
fica a dica!

valew!



Em segunda-feira, 22 de outubro de 2012 17h26min30s UTC-2, Wesley Willians escreveu:
Willians,

Primeiramente peço para que coloque SEMPRE códigos em um pastebin ou gist.

Você já tentou realmente debugar o código. Provavelmente o erro está na saída para não estar inserindo.
On Oct 22, 2012, at 5:24 PM, Willians - Icefusion <icef...@icefusion.com.br> wrote:

alguém ja desenvolveu desta forma?

Reply all
Reply to author
Forward
0 new messages