<?php
/**
- * A generic controller class
+ * A generic controller class. You should extend this base class if you want to
+ * write your own controller. You get the advantage that you can use the pre and
+ * post filters.
*
* @author Roland Haeder <webmaster@ship-simu.org>
* @version 0.0.0
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-class BaseController extends BaseFrameworkSystem {
- /**
- * Instance of a CommandResolver class
- */
- private $resolverInstance = null;
-
+class BaseController extends BaseFrameworkSystem implements Registerable {
/**
* Pre filter chain instance
*/
/**
* Protected constructor
*
+ * @param $className Name of the class
* @return void
*/
- protected function __construct ($class) {
+ protected function __construct ($className) {
// Call parent constructor
- parent::__construct($class);
+ parent::__construct($className);
// Clean up a little
$this->removeNumberFormaters();
$this->removeSystemArray();
// Initialize both filter chains
- $this->preFilterChain = FilterChain::createFilterChain();
- $this->postFilterChain = FilterChain::createFilterChain();
- }
+ $this->preFilterChain = ObjectFactory::createObjectByConfiguredName('filter_chain_class');
+ $this->postFilterChain = ObjectFactory::createObjectByConfiguredName('filter_chain_class');
- /**
- * Getter for a command resolver instance
- *
- * @
- * @return $resolverInstance An instance of a command resolver class
- */
- public final function getResolverInstance () {
- return $this->resolverInstance;
- }
-
- /**
- * Setter for a command resolver instance
- *
- * @param $resolverInstance An instance of a command resolver class
- * @return void
- */
- public final function setResolverInstance (CommandResolver $resolverInstance) {
- $this->resolverInstance = $resolverInstance;
+ // Add this controller to the registry
+ Registry::getRegistry()->addInstance('controller', $this);
}
/**
* @return void
*/
protected function executePreFilters (Requestable $requestInstance, Responseable $responseInstance) {
+ // Execute all pre filters
$this->preFilterChain->processFilters($requestInstance, $responseInstance);
}
* @return void
*/
protected function executePostFilters (Requestable $requestInstance, Responseable $responseInstance) {
+ // Execute all post filters
$this->postFilterChain->processFilters($requestInstance, $responseInstance);
}
}