2012-04-24 21 views
6

Tengo el hábito de usar include() mucho en mis scripts php. Me gustaría saber si es un buen enfoque. Solo uso incluir mucho porque hace que el código se vea mejor para una programación a prueba de futuro.Usando demasiado include() en php

Respuesta

5

hacer uso de la función de carga automática php

ejemplo:

function __autoload($class_name) { 
    include $class_name . '.php'; 
} 

cada vez que se instancia una nueva clase. PHP automaticamente llama a la función __autoload con un argumento, es decir, el nombre de la clase. considerar el siguiente ejemplo

$user = new User(): 

cuando se instancia el objeto de usuario aquí la función de carga automática se llama, se intenta incluir el archivo desde el mismo directorio. (con referencia a la función de autocarga anterior). ahora puedes implementar tu propia lógica para autocargar clases. no importa en qué directorio resida. Para obtener más información, consulte este enlace http://in.php.net/autoload.

Actualización: @RepWhoringPeeHaa, lo dijo correcto amigo. hay más beneficios en el uso de spl_autoload que en la función de carga automática simple. El mayor beneficio que veo es que se puede usar o registrar más de una función.

por ejemplo

function autoload_component($class_name) 
{ 
    $file = 'component/' . $class_name . '.php'; 
    if (file_exists($file)) { 
     include_once($file); 
    } 
} 

function autoload_sample($class_name) 
{ 
    $file = 'sample/' . $class_name . '.php'; 
    if (file_exists($file)) { 
     include_once($file); 
    } 
} 
spl_autoload_register('autoload_component'); 
spl_autoload_register('autoload_sample'); 
+0

@yusufiqbalpk, si desea obtener más información. Te sugiero que comiences por aprender los conceptos de OOPS en PHP. aquí está el enlace para que comiences http://net.tutsplus.com/tutorials/php/object-oriented-php-for-beginners/ –

+1

Todas las respuestas fueron buenas pero yo elijo tu enlace tutorial. El mejor chico. – yusufiqbalpk

+1

@yusufiqbalpk es posible que desee considerar la 'nueva' 'spl_autoload' en lugar de la anterior. – PeeHaa

5

Si está desarrollando orientado a objetos y tener un archivo para cada clase, considerar la implementación de una función de cargador automático que llama automáticamente include cuando se utiliza una clase, pero aún no se ha cargado:

$callback = function($className) { 
    // Generate the class file name using the directory of this initial file 
    $fileName = dirname(__FILE__) . '/' . $className . '.php'; 
    if (file_exists($fileName)) { 
     require_once($fileName); 
     return; 
    } 
}; 

spl_autoload_register($callback); 
+0

Nunca lo he usado. Para eso tengo que aprender primero. Entonces, ¿dónde puedo aprender? Un enlace puede ser útil. Gracias por adelantado – yusufiqbalpk