2010-05-31 19 views
8

pregunta bastante sencilla:¿Qué patrón de diseño utiliza Codeigniter?

sé que CodeIgniter es un framework MVC - sin embargo lo que el patrón de diseño se CodeIgniter usando?

Desde el primer vistazo parece Fachada, pero podría estar equivocado.

Editar:

tal vez debería describir CodeIgniter para los que no lo usan.
En Codeigniter tiene un concepto de un Controlador y un Modelo, cada uno con su propia carpeta separada. En cada una de las carpetas que cree un archivo: cart.php:

<?php 

class Cart { 
//... 
} 
?> 

, entonces también puede tener un modelo:

<?php 

class User { 
    function login(){...} 
} 
?> 

Dentro de la clase de la compra, puede utilizar la función de inicio de sesión en Usuario simplemente usando $ this-> user-> login()

Me parece interesante porque el framework hace un objeto del objeto User y el programador no.

Respuesta

6

en CodeIgniter que tienen un concepto de un controlador y un modelo, que cada uno tiene su propio carpeta separada.

Tienen configurar su enrutador principal clase de forma que busca correspondientes archivos de los controladores y de modelo, que incluso puede ir recursiva. Esto no tiene nada que ver con ningún patrón de diseño, es solo una organización de carpetas.

Me parece interesante porque el marco hace que un objeto del objeto de usuario y el programador no lo hace.

Sí, han creado un montón de cosas ya hecho y para ser utilizado en cualquier momento que desee. La clase de usuario se usa para controlar el sistema de usuario completo.

Básicamente, como usted ha dicho, el patrón de diseño MVC principal utilizado es, resto de las cosas son controlados por diferentes núcleo clases para una tarea específica.

+0

También marcaría MVC en Codeigniter, pero no aparece en la lista en http://en.wikipedia.org/wiki/Design_pattern_(computer_science), lo cual creo que debería ser. Aunque todavía creo que está modelado un poco después de Facade porque en vez de tener $ user-> login() tienes una sola clase que tiene básicamente subclases ... que simplemente es la clase que llama. –