La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

ActionController Action * CONTROLLERVIEW listar_x.html listar_y.html XManagerYManager managers ClaseXClaseY XQueryYQuery MODEL MODEL VIEW CONTROLLER (MVC)

Presentaciones similares


Presentación del tema: "ActionController Action * CONTROLLERVIEW listar_x.html listar_y.html XManagerYManager managers ClaseXClaseY XQueryYQuery MODEL MODEL VIEW CONTROLLER (MVC)"— Transcripción de la presentación:

1 ActionController Action * CONTROLLERVIEW listar_x.html listar_y.html XManagerYManager managers ClaseXClaseY XQueryYQuery MODEL MODEL VIEW CONTROLLER (MVC)

2 ActionController Es un dispatcher. Decide qué acciones ejecutar: dependiendo de los resultados, direccionará a la vista adecuada. Tiene un hash que asocia el nombre de una acción con la clase que atiende dicha acción. Ej: ‘listar_temporadas = ListarTemporadasAction Action * SecureAction Para segurizar la llamada a las funciones. Todas aquellas acciones que requieran segurizarse, deberán extender de SecureAction Cada acción realiza una tarea específica Las urls las escribimos siempre de la misma manera: doAction?action=xxx&param1=value1&….&paramN=valueN En xxx se indica la acción a ejecutar: deberá estar en el hash del ActionController Por ejemplo, si queremos listar usuarios : doAction?action=listar_usuarios El ActionController tendrá una entrada en el hash para dicha acción: ‘listar_usuarios’  ‘ListarUsuariosAction’ ListarUsuariosAction será el nombre de la clase que implementa la acción correspondiente. MODEL VIEW CONTROLLER (MVC)

3 Ejemplo para listar usuarios. 1)Model: a)Clase Usuario: b)Factory para usuario c)Manager para usuarios d)Query : acceso a base de datos 2)Controller: a)Acción para listar usuarios b)Mapeo para ActionController 3)View: a)Crear el Html MODEL VIEW CONTROLLER (MVC) Paso a paso

4 1.a ) Model  Clase Usuario: class Usuario { private $cd_usuario; private $ds_nomusuario; private $ds_password; private $oPerfil; … //setters y getters } MODEL VIEW CONTROLLER (MVC) Paso a paso

5 1.b ) Model  Factory para usuario La idea del factory es que construya un objeto a partir de los datos obtenidos en una consulta. class UsuarioFactory implements ObjectFactory{ public function build($next){ $oUsuario = new Usuario(); $oUsuario->setCd_usuario ( $next ['cd_usuario'] ); $oUsuario->setDs_password( $next [‘ds_password'] ); … //para el caso que se hace el join con el perfil. if(array_key_exists('ds_perfil',$next)){ $perfilFactory = new PerfilFactory(); $oUsuario->setPerfil( $perfilFactory->build($next) ); } return $oUsuario; } MODEL VIEW CONTROLLER (MVC) Paso a paso Mapeamos el objeto con la tabla correspondiente. Por otro lado, en caso de que en la consulta vengan los elementos relacionados (joins), construimos los objetos correspondientes utilizando sus propios factories.

6 1.c ) Model  Manager para usuario Los managers contendrán la lógica de negocio asociada a los objetos que administren. Cada manager administrará una o más entidades agrupadas por algún criterio. class UsuarioManager implements IListarManager{ public function agregarUsuario($oUsuario){ //TODO lógica asociada //persistir el usuario en la bbdd. UsuarioQuery::insertUsuario( $oUsuario ); } public function getUsuarios(…){ //TODO lógica asociada $usuarios = UsuarioQuery::getUsuariosConPerfil(…); return $usuarios; } MODEL VIEW CONTROLLER (MVC) Paso a paso Se programa la lógica asociada en cada caso.

7 1.d ) Model  Query Tendremos un query por entidad. Cada query consulta y manipula los datos persistidos. class UsuarioQuery { static function getUsuariosConPerfil(…) { $db = DbManager::getConnection(); $sql = "SELECT * FROM usuario U"; $sql.= " LEFT JOIN perfil P ON(P.cd_perfil=U.cd_perfil) “; $result = $db->sql_query ( $sql ); if(!$result)//hubo un error en la bbdd. throw new DBException($db->sql_error()); $usuarios= ResultFactory::toCollection($db,$result,new UsuarioFactory()); $db->sql_freeresult($res); return ($usuarios); } … } MODEL VIEW CONTROLLER (MVC) Paso a paso Notar como ResultFactory utiliza el factory de usuario que creamos anteriormente (UsuarioFactory) para, a partir del resultado de la consulta sql, crear una colección de objetos (ItemCollection).

8 2.a ) Controller  Acción para listar usuarios Haremos una clase para cada acción que se realice en el sistema. Cada acción debe extender Action ya sea, directa o indirectamente (ya veremos por qué). class ListarUsuarios extends Action{ } MODEL VIEW CONTROLLER (MVC) Paso a paso

9 2.b ) Controller  Mapeo para ActionController MODEL VIEW CONTROLLER (MVC) Paso a paso

10 3 ) View  Html MODEL VIEW CONTROLLER (MVC) Paso a paso


Descargar ppt "ActionController Action * CONTROLLERVIEW listar_x.html listar_y.html XManagerYManager managers ClaseXClaseY XQueryYQuery MODEL MODEL VIEW CONTROLLER (MVC)"

Presentaciones similares


Anuncios Google