Ver Mensaje Individual
  #10 (permalink)  
Antiguo 13/04/2011, 20:11
Avatar de carlos_belisario
carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años, 7 meses
Puntos: 461
Respuesta: Donde incluir librerias.. modelo ¿? controlador¿?

Cita:
Iniciado por masterpuppet Ver Mensaje
Habria que ver, como haces el dispatch ?, utilizas algo parecido a un FrontController ?, osea cual es el punto de entrada de la aplicación ?,

Con respecto a los ejemplos de autoloader, pense que con los que trae el manual podria servir, pero bueno algo simple podria ser:
Código PHP:
Ver original
  1. class Autoloader
  2. {
  3.     protected $_paths = array();
  4.  
  5.     public function __construct(array $paths = array())
  6.     {
  7.         spl_autoload_register(array($this, 'loader'));
  8.         $this->_paths = $paths;
  9.     }
  10.  
  11.     private function loader($className)
  12.     {
  13.         foreach($this->_paths as $path) {
  14.             $className = strtolower($className);
  15.             $class     = $path . DIRECTORY_SEPARATOR . $className . '.php';
  16.             if(file_exists($class)) {
  17.                 include $class;
  18.                 if(class_exists($className)){
  19.                     continue;
  20.                 }
  21.             }
  22.  
  23.         }
  24.     }
  25. }

buscaría la clase en los directorios que le pases por parámetro y el nombre de los ficheros debe ser el nombre de la clase en minúsculas, pero vos lo adaptas a tus necesidades y listo.

para utilizarlo:
Código PHP:
Ver original
  1. //en tu bootstrap
  2. $autoloader = new Autoloader(array('/path/to/dir'));
  3.  
  4. //en algún controller o donde quieras, esto buscaria dentro de "/path/to/dir"
  5. //el fichero myclass.php que contendria la clase MyClass
  6. $class = new MyClass();

Saludos.
Excelente estaba leyendo un poco sobre este tipo de clase, yo instanciaba mucho en el controlador principal cosa que lei por ahi que esta errado ya que debe de haber un autoload, vi el del manual pero no me puse a crear ninguna todavia voy a tomar esta para inicio, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way