phpdoc/Patterns/Abstracts/AbstractSingleton.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="robots" content="index, follow, all" />
<title>Patterns\Abstracts\AbstractSingleton | Patterns</title>
<link rel="stylesheet" type="text/css" href="../../css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="../../css/bootstrap-theme.min.css">
<link rel="stylesheet" type="text/css" href="../../css/sami.css">
<script src="../../js/jquery-1.11.1.min.js"></script>
<script src="../../js/bootstrap.min.js"></script>
<script src="../../js/typeahead.min.js"></script>
<script src="../../sami.js"></script>
<meta name="MobileOptimized" content="width">
<meta name="HandheldFriendly" content="true">
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1">
</head>
<body id="class" data-name="class:Patterns_Abstracts_AbstractSingleton" data-root-path="../../">
<div id="content">
<div id="left-column">
<div id="control-panel">
<form id="search-form" action="../../search.html" method="GET">
<span class="glyphicon glyphicon-search"></span>
<input name="search"
class="typeahead form-control"
type="search"
placeholder="Search">
</form>
</div>
<div id="api-tree"></div>
</div>
<div id="right-column">
<nav id="site-nav" class="navbar navbar-default" role="navigation">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-elements">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="../../index.html">Patterns</a>
</div>
<div class="collapse navbar-collapse" id="navbar-elements">
<ul class="nav navbar-nav">
<li><a href="../../classes.html">Classes</a></li>
<li><a href="../../namespaces.html">Namespaces</a></li>
<li><a href="../../interfaces.html">Interfaces</a></li>
<li><a href="../../traits.html">Traits</a></li>
<li><a href="../../doc-index.html">Index</a></li>
<li><a href="../../search.html">Search</a></li>
</ul>
</div>
</div>
</nav>
<div class="namespace-breadcrumbs">
<ol class="breadcrumb">
<li><span class="label label-default">class</span></li>
<li><a href="../../Patterns.html">Patterns</a></li>
<li><a href="../../Patterns/Abstracts.html">Abstracts</a></li>
<li>AbstractSingleton</li>
</ol>
</div>
<div id="page-content">
<div class="page-header">
<h1>AbstractSingleton</h1>
</div>
<p> class
<strong>AbstractSingleton</strong>
</p>
<div class="description">
<p>A singleton abstract class</p> <p>No abstract method is defined but the best practice is to define an <code>init()</code> method in
the child class as it will be called after instance creation. Arguments passed to the
<code>getInstance</code> and <code>getInstanceByClassname</code> methods will be transmitted to the <code>__construct</code>
or <code>init</code> method.</p>
<p>The complete stack trace for an instance creation is:</p>
<ul>
<li><p>if the constructor is public (<em>bad practice</em>):</p>
<p>$class->__construct( arguments )
$class->init()</p></li>
<li><p>if the constructor is not public (<em>good practice</em>):</p>
<p>$class = new classname
$class->init( arguments )</p></li>
</ul>
</p> </div>
<h2>Methods</h2>
<div class="container-fluid underlined">
<div class="row">
<div class="col-md-2 type">
static
object
</div>
<div class="col-md-8 type">
<a href="#method_getInstance">getInstance</a>()
<p>Static object getter: creation of an instance of the current calling class</p> </div>
<div class="col-md-2"></div>
</div>
<div class="row">
<div class="col-md-2 type">
static
object
</div>
<div class="col-md-8 type">
<a href="#method_getInstanceByClassname">getInstanceByClassname</a>($classname)
<p>Static object getter: creation of an instance from the class name passed in first argument</p> </div>
<div class="col-md-2"></div>
</div>
<div class="row">
<div class="col-md-2 type">
</div>
<div class="col-md-8 type">
<a href="#method___clone">__clone</a>()
<p>Object cloning is avoid</p> </div>
<div class="col-md-2"></div>
</div>
</div>
<h2>Details</h2>
<div id="method-details">
<div class="method-item">
<h3 id="method_getInstance">
<div class="location">at line 88</div>
<code> static
object
<strong>getInstance</strong>()</code>
</h3>
<div class="details">
<div class="method-description">
<p>Static object getter: creation of an instance of the current calling class</p> </div>
<div class="tags">
<h4>Return Value</h4>
<table class="table table-condensed">
<tr>
<td>
object</td>
<td>This may return an instance of an object</td>
</tr>
</table>
</div>
</div>
</div>
<div class="method-item">
<h3 id="method_getInstanceByClassname">
<div class="location">at line 106</div>
<code> static
object
<strong>getInstanceByClassname</strong>($classname)</code>
</h3>
<div class="details">
<div class="method-description">
<p>Static object getter: creation of an instance from the class name passed in first argument</p> </div>
<div class="tags">
<h4>Parameters</h4>
<table class="table table-condensed">
<tr>
<td></td>
<td>$classname</td>
<td>
</td>
</tr>
</table>
<h4>Return Value</h4>
<table class="table table-condensed">
<tr>
<td>
object</td>
<td>This may return an instance of an object</td>
</tr>
</table>
</div>
</div>
</div>
<div class="method-item">
<h3 id="method___clone">
<div class="location">at line 151</div>
<code>
<strong>__clone</strong>()</code>
</h3>
<div class="details">
<div class="method-description">
<p>Object cloning is avoid</p> </div>
<div class="tags">
<h4>Exceptions</h4>
<table class="table table-condensed">
<tr>
<td><a target="_blank" href="http://php.net/Exception"><abbr title="Exception">Exception</abbr></a></td>
<td>Trying to clone a Singleton object will throw an Exception</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</div>
<div id="footer">
Generated by <a href="http://sami.sensiolabs.org/">Sami, the API Documentation Generator</a>.
</div>
</div>
</div>
</body>
</html>