Ver Mensaje Individual
  #3 (permalink)  
Antiguo 16/02/2015, 15:23
Avatar de Dalam
Dalam
 
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 13 años, 8 meses
Puntos: 56
Respuesta: Delegar repetición de código en otra función

Te dire una forma de que luego puedas reutilizar codigo
Código PHP:
Ver original
  1. <?php
  2. # Constantes para los modos de tratar los archivos con fopen(), popen()
  3.  
  4. # Inicio constantes
  5.  
  6.     define('FOPEN_READ',                            'rb');
  7.     define('FOPEN_READ_WRITE',                      'r+b');
  8.     define('FOPEN_WRITE_CREATE_DESTRUCTIVE',        'wb');
  9.     define('FOPEN_READ_WRITE_CREATE_DESTRUCTIVE',   'w+b');
  10.     define('FOPEN_WRITE_CREATE',                    'ab');
  11.     define('FOPEN_READ_WRITE_CREATE',               'a+b');
  12.     define('FOPEN_WRITE_CREATE_STRICT',             'xb');
  13.     define('FOPEN_READ_WRITE_CREATE_STRICT',        'x+b');
  14.    
  15.     define('DIR_CSV',       ROOT . 'datos' . DIRECTORY_SEPARATOR );
  16.     define('DIR_VISTAS',    ROOT . 'vistas' . DIRECTORY_SEPARATOR .
  17.                             CONTROLADOR . DIRECTORY_SEPARATOR );
  18.    
  19. # Fin constantes
  20.  
  21. # function csv
  22.  
  23.     function csv( $action , $archivo , $vista = false )
  24.     {
  25.         switch( $action )
  26.         {
  27.             case 'leer':
  28.                 $archivo = DIR_CSV . $archivo . '.csv';
  29.                 if( is_file( $archivo ) )
  30.                 {
  31.                     $handle = fopen( $archivo , FOPEN_READ );
  32.                     $result = array();
  33.                     while( $data = fgetcsv( $handle ) )
  34.                     {
  35.                         $resul[] = $data;
  36.                     }
  37.                     fclose( $handle );
  38.                     # aqui incluyo el codigo de tu funcion inicio
  39.                     $filas = $result;
  40.                     if( $vista && is_file( DIR_VISTAS . $vista ) )
  41.                     {
  42.                         $filas = $result;
  43.                         include(DIR_VISTAS . $vista);
  44.                         return;
  45.                     } else return $result;
  46.                 } else die( 'El archivo especificado no existe.' );
  47.             default:
  48.                 die( 'No esta definida la accion especificada ' . $action );
  49.         }
  50.     }
  51.  
  52. # Fin function csv
De esta forma podras crear mas acciones en la funcion aparte de leer.
Te permite usarla de la misma forma que la usabas tu pero incluye la auto carga de la vista si lo deseas.
Para usarla tiene un tercer parametro al cual se le pasa el nombre de la vista

Uso a tu modo
Código PHP:
Ver original
  1. $filas = csv('leer', 'directiva');
  2. include DIR_VISTAS . 'inicio.phtml';
Uso con autocarga de vista
Código PHP:
Ver original
  1. csv('leer' , 'directiva' , 'inicio.phtml');
__________________
http://www.roglastudios.es