Comment diviser une classe PHP pour séparer les fichiers?

Je veux faire quelque chose comme catégories de classes en Objective-C, de définir une classe dans un fichier, mettre en œuvre certaines méthodes de base là-bas, puis de mettre en œuvre certaines des méthodes d'assistance dans un autre sans sous-classement ou des interfaces, juste "continuer" la classe.

Possible en PHP?

  • N'est-ce pas un require_once() assez?
  • Je veux utiliser des trucs privés de la classe en deux endroits (comme certains privée partagée et certaines variables d'instance).
  • J'ai pensé à quelque chose de similaire, d'être en mesure de "s'étendre" une méthode à l'intérieur d'une classe, pour le client, le code spécifique, pour les installations de client. Diviser en fichiers séparés est assez facile, surtout avec de l'autochargeur.
  • Pourriez-vous faire un exemple et expliquer pourquoi l'extension de la classe n'est pas indiqué?
  • Sémantique des trucs. Une classe de gestion de la base de données n'est pas vraiment comme les enfants d'une classe avec des méthodes d'assistance seulement. De toute façon, je vais composer les outils via un simple exemple alors.
  • Ok je vois maintenant ce que tu veux dire. Eh bien, d'une certaine façon, on pourrait même envisager l'ENSEMBLE de vos classes comme les enfants d'une classe générique qui contient les méthodes d'assistance. Comme vous l'avez dit, la sémantique des trucs.
  • PHP n'est pas objective-C, ne vous attendez pas à de la même façon. La seule chose qui pourrait venir de loin, en PHP est de traits et comme ils sont relativement nouveaux, je ne dépendent pas de PHP hôtes avoir une version de PHP qui prend en charge disponibles.
  • J'ai essayé traits juste avant, mais je ne peut pas se référer à la même base de cette de cette façon. C'est la même chose, alors que si j'avais utilisé une DBHelpers::dissectFields(); statique des choses, ou alors.
  • De telles choses sont assez moche de toute façon, peu importe comment vous les appelez (mixin, les traits, quelle que soit l'obj-c appelle la chose que vous décrivez. Probablement mieux d'avoir des classes d'assistance qui peuvent être passés dans la classe principale qui fournissent plugin fonctionnalité.
  • Par ailleurs, j'ai emprunté un peu d'Objectif-C-que des choses que, pour certains complexes classes I extrait de l'interface publique dans un fichier séparé (la même chose que pour les fichiers d'en-tête), il est donc moins sujette aux erreurs.
  • Ce sujet de traits?

InformationsquelleAutor Geri | 2013-05-16