Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/03/2012, 04:37
ferminako
 
Fecha de Ingreso: abril-2010
Mensajes: 298
Antigüedad: 14 años, 7 meses
Puntos: 1
Novato 3 capas OOP, es correcto mi metodo?Porque este error?

Buenas , soy un novato en el mundo php , estoy desarrollando una tienda, y bueno resulta que estoy intentando crear mi "framework" a 3 capas y OOP... o algo parecido jaajja
Mi estructura es tal que Carpeta proyecto y dentro de ella van los php de las paginas a mostrar y las una carpeta llamada php, que contiene otras 3 con Vistas, Clases y Controladores tal que:

Proyecto:
-index.php
-marcas.php....
-php:
........ -Clases
........ -Vistas
........ -Controladores

Mi problema es que primero nose si sera correcto montarlo asi... y a parte de esto, estoy obteniendo un error que no me permite continuar.. y dado que acabo de empezar creo que es el momento de enfocar el desarrollo correctamente , asi que os adjunto mi codigo y el error , para que evalueis si es una manera correcta de hacerlo y me orienteis.

Problema: estoy intentando mostrar una pagina , marcas.php en la que llamo al controlador C_ListarMarcas.php cuyo contenido seria:
Código:
<!DOCTYPE html>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>Tienda</title>
	<link rel="stylesheet" type="text/css" href="css/styleMarcas.css" />
</head>
<body>
  <div id="Main">
    <div id="Header">
      <div id="Header1">
        <h1 class="tittle">Titulo1</h1>
        <h2 class="tittle">Titulo2</h2> 
        <div id="Separador"></div> 
      </div>
    </div>
    <div id="MainContainer">
      <div id="Content">
        <div id="Brands">
          <ul id="ulBrands" class="liEnlaces">

            <?php 
            require("php/Controladores/C_ListarMarcas.php");
            ?>
            
          </ul>
        </div>
No se si es correcto llamarlo asi...

El contenido del controlador es:
Código:
<?php 
    require("php/Clases/GestionMarcas.php");
    $GM=new GestionMarcas();
    $marcas=$GM->ListarMarcas();
    require("php/Vistas/V_ListarMarcas.php");
?>
Lo que supuestamente hace es llamar a una clase que dispone de una funcion llamada ListaMarcas, nos devuelve un array asociativo con las marcas.Este seria su codigo:
Código:
<?php class GestionMarcas{

require("php/Clases/mysql.php");

$MySQL=new MySQL();

  public function ListarMarcas(){ 
   //Listaremos todas las marcas order by Nombre Marca.
   return $MySQL->sp("S_Marcas","","");
  }
}?>
Esta es la vista:
Código:
<?php 
while($row = mysql_fetch_array($marcas)) {  ?>
      <li><a href="Colecciones.php?id="<?php echo $row ['idMarcas']; ?> alt""><?php echo $row ['Nombre']; ?></a></li>    
<?php }?>
Para ello se sirve de una pequeña clase de MySQL en la cual se encarga de llamar a un sp para obtener dichas marcas.Aqui os dejo el codigo:
Código:
<?php class MySQL{

  private $conexion; private $total_consultas;

  public function MySQL(){ 
    if(!isset($this->conexion)){
      $this->conexion = (mysql_connect("localhost","admin","12345"))
        or die(mysql_error());
      mysql_select_db("proyecto",$this->conexion) or die(mysql_error());
    }
  }

  public function consulta($consulta){ 
    $this->total_consultas++; 
    $resultado = mysql_query($consulta,$this->conexion);
    if(!$resultado){ 
      echo 'MySQL Error: ' . mysql_error();
      exit;
    }
    return $resultado;
  }

  public function sp($nombre,$parametrosIn,$parametrosOut){

    return $this->consulta('CALL '.$nombre.'('.$parametrosOut.','.$parametrosIn.')'); 

  }

  public function fetch_array($consulta){
   return mysql_fetch_array($consulta);
  }

  public function num_rows($consulta){
   return mysql_num_rows($consulta);
  }

  public function getTotalConsultas(){
   return $this->total_consultas; 
  }
}?>
Y por ultimo os anexo el error que recibo al intentar entrar en marcas.php:

( ! ) Parse error: syntax error, unexpected T_REQUIRE, expecting T_FUNCTION in
C:\wamp\www\proyecto\php\Clases\GestionMarcas.php on line 3
Call Stack
# Time Memory Function Location
1 0.0121 670912 {main}( ) ..\Colecciones.php:0
2 0.0127 674848 require( 'C:\wamp\www\proyecto\php\Controladores\C_ListarMa rcas.php' ) ..\Colecciones.php:24

Gracias por todo ;)

Última edición por ferminako; 19/03/2012 a las 04:48