For PHP5 applications, the aggregate functionality available through classkit has been incorporated into and replaced by runkit. Per the classkit page of the PHP manual:
"Note: This extension has been replaced by runkit, which is not limited to class manipulation but has function manipulation, as well."
http://php.net/manual/en/ref.runkit.php
Per the runkit page:
" This package is meant as a feature added replacement for the classkit package. When compiled with the --enable-runkit=classkit option to ./configure, it will export classkit compatible function definitions and constants."
aggregate
(PHP 4 >= 4.2.0)
aggregate — Agrège dynamiquement des classes et objets
Description
void aggregate
( object $object
, string $class_name
)
Agrège les méthodes et propriétés de la classe class_name dans l'objet object . Les méthodes et propriétés commençant par un souligné ("_") sont considérées comme privées et ignorées dans le processus d'agrégation. Les constructeurs sont aussi exclus de l'agrégation.
Liste de paramètres
- object
-
- class_name
-
Valeurs de retour
Aucune valeur n'est retournée.
aggregate
kencomer at NOSPAM dot kencomer dot com
12-Sep-2005 06:22
12-Sep-2005 06:22
Matt Barry
28-Mar-2005 10:02
28-Mar-2005 10:02
A note for those who may be implementing projects in PHP4 using aggregate(); these functions do not exist in PHP5. For similar functionality, you can try using the Classkit extension:
http://us2.php.net/manual/en/ref.classkit.php
gmail pfayolle
07-Jan-2005 09:16
07-Jan-2005 09:16
Note that even if this can be used to emulate multiple inheritance to some extent, an object in PHP can only be subclass of the class used in the class declaration and no other.
<?php
class A {}
class B {}
class C extends A
{
function C()
{
aggregate($this, 'B'); // emulate multiple inheritance
}
}
$c = new C;
echo (int)is_subclass_of($c, 'B');
/*
Output: 0
*/
?>
hewei at ied dot org dot cn
02-Mar-2003 12:34
02-Mar-2003 12:34
YES you can use aggregation functions to simulate multiple inheritence.
function foo()
{
aggregate($this, "bar");
bar::bar();
}
