Pregunta

Tan lejos como las mejores prácticas ir es esto recomendable?Tengo un comentario controlador + modelo que debe ser llamados en los artículos y perfiles de programador.Los comentarios controlador de carga automáticamente los comentarios del modelo.

Es aceptable llamar a los comentarios controlador directamente a partir de los elementos y el perfil de controlador, o es la "mejor práctica" para llamar a los comentarios del modelo de lugar?

Me pregunto porque en kohana, la vista no es una clase singleton así que si yo fuera a llamar a un controlador dentro de otro controlador que terminan con dos puntos de vista.Por otro lado, si me acaba de llamar el modelo, no sería duplicar código dentro de los elementos y perfiles de programador.

Todo lo que usted MVC ayuda de expertos!=)

¿Fue útil?

Solución

En general, yo iría a por el "Modelo de la Grasa" enfoque.

No estoy seguro de cuál es el código que realmente estás preocupado acerca de la duplicación.

Hay un par de maneras que usted podría hacer esto:

Primera forma:- Interrogar sus Comentarios modelo para devolver algunos comentarios.- Pasar el comentario de los datos en la vista.- Representar los comentarios en la vista, posiblemente con algunas view helper

Segunda Forma:- Darse cuenta de que no hay ninguna razón por la que su vista no puede hablar directamente a tu modelo.- Escribir un ayudante de vista que toma los datos que necesita directamente de la modelo, y lo hace.

Yo prefiero la segunda manera.Algunas personas tienen un problema dejando que su vista de la capa de hablar con el modelo (en un sólo lectura de la moda!), pero yo no soy uno de ellos.

Otros consejos

Si utiliza Kohana 3, puede beneficiarse de la función HMVC. Puede ejecutar los controladores dentro de los controladores.

http://forum.kohanaphp.com/comments.php?DiscussionID=2768

Comprobar el enlace de arriba para ver algunos ejemplos

Yo diría que depende de lo que sus declaraciones de controlador.

Si su controlador puede volver dtos / Modelos, entonces seguro, llamar a un controlador es una buena idea.

Su controlador define un estricto, documentado, y es de esperar estables puntos de entrada a su funcionalidad. Por lo tanto, puede ignorar completamente la implementación de comentarios, o cambiar a voluntad, siempre y cuando usted no cambiar la firma del método controlador.

Sin embargo, si su controlador es incapaz de devolver los datos en bruto, entonces es definitivamente prolematic, debido a que está recibiendo html (o de otras marcas) en regreso. Eso significa que usted tiene que canalizar que HTML directamente en la vista que desee, o extraer los datos de ella. Ambos de ellos es una mala idea.

Tubería del HTML puro implica que si se cambia la vista de comentarios, la visualización de los comentarios sobre el módulo de perfil cambiará inevitablemente. esto podría ser lo que quiera, pero me gustaría ir a la flexibilidad.

Ahora, si usted quiere datos, tendrá que extraer los datos del marcado su visión regresó, lo que es pesado y contraproducente.

Si usted está tratando de llamar a un método estático, que sólo puede llamar a la función directamente. Por ejemplo:

class Controller_User extends Controller {
    public static function format_user($user){
        return array("data" => $user->getData());
    }
}

class Controller_Foo extends Controller {
    public function action_index(){
        $user = get_user_data_some_how();
        $user_data = Controller_User::format_user($user)
    }
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top