Foros del Web » Programando para Internet » PHP »

PHP OO transformación de codigo php a MVC

Estas en el tema de transformación de codigo php a MVC en el foro de PHP en Foros del Web. hola muy buenos dias a todos los compañeros de este foro. tengo un pequeño problema, yo tengo uno un script que realice para cargar datos ...
  #1 (permalink)  
Antiguo 13/11/2013, 08:48
 
Fecha de Ingreso: octubre-2013
Mensajes: 4
Antigüedad: 11 años, 1 mes
Puntos: 0
Pregunta transformación de codigo php a MVC

hola muy buenos dias a todos los compañeros de este foro.
tengo un pequeño problema, yo tengo uno un script que realice para cargar datos de excel a mysql mediante php, pero lo hice de la forma tradiconal de programacion, el problema es que lo tengo que transformar a mvc (modelo vista controlador) y yo ese estilo de programación nunca la es usado y ps no tengo ni idea de como cambiar mi codigo a ese estilo.

Si hay algun miembro de este este foro que me pueda ayudar le estare muy agradecido, aki les dejare el script

Código PHP:
<html>
<!-- IMPORTAR ARCHIVOSN DE EXCEL A MYSQL DESDE PHP -->
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title> Importar de Excel a la Base de Datos </title>
    </head>

<body>
<!-- FORMULARIO PARA SOICITAR LA CARGA DEL EXCEL -->
    <fieldset style="width:450px; heigth: 80px">
        <legend align="center">Seleccione el archivo para importar datos:</legend>
            <form name="importa" method="post" action="<?php echo $PHP_SELF?>" enctype="multipart/form-data" >
                <input type="file" name="excel" />
                <input type='submit' name='enviar'  value="Importar"  />
                <input type="hidden" value="upload" name="action" />
            </form>
    </fieldset>
<!-- CARGA LA MISMA PAGINA MANDANDO LA VARIABLE upload -->

<?php
extract
($_POST);
    if (
$action == "upload"//si action tiene como valor UPLOAD haga algo (el value de este hidden es es UPLOAD iniciado desde el value
        
{
//cargamos el archivo al servidor con el mismo nombre(solo le agregue el sufijo bak_)
            
$archivo $_FILES['excel']['name']; //captura el nombre del archivo
            
$tipo $_FILES['excel']['type']; //captura el tipo de archivo 
            
$destino "bak_".$archivo//lugar donde se copiara el archivo

            
if (copy($_FILES['excel']['tmp_name'],$destino)) //si dese copiar la variable excel (archivo).nombreTemporal a destino (bak_.archivo) (si se ha dejado copiar)
                
{
                    echo 
"Archivo Cargado Con Exito ";
                }
            else
                {
                    echo 
"Error Al Cargar el Archivo ";
                }

////////////////////////////////////////////////////////
            
if (file_exists ("bak_".$archivo)) //validacion para saber si el archivo ya existe previamente
                
{
/*INVOCACION DE CLASES Y CONEXION A BASE DE DATOS*/
/** Invocacion de Clases necesarias */
                    
require_once('Classes/PHPExcel.php');
                    require_once(
'Classes/PHPExcel/Reader/Excel5.php');
//DATOS DE CONEXION A LA BASE DE DATOS
                    
$conexion mysql_connect ("localhost","root","") or die ("ERROR EN LA CONEXION");
                    
$database mysql_select_db ("escuela",$conexion) or die ("ERROR AL CONECTAR A LA BD");

// Cargando la hoja de calculo
                    
$objReader = new PHPExcel_Reader_Excel5(); //instancio un objeto como PHPExcelReader(objeto de captura de datos de excel)
                    
$objPHPExcel $objReader->load("bak_".$archivo); //carga en objphpExcel por medio de objReader,el nombre del archivo
                    
$objFecha = new PHPExcel_Shared_Date();

// Asignar hoja de excel activa
                    
$objPHPExcel->setActiveSheetIndex(0); //objPHPExcel tomara la posicion de hoja (en esta caso 0 o 1) con el setActiveSheetIndex(numeroHoja)

// Llenamos un arreglo con los datos del archivo xlsx
                    
$i=1//celda inicial en la cual empezara a realizar el barrido de la grilla de excel
                    
$param=0;
                    
$contador=0;
                    while(
$param==0//mientras el parametro siga en 0 (iniciado antes) que quiere decir que no ha encontrado un NULL entonces siga metiendo datos
                        
{

                            
$nocontrol=$objPHPExcel->getActiveSheet()->getCell('B'.$i)->getCalculatedValue();
                            
$nombre=$objPHPExcel->getActiveSheet()->getCell('C'.$i)->getCalculatedValue();
                            
$grado=$objPHPExcel->getActiveSheet()->getCell('D'.$i)->getCalculatedValue();
                            
$grupo=$objPHPExcel->getActiveSheet()->getCell('E'.$i)->getCalculatedValue();
                            
$sexo=$objPHPExcel->getActiveSheet()->getCell('F'.$i)->getCalculatedValue();

                            
$c=("insert into alumnos values($i,$nocontrol,'$nombre','$grado','$grupo','$sexo')");
                            
mysql_query($c);

                            if(
$objPHPExcel->getActiveSheet()->getCell('A'.$i)->getCalculatedValue()==NULL//pregunto que si ha encontrado un valor null en una columna inicie un parametro en 1 que indicaria el fin del ciclo while
                                
{
                                    
$param=1//para detener el ciclo cuando haya encontrado un valor NULL
                                
}
                            
                            
$i++;
                            
$contador=$contador+1;
                        }
                    
                    
$totalIngresados=$contador-1//(porque se se para con un NULL y le esta registrando como que tambien un dato)
                    
echo "Total de elementos subidos: $totalIngresados ";
                }
            else
//si no se ha cargado el bak
                
{
                    echo 
"Necesitas primero importar el archivo";}
                    
unlink($destino); //desenlazar a destino el lugar donde salen los datos(archivo)
        
}

?>
</body>
</html>
  #2 (permalink)  
Antiguo 13/11/2013, 09:16
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 17 años, 1 mes
Puntos: 48
Respuesta: transformación de codigo php a MVC

Hola manuxvalero,

lo que quieres hacer no se aplica en tu caso ya que el patrón de diseño MVC está pensado para proyectos mucho más grandes que el script que tu tienes.

De todas formas te animo a que leas sobre el tema si te da curiosidad.

Normalmente se usan frameworks que ya tienen implementado este patrón, como por ejemplo Symfony.

1saludo.
__________________
El problema de nuestra época consiste en que sus hombres no quieren ser útiles sino importantes.

Winston Churchill
  #3 (permalink)  
Antiguo 13/11/2013, 09:22
Avatar de xSkArx  
Fecha de Ingreso: marzo-2008
Ubicación: Chile
Mensajes: 945
Antigüedad: 16 años, 8 meses
Puntos: 96
Respuesta: transformación de codigo php a MVC

De hecho si puede, la conexion a la.bd y la lectura del excel irian al modelo, subir el excel al servidor seria el controlador y mostrar los datos la vista, corrijanme si me equivoque
__________________
Busca, lee y practica todo lo que puedas.
Usa siempre el buscador antes de postear.
Si posteas código, utiliza el HIGHLIGHT correcto.
  #4 (permalink)  
Antiguo 13/11/2013, 09:56
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años, 7 meses
Puntos: 270
Respuesta: transformación de codigo php a MVC

Que se quieran crear n nuevas instancias de un modelo (filas), que la información para crear esas filas venga por $_POST, por un Excel, por ajax, por un csv, o por una llamada SOAP, es exactamente lo mismo.
El controlador recibirá esos datos, y creará las nuevas instancias.
  #5 (permalink)  
Antiguo 13/11/2013, 12:05
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 4 meses
Puntos: 379
Respuesta: transformación de codigo php a MVC

Te dejo un articulo de Rasmus Lerdorf que te puede ayudar: http://toys.lerdorf.com/archives/38-...framework.html
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.

Etiquetas: fecha, formulario, html, mvc, mysql, select, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:26.