Richard Quadling wrote:
The following code (which cannot currently work as PHP does not allow
for method overloading) would be perfect for me.
<?php
class DataConnector {
/**
* Rules
*
* What rules does this data connector use.
*
* @param Zend_Config
*/
private $Rules = Null;
/**
* Constructor : Keyed
*
* This constructor will access the main registry to determine which
pre-saved rules to use.
*
* @param string $Key The registry key.
*
* @return DataConnector
*/
public function __construct($Key) {
// Use the key to retrieve the rules for this connector.
$this->__construct(registry::RetrieveViaKey(__CLASS__, $Key));
}
/**
* Constructor : Partial
*
* This constructor will construct the rules from the default
template and populate the 3 critical ones.
*
* @param string $Part1
* @param string $Part2
* @param string $Part3
*
* @return DataConnector
*/
public function __construct($Part1, $Part2, $Part3) {
// Use the Parts to construct the rules for this connector.
$Rules = registry::RetrieveDefault(__CLASS__);
$Rules->setPart1 = $Part1;
$Rules->setPart2 = $Part2;
$Rules->setPart3 = $Part3;
$this->__construct($Rules);
}
/**
* Constructor : Complete
*
* This constructor will take the supplied config and apply it to the
rules.
*
* @param Zend_Config $Rules
*
* @return DataConnector
*/
public function __construct(Zend_Config $Rules) {
// Use the supplied rules
$this->Rules = $Rules;
$this->Init();
}
/**
* Post construction processing
*/
protected function Init() {
}
/**
* Store configuration in the registry.
*
* @param string $Key Allow for a new key to be used.
*
* @return DataConnector
*/
public function Store($Key = Null) {
$this->Rules['Key'] = $Key ?: $this->Rules['Key'];
registry::Store(__CLASS__, $this->Rules);
return $this;
}
}
?>
Are you asking a question? I'm not sure what you want here :) Does the
technique I sent provide you with a solution to this problem or not?
:)
Cheers,
Rob.
--
http://www.interjinn.com
Application and Templating Framework for PHP
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php