Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/10/2013, 07:24
Avatar de natalivg
natalivg
 
Fecha de Ingreso: octubre-2013
Ubicación: La taberna
Mensajes: 1
Antigüedad: 10 años, 7 meses
Puntos: 0
Estructura MVC y POO

Hola, hace tiempo vengo leyendo este foro y me ha si de mucha ayuda pero ahora quería consultarles algo.

Pues he revisado el modelo MVC y la POO y tengo esto actualmente:

Estructura de Carpetas
  • Config
  • controller
  • css
  • img
  • js
  • model
  • view

En config tengo esta clase para manejar la coneccion a la base de datos, use PDO por que me parecio mas sencillo ademas de solo tener que cambiar unas cuantas lineas para usar otro motor de BD.

Código PHP:
Ver original
  1. <?php
  2. class config
  3. {
  4. var $dsn = 'mysql:dbname=mitabla;host=localhost';
  5. var $user = 'root';
  6. var $password = '';
  7. var $dbms='PDO';
  8.     function connect()
  9.     {
  10.         switch($this->dbms)
  11.         {
  12.         case 'PDO':
  13.         try
  14.             {
  15.                     $connection= new PDO($this->dsn,$this->user,$this->password);
  16.        
  17.             }
  18.               catch (PDOException $e)
  19.               {
  20.                echo 'Connection Error: ' . $e->getMessage();
  21.                }
  22.         return $connection;
  23.         break;
  24.         }
  25.     }
  26. }
  27. ?>
En la carpeta model tengo las consultas a la base de datos.
Código PHP:
Ver original
  1. <?php
  2. require_once '../config/config.php';
  3. class modelo_cargos
  4. {
  5.    function modelo_modificar_cargos($idcargoc,$descripcionc)
  6.     {
  7.         $config= new config();
  8.         $conn=$config->connect();
  9.         $sql="UPDATE cargos SET descripcionc=? WHERE idcargoc=?";
  10.         $descripcioncl=$conn->quote($descripcionc);
  11.         $sth = $conn->prepare($sql);
  12.         $sth->bindParam(1, $descripcioncl,PDO::PARAM_STR, 20);
  13.         $sth->bindParam(2, $idcargoc,PDO::PARAM_INT);
  14.         $sth->execute();
  15.     }
  16.  
  17. }
  18. ?>
- Aquí mi primera duda, si yo quisiera hacer un paginador la lógica iría en el
modelo cierto? o me equivoco.
- Y segundo aqui uso quote para entrecomilalr cadenas desagradables y las
guarda asi en la bd y despues con una expresion regular quito las comillas algo
asi:

Ingreso Ca'de''na \"co'\"mpleja y lo guardo como 'Ca''de''''na "co''"mpleja' y aplicandole la expresion regular a la vista Cadena compleja, hacer esto esta bien o hay una forma mejor.

En controller tengo esto:
Código PHP:
Ver original
  1. <?php
  2. require_once '../model/modelo_cargos.php';
  3. class controlador_cargos
  4. {
  5. function controlador_modificar_cargos($idcargoc,$descripcionc)
  6.   {
  7.   $modelo_cargos= new modelo_cargos();
  8.   $data=$modelo_cargos->modelo_modificar_cargos($idcargoc,$descripcionc);
  9.   }
  10. }
  11. ?>
Aqui solo recibo la consulta y tengo entendido que aqui no deberia haber nada de html correcto?.
Y la view lo tengo asi:
Código PHP:
Ver original
  1. <!DOCTYPE html>
  2. <html lang="es">
  3. <head>
  4. <meta charset="ISO-8859-1">
  5. <meta name="Administración Cargos" content="Cargos">
  6. <meta name="keywords" content="Cargos Administarción">
  7. <link rel="stylesheet" href="../css/estilos.css">
  8. <link href="../css/bootstrap.css" rel="stylesheet">
  9. <link href="../css/bootstrap-responsive.css" rel="stylesheet">
  10. <link href="../css/docs.css" rel="stylesheet">
  11. <link href="../js/google-code-prettify/prettify.css" rel="stylesheet">
  12. <script src="../js/mensajes.js"></script>
  13. <script src="../js/limites.js"></script>
  14. <title>Administración Cargos</title>
  15. </head>
  16. <body id="body">
  17. <div id="centrar">
  18.     <header>
  19.      <h1 id="header" >Administración de Cargos</h1>  
  20.     </header>
  21.     <div class="container" id="col">
  22. <?php
  23. require_once '../controller/controlador_cargos.php';
  24. $controlador_cargos= new controlador_cargos();
  25. $idcargoc = isset($_POST["idcargoc"]) ?$_POST["idcargoc"] : NULL;
  26. $descripcionc = str_replace("'","",isset($_POST["descripcionc"]) ?$_POST["descripcionc"] : NULL);
  27. $subm = isset($_POST["subm"]) ?$_POST["subm"] : NULL;
  28. $buscar = isset($_POST["buscar"]) ?$_POST["buscar"] : NULL;
  29. ?>
  30. <form action="vista_cargos.php" method="post" enctype="multipart/form-data" class="form-horizontal">
  31. <div class="control-group">
  32.     <div class="controls">
  33.       <input type="hidden"  value="<?php echo $idcargoc; ?>" name="idcargoc">
  34.     </div>
  35.   </div>
  36.   <div class="control-group">
  37.     <label class="control-label" id="bold">Cargo</label>
  38.     <div class="controls">
  39.       <input type="text" placeholder="Ingrese el Cargo" class="span2" value="<?php echo $descripcionc; ?>" name="descripcionc"  onKeyDown="contador(this.form.descripcionc,this.form.remLen,20);" onKeyUp="contador(this.form.descripcionc,this.form.remLen,20);">
  40.     </div>
  41.   </div>
  42.     <div class="control-group">
  43.     <div class="controls">
  44.        <input class="span2" placeholder="" name="buscar" type="text" value="<?php  echo $buscar ?>"/>
  45.        <input type="submit" name="subm" value="Buscar" class="btn btn-btn"/>
  46.        <input type="submit" name="subm" value="Ultimos Registros" class="btn btn-info" />
  47.            <div class="btn-group">
  48.               <a class="btn btn-primary" href="#"><i class="icon-user icon-white"></i></a>
  49.               <a class="btn btn-primary dropdown-toggle" data-toggle="dropdown" href="#"><span class="caret"></span></a>
  50.               <ul class="dropdown-menu">
  51.                 <li><input type="submit" name="subm" value="Guardar" class="btn-block btn-success" onClick="return ConfirmSave();"/></li>
  52.                 <li><input type="submit" name="subm" value="Modificar" class="btn-block btn-warning"  onClick="return ConfirmModify();"/></li>            
  53.               </ul>
  54.             </div>
  55.     </div>
  56.   </div>    
  57.     </form>
  58. <?php switch($subm):?>
  59. <?php case 'Modificar':?>
  60. <?php if(preg_match("/^[0-9a-zA-ZñÑáéíóú]+$/",$descripcionc)):?>
  61. <?php $controlador_cargos->controlador_modificar_cargos($idcargoc,$descripcionc);?>
  62. <script>
  63. document.location = ('vista_cargos.php');
  64. Modify();
  65. </script>
  66. <?php else:?>
  67. <div class="alert alert-error" id="error">
  68. <?php echo "Solo se permite texto,revise los datos ingresados.";?>
  69. </div>
  70. <?php endif;?>
  71. <?php break;?>
  72. <?php endswitch;?>
  73. </div>
  74. </div>
  75.     <script type="text/javascript" src="../js/widgets.js"></script>
  76.     <script src="../js/jquery.js"></script>
  77.     <script src="../js/bootstrap-transition.js"></script>
  78.     <script src="../js/bootstrap-alert.js"></script>
  79.     <script src="../js/bootstrap-modal.js"></script>
  80.     <script src="../js/bootstrap-dropdown.js"></script>
  81.     <script src="../js/bootstrap-scrollspy.js"></script>
  82.     <script src="../js/bootstrap-tab.js"></script>
  83.     <script src="../js/bootstrap-tooltip.js"></script>
  84.     <script src="../js/bootstrap-popover.js"></script>
  85.     <script src="../js/bootstrap-button.js"></script>
  86.     <script src="../js/bootstrap-collapse.js"></script>
  87.     <script src="../js/bootstrap-carousel.js"></script>
  88.     <script src="../js/bootstrap-typeahead.js"></script>
  89.     <script src="../js/bootstrap-affix.js"></script>
  90.     <script src="../js/holder/holder.js"></script>
  91.     <script src="../js/google-code-prettify/prettify.js"></script>
  92.     <script src="../js/application.js"></script>
  93. </body>
  94. </html>
Aqui uso la sintaxis alternativa porque a mi parecer se separa mejor el codigo PHP del HTML.

Eso es lo que he hecho hasta ahora, quisiera saber si esta bien o si tengo que mejorar algo o de plano lo estoy haciendo mal .

Gracias de antemano.