Siga-nos em...
Follow us on Twitter Follow us on Facebook Watch us on YouTube
Registro

Alpha Servers
Resultados 1 a 4 de 4

Tópico: PHP MVC com DAO

  1. #1

    Avatar de xiscoss
    Data de Ingresso
    Aug 2010
    Localização
    Santa Catarina
    Posts
    343
    Agradecido
    144
    Agradeceu
    106
    Peso da Avaliação
    17

    Question PHP MVC com DAO

    Alguém poderia me fornecer algum exemplo mais sólido de uma estrutura com os recursos descritos no título? Pois estou desenvolvendo um mini "framework" no meu tempo livre e gostaria de obter uma forma "correta" de como aplicar DAO ao MVC. Abaixo segue o código atual:

    Controller
    Código PHP:
    <?php
    namespace Main\Controller;

    use 
    Main\StartUp;
    use 
    Main\Model\Main as Model;
    use 
    Alpha\Template\Template;

    class 
    Main extends StartUp {
        public function 
    start ()
        {
            
    $model = new Model();
            
    $template = new Template();
            
    $template->title "test";
            
    $template->render("main\main\start");
        }

        public function 
    __destruct ()
        {
            
    parent::__destruct();
        }

        public function 
    __construct ()
        {
            
    parent::__construct();
        }
    }
    Model
    Código PHP:
    <?php
    namespace Main\Model;

    use 
    Main\Model\DAO\Main as DAO;

    class 
    Main extends DAO {
        public function 
    __destruct ()
        {
            
    parent::__destruct();
        }

        public function 
    __construct ()
        {
            
    parent::__construct();
        }
    }
    DAO
    Código PHP:
    <?php
    namespace Main\Model\DAO;

    use 
    Alpha\Database\Database;

    class 
    Main extends Database {

        public function 
    delete ()
        {
            
    $pdo $this->pdo;
            
    $pdo->beginTranstaction();
            
            try {
                
    /*$stmt = "";
                $pdo->prepare($stmt);
                $pdo->bindParam(, , $this->bindType());
                $pdo->execute();*/

                
    $pdo->commit();
            } catch (
    PDOException $Exception) {
                
    $pdo->rollBack();
                throw new 
    PDOException($Exception->getMessage());
            }
        }

        public function 
    update ()
        {
            
    $pdo $this->pdo;
            
    $pdo->beginTranstaction();
            
            try {
                
    /*$stmt = "";
                $pdo->prepare($stmt);
                $pdo->bindParam(, , $this->bindType());
                $pdo->execute();*/

                
    $pdo->commit();
            } catch (
    PDOException $Exception) {
                
    $pdo->rollBack();
                throw new 
    PDOException($Exception->getMessage());
            }
        }

        public function 
    read ()
        {
            return array();
        }

        public function 
    create ()
        {
            
    $pdo $this->pdo;
            
    $pdo->beginTranstaction();
            
            try {
                
    /*$stmt = "";
                $pdo->prepare($stmt);
                $pdo->bindParam(, , $this->bindType());
                $pdo->execute();*/

                
    $pdo->commit();
            } catch (
    PDOException $Exception) {
                
    $pdo->rollBack();
                throw new 
    PDOException($Exception->getMessage());
            }
        }

        public function 
    __destruct ()
        {
            
    parent::__destruct();
        }

        public function 
    __construct ()
        {
            
    parent::__construct("sqlsrv:Server=192.168.1.3;Database=;""sa"""null);
        }
    }
    Última edição por xiscoss; 19-06-2015 às 12:56 AM.
    Aerocool DS 200 Lite/ Corsair GS600/ ASRock Fatal1ty Z97 Killer/ Intel Core i5 4670K 3,40 GHz 6MB Cache/ Corsair Water Cooler H80i/ Sapphire R9270X Dual-X 2GB OC/ Hyper X Fury 2x8GB 1866Mhz DDR3/ SSD Kingston 120GB/ HDD Samsung 500GB

  2. #2



    Avatar de Renato
    Data de Ingresso
    Nov 2010
    Localização
    Imperyus
    Posts
    1.099
    Agradecido
    2519
    Agradeceu
    492
    Peso da Avaliação
    30

    Padrão

    Aqui tem um artigo bacana e bem acadêmico para aprender sobre isso.

    [Somente usuários registrados podem vem os links. ]

    Código PHP:
    <?php
        
    if(Weather::getState() == 'Rainy weather') {
            
    $this->removingLittleHorseFromRain();
        }

  3. O Seguinte Usuário Agradeceu Renato Por este Post Útil:


  4. #3



    Avatar de Erick-Master
    Data de Ingresso
    Jul 2010
    Localização
    Lorencia :D
    Posts
    330
    Agradecido
    401
    Agradeceu
    144
    Peso da Avaliação
    21

    Padrão

    Não seria melhor você utilizar algum componente eficiente?
    O Doctrine é ótimo, sem falar que ele é ORM... da uma olhada.

    [Somente usuários registrados podem vem os links. ]

    Eu já utilizo o Eloquent do Laravel.
    Se quiser, dá uma olhada no Illuminate Database: [Somente usuários registrados podem vem os links. ]

    []'s

  5. O Seguinte Usuário Agradeceu Erick-Master Por este Post Útil:


  6. #4


    Avatar de WoLfulus
    Data de Ingresso
    Jan 2015
    Localização
    Brasil
    Idade
    32
    Posts
    231
    Agradecido
    636
    Agradeceu
    204
    Peso da Avaliação
    12

    Padrão

    uma coisa que funcionou muito bem pra mim é a combinação do Slim Framework e Idiorm.
    adoro usar os lambdas pra escrever minhas rotas, e o acesso do banco de dados com o idiorm (+ paris) é muito fácil.
    não é exatamente o jeito que todos estão acostumados (classe = controller, function = action) mas funciona muito bem, e fica muito "limpo"

    se quiser uma "dica"... não reinvente a roda, a não ser que queira entender como funciona sistemas assim, mas se esse for o caso é muito melhor fazer um fork de um projeto desses, estudar, resolver bugs e enviar patches pro repositório original


    Slim
    [Somente usuários registrados podem vem os links. ]

    Idiorm
    [Somente usuários registrados podem vem os links. ]

    Paris
    [Somente usuários registrados podem vem os links. ]

  7. O Seguinte Usuário Agradeceu WoLfulus Por este Post Útil:


 

 

Informações de Tópico

Usuários Navegando neste Tópico

Há 1 usuários navegando neste tópico. (0 registrados e 1 visitantes)

Marcadores

Permissões de Postagem

  • Você não pode iniciar novos tópicos
  • Você não pode enviar respostas
  • Você não pode enviar anexos
  • Você não pode editar suas mensagens
  •