curt Wed Feb 2 22:02:56 2005 EDT
Modified files: /phpdoc/en/language/oop5 patterns.xml Log: incorporate note, to prevent clone'ing of singletons http://cvs.php.net/diff.php/phpdoc/en/language/oop5/patterns.xml?r1=1.5&r2=1.6&ty=u Index: phpdoc/en/language/oop5/patterns.xml diff -u phpdoc/en/language/oop5/patterns.xml:1.5 phpdoc/en/language/oop5/patterns.xml:1.6 --- phpdoc/en/language/oop5/patterns.xml:1.5 Wed Feb 2 21:51:07 2005 +++ phpdoc/en/language/oop5/patterns.xml Wed Feb 2 22:02:56 2005 @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<!-- $Revision: 1.5 $ --> +<!-- $Revision: 1.6 $ --> <sect1 id="language.oop5.patterns"> <title>Patterns</title> <para> @@ -74,7 +74,7 @@ // Hold an instance of the class private static $instance; - // A private constructor + // A private constructor; prevents direct creation of object private function __construct() { echo 'I am constructed'; @@ -96,6 +96,13 @@ { echo 'Woof!'; } + + // Prevent users to clone the instance + public function __clone() + { + trigger_error('Clone is not allowed.', E_USER_ERROR); + } + } ?> @@ -115,6 +122,9 @@ $test = Example::singleton(); $test->bark(); +// This will issue an E_USER_ERROR. +$test_clone = clone($test); + ?> ]]> </programlisting>