Ver Mensaje Individual
  #3 (permalink)  
Antiguo 05/10/2013, 20:32
Avatar de carlos_belisario
carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Estructura MVC y POO

Buenas, bienvenido al foro, ahora, has entendido el concepto?? aunque no hay forma correcta o incorrecta porque es solo una forma de organizar código no esta mal darte un poco de concejos

1) Modelo = lógica de negocio (no es solo la conexión y consultas a la base de datos)
2) Vista = lo que ve el usuario, no debería de tener nada de lógica
3) controlador = controla el flujo, carga el modelo que realiza la lógica y renderiza la vista

ahora viendo tu código
Cita:
Iniciado por natalivg Ver Mensaje
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. ?>
config debería de referirse a la configuración de la app, la conexión debería de ser otra historia, (interesante siempre el que conozcas un ORM). Otra cosa
var esta OBSOLETO es de php 4, en php5 se usa la visibilidad
otra cosa
Cita:
Iniciado por natalivg Ver Mensaje
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="ISO-8859-1">
<meta name="Administración Cargos" content="Cargos">
<meta name="keywords" content="Cargos Administarción">
<link rel="stylesheet" href="../css/estilos.css">
<link href="../css/bootstrap.css" rel="stylesheet">
<link href="../css/bootstrap-responsive.css" rel="stylesheet">
<link href="../css/docs.css" rel="stylesheet">
<link href="../js/google-code-prettify/prettify.css" rel="stylesheet">
<script src="../js/mensajes.js"></script>
<script src="../js/limites.js"></script>
<title>Administración Cargos</title>
</head>
<body id="body">
<div id="centrar">
<header>
<h1 id="header" >Administración de Cargos</h1>
</header>
<div class="container" id="col">
<?php
require_once '../controller/controlador_cargos.php';
$controlador_cargos= new controlador_cargos();
$idcargoc = isset($_POST["idcargoc"]) ?$_POST["idcargoc"] : NULL;
$descripcionc = str_replace("'","",isset($_POST["descripcionc"]) ?$_POST["descripcionc"] : NULL);
$subm = isset($_POST["subm"]) ?$_POST["subm"] : NULL;
$buscar = isset($_POST["buscar"]) ?$_POST["buscar"] : NULL;
?>
<form action="vista_cargos.php" method="post" enctype="multipart/form-data" class="form-horizontal">
<div class="control-group">
<div class="controls">
<input type="hidden" value="<?php echo $idcargoc; ?>" name="idcargoc">
</div>
</div>
<div class="control-group">
<label class="control-label" id="bold">Cargo</label>
<div class="controls">
<input type="text" placeholder="Ingrese el Cargo" class="span2" value="<?php echo $descripcionc; ?>" name="descripcionc" onKeyDown="contador(this.form.descripcionc,this.fo rm.remLen,20);" onKeyUp="contador(this.form.descripcionc,this.form .remLen,20);">
</div>
</div>
<div class="control-group">
<div class="controls">
<input class="span2" placeholder="" name="buscar" type="text" value="<?php echo $buscar ?>"/>
<input type="submit" name="subm" value="Buscar" class="btn btn-btn"/>
<input type="submit" name="subm" value="Ultimos Registros" class="btn btn-info" />
<div class="btn-group">
<a class="btn btn-primary" href="#"><i class="icon-user icon-white"></i></a>
<a class="btn btn-primary dropdown-toggle" data-toggle="dropdown" href="#"><span class="caret"></span></a>
<ul class="dropdown-menu">
<li><input type="submit" name="subm" value="Guardar" class="btn-block btn-success" onClick="return ConfirmSave();"/></li>
<li><input type="submit" name="subm" value="Modificar" class="btn-block btn-warning" onClick="return ConfirmModify();"/></li>
</ul>
</div>
</div>
</div>
</form>
<?php switch($subm):?>
<?php case 'Modificar':?>
<?php if(preg_match("/^[0-9a-zA-ZñÑáéíóú]+$/",$descripcionc)):?>
<?php $controlador_cargos->controlador_modificar_cargos($idcargoc,$descripci onc);?>
<script>
document.location = ('vista_cargos.php');
Modify();
</script>
<?php else:?>
<div class="alert alert-error" id="error">
<?php echo "Solo se permite texto,revise los datos ingresados.";?>
</div>
<?php endif;?>
<?php break;?>
<?php endswitch;?>
</div>
</div>
<script type="text/javascript" src="../js/widgets.js"></script>
<script src="../js/jquery.js"></script>
<script src="../js/bootstrap-transition.js"></script>
<script src="../js/bootstrap-alert.js"></script>
<script src="../js/bootstrap-modal.js"></script>
<script src="../js/bootstrap-dropdown.js"></script>
<script src="../js/bootstrap-scrollspy.js"></script>
<script src="../js/bootstrap-tab.js"></script>
<script src="../js/bootstrap-tooltip.js"></script>
<script src="../js/bootstrap-popover.js"></script>
<script src="../js/bootstrap-button.js"></script>
<script src="../js/bootstrap-collapse.js"></script>
<script src="../js/bootstrap-carousel.js"></script>
<script src="../js/bootstrap-typeahead.js"></script>
<script src="../js/bootstrap-affix.js"></script>
<script src="../js/holder/holder.js"></script>
<script src="../js/google-code-prettify/prettify.js"></script>
<script src="../js/application.js"></script>
</body>
</html>
el controlador carga la vista no la vista al controlador, por lo tanto hacer un require en una vista a un controlador es incorrecto

Cita:
Iniciado por natalivg Ver Mensaje
- Aquí mi primera duda, si yo quisiera hacer un paginador la lógica iría en el
modelo cierto? o me equivoco.
normalmente uso librerías de terceros de paginación, te doy un ejemplo en Yii lo que se hace es solicitar el provider de datos al modelo y pasarlo a la vista que llama al widget bien sea un grid o un list
Cita:
Iniciado por natalivg Ver Mensaje
- 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
no es necesario andar haciendo cosas con regex ni nada por el estilo, hay metodos que te brinda PDO, como consultas preparadas que te realizan el escape necesario a los caracteres especiales y te evitan SQLInjection.

ya creo que es toda mi observación, Saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way