PHP - consulta PHP MVC

 
Vista:
sin imagen de perfil

consulta PHP MVC

Publicado por fernando (5 intervenciones) el 31/01/2017 09:56:50
Hola gente una consulta, estoy haciendo un proyecto en PHP orientado a objetos y tengo dudas con el MVC (no se bien del todo como armarlo), en el index queda en la raíz principal del proyecto?? y luego están las 3 divisiones ( modelo,vista, control) mi duda es si en la vista van simplemente todas las paginas del sitio?? o las paginas van en la raíz del proyecto y en la carpeta vista se arman "módulos" de esa pagina la cual la llama el controlador, esto es así?? no comprendo bien como se arma,
yo lo que estoy haciendo es por ejemplo en el index tengo formulario de login y otro de registro, cuando se realiza cualquiera de esas operaciones se llama a un controlador ( tengo un archivo para cada uno, procesar_login. procesar_registro ) esto no se si es correcto, de esa llamada el controlador comprueba todo y si esta ok avanza hacia otra pagina como podría ser un main.php al loguiarse, a lo que voy en este aspecto es que para cada operación tengo un archivo controlador, eso es correcto?? si bien me es mas fácil seguir el código no se si estoy aplicando bien MVC

otra cosa que no creo que este bien es que en la url de la web quede todo a la vista osea, fulanito.com/vista/pagina2.html o fulanito.com/controlador/procesar_registro.php si bien se pueden ocultar creo que hay algo que no va bien en lo que estoy haciendo
espero que me hayan entendido porque capas hice un enriedo tremendo jaja

saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 191
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

consulta PHP MVC

Publicado por Brayan (76 intervenciones) el 31/01/2017 21:13:03
Oye primero lo primero es muy difícil explicar en texto lo que tu quieres vamos a ver si logro hacer que lo entiendas:

Modelo: donde realizas las funciones que generalmente son consulta:

consulta.php:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class conexion{
        public function conectar(){
            $servidor="localhost"; //127.0.0.1
            $db="test";
            $user="root";
            $clave="";
 
            $conexion = new PDO("mysql:host=$servidor;dbname=$db", $user, $clave);
            return $conexion;
        }
    }
class buscar{
public function busq($cod,$valor,$valor2){
                $row=null; // se crea la variable para poderla usar mas adelante (no siempre es necesario)
                $muestra = new conexion(); // creamos la clase
                $conexion = $muestra->conectar(); // instanciamos la clase
                $consulta="select * from tabla"; // creamos la consulta
                $statement = $conexion->prepare($consulta); //se prepara la consulta sin ejecutar
                $statement->execute(); // se ejecuta la consulta
                // y desde aqui se trabaja la consulta:
                while ($resultado = $statement->fetch()){//Aqui indicamos que mientras haya un parametro a recorrer haga algo
                    $row[] = $resultado; // hacemos que la variable row guarde el array creado arriba
                }
                return $row; //retornamos el array de row
            }
}

Eso es un ejemplo basico de un modelo, ahora hagamos el controlador:

controlador.php:

1
2
3
4
5
require_once('../modelo/consulta.php');
$var=new buscar();
busqueda=$var->busq();
 
include('../vista/vista.php')

ya terminamos el modelo y ahora vamos a la vista:

vista.php:

1
2
3
4
5
6
7
<table>
  <tr>
      foreach ($busqueda as $busqueda){//metodo para recorrer el array
          echo"<td>$busqueda['nombre']</td>";//aqui imprimes tantas veces exista un registro
}
   </tr>
</table>

ok, ya terminamos en ejemplos sencillos un ejemplo de cada uno, lo ideal es que en tu root(carpeta raiz) tengas un index.php para no mostrar que estas haciendo ni las rutas y colocar un código similar a este:

1
2
3
4
5
6
7
if(isset($_GET['vista'])){
            if(file_exists("controlador/".$_GET['vista']".php")){//aqui le preguntas al script si existe un archivo con el nombre ingresado en la variable get
                    include("controlador/".$_GET['vista']".php");// si existe la incluye en el documento
                }else{
                    include('controlador/error.php');
                }
    }

para poder visualizarlo tendrías que colocar algo como esto:
localhost/tu_proyecto/index?vista=controlador

es dificil de explicar de verdad espero entiendas un poco.
Así no se ve la extensión ni la ubicación de tus archivos, lo ideal es trabajar de esta manera para cada script de php
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

consulta PHP MVC

Publicado por Mauro (1037 intervenciones) el 09/02/2017 19:43:11
Yo te recomendaría que no hagas tu propio MVC (Salvo que estés queriendo aprender, y aún así...).

¿Por qué no usas algún framework estándar? (Como Symfony por ejemplo)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

consulta PHP MVC

Publicado por fernando (5 intervenciones) el 09/02/2017 20:03:28
claro yo lo estoy haciendo para aprender , me recomendaron frameworks pero q se yo jaja queria hacer yo el codigo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 191
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

consulta PHP MVC

Publicado por Brayan (76 intervenciones) el 09/02/2017 20:09:23
Realmente trabajar con frameworks es mas dificil que nativo, sino sabes estructurar mvc poco puede ayudar intentar hacerlo en FW. Ya cuando tienes ciertas bases puede ser util de resto es mas complicado, sobre todo porque los frameworks son practicamente otro mundo diferente
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

consulta PHP MVC

Publicado por Mauro (1037 intervenciones) el 09/02/2017 20:42:07
No estoy de acuerdo.

Tengo la experiencia de haber hecho ambas cosas (Usar frameworks estándar y desarrollar el mío propio) y hoy por hoy no lo dudo un segundo: uso un framework estándar (Aún si no es el mío preferido).

Si el objetivo es aprender, igualmente, te recomiendo empezar por entender la teoría detrás de MVC, luego ver cómo funciona un framework sencillo, usarlo un poco y, cuando te sientas cómodo, meterte con xdebug o alguna herramienta similar a intentar seguir la ejecución.

Si después de hacer todo eso tienes interés en desarrollar tu propio MVC adelante, seguramente la experiencia de ver cómo otros han resuelto los problemas te ayudará.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 191
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

consulta PHP MVC

Publicado por Brayan (76 intervenciones) el 09/02/2017 20:49:46
Bueno, cada quien lo ve de un punto diferente, en mi caso particular, me fue muy cuesta arriba aprender o intentar usar un FW, talvez es porque me gusta hacer las cosas, sin embargo despues que aprendi o mejor dicho obtuve mejores bases de trabajo, realizar un proyecto con cakephp me fue relativamente sencillo, pero tuve que aprender lo nativo primero.

Pero veo q no ha todos nos pasa igual. De todas manera es muy bueno que haya esta diverisdad porque siempre aprendemos mas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

consulta PHP MVC

Publicado por Mauro (1037 intervenciones) el 09/02/2017 23:40:24
Yo creo que para alguien que no está muy al tanto de cómo viene todo esto, meterse de lleno no sólo con el lenguaje (POO y demás) si no también con cuestiones de arquitectura puede ser demasiado... por eso sugiero empezar por ver cómo están hechos los frameworks estándar.

Obviamente, todos los caminos conducen a Roma :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

consulta PHP MVC

Publicado por fernando (5 intervenciones) el 09/02/2017 20:50:26
claro yo estoy aprendiendo sobre la marcha digamos y se me re complica, quisiera hacer como vos decís ir con ejemplos básicos interactuando para entender bien la teoria
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

consulta PHP MVC

Publicado por Mauro (1037 intervenciones) el 09/02/2017 23:41:06
¿Qué es lo que te hace tan complicadas las cosas? ¿Qué probaste?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

consulta PHP MVC

Publicado por fernando (5 intervenciones) el 09/02/2017 23:52:41
porque no sabia bien como se implementaban el MVC osea yo lo plantie de la forma como puse en este post (basandome en lo que habia entendido de la teoria) y luego leyendo en internet sobre trabajos hechos con este patron me dì cuenta que no lo estaba planteando del todo bien
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

consulta PHP MVC

Publicado por fernando (5 intervenciones) el 09/02/2017 20:07:58
gracias por la explicacion, voy a probar ese codigo como para comprender un poco mejor el funcionamiento que estas planteando
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar