2011-03-15 9 views
6

Me preguntaba cuál es la mejor (y real) práctica para hacer una clase abstracta y subclases en PHP cuando se trata de archivar.¿Mejor práctica para presentar clases y subclases abstractas?

Tengo abstract class games, y me preguntaba si debería poner las subclases en archivos separados y require_once('games.class.php'); para archivos separados o simplemente tener cada subclase en el archivo abstract class games?

Gracias!

Respuesta

8

La gente en general tienden a utilizar un archivo por cada clase - mapear los nombres de los archivos a los nombres de clases de (esto facilita autoloading).


Para un muy buen ejemplo de esto, usted debe echar un vistazo a las fuentes de Zend Framework: hay un gran número de clases, con interfaces, clases abstractas,-múltiples niveles de subdirectorios y todos.

Y aquí está la parte relevante de su Coding Standards.

+0

Gracias, aprecio súper esto! – Satomi

+0

De nada :-) Diviértete! –

+0

Pregunta sobre la carga automática. Estaba mirando Zend Framework, y realmente no puedo entenderlo. Usan require_once en las clases mismas. ¿Dónde pongo '__autoload'? Por ejemplo, tengo '/ classes/games.class.php', y digo' classes/games/xbox.class.php' esta clase de xbox debe 'require_once 'classes/games.class.php'' y debería usar 'require_once '../ games.class.php'' o el anterior? __autoload parece que debería estar en un archivo ** header.php **. – Satomi

0

Sugiero usar la carga automática en lugar de requerir o incluir y, por supuesto, un archivo por clase.

0

logra esto de una manera más a prueba de futuro que definitivamente se apegaría a 'una clase por archivo'.

Las clases reales podrían incluirse de muchas formas, entre las que se encuentra el autocargador. Un consejo: sólo el nombre del archivo/clase en consecuencia:

abstract class GamesAbstract {} 
class Games extends GamesAbstract {} 
Cuestiones relacionadas