Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Originally posted here <a href="http://cslai.coolsilon.com/2009/03/28/extending-zend-framework/" rel="nofollow noreferrer">http://cslai.coolsilon.com/2009/03/28/extending-zend-framework/</a></p> <p>My current solution is as follows:</p> <pre><code>abstract class Coolsilon_Controller_Base extends Zend_Controller_Action { public function dispatch($actionName) { $parameters = array(); foreach($this-&gt;_parametersMeta($actionName) as $paramMeta) { $parameters = array_merge( $parameters, $this-&gt;_parameter($paramMeta, $this-&gt;_getAllParams()) ); } call_user_func_array(array(&amp;$this, $actionName), $parameters); } private function _actionReference($className, $actionName) { return new ReflectionMethod( $className, $actionName ); } private function _classReference() { return new ReflectionObject($this); } private function _constructParameter($paramMeta, $parameters) { return array_key_exists($paramMeta-&gt;getName(), $parameters) ? array($paramMeta-&gt;getName() =&gt; $parameters[$paramMeta-&gt;getName()]) : array($paramMeta-&gt;getName() =&gt; $paramMeta-&gt;getDefaultValue()); } private function _parameter($paramMeta, $parameters) { return $this-&gt;_parameterIsValid($paramMeta, $parameters) ? $this-&gt;_constructParameter($paramMeta, $parameters) : $this-&gt;_throwParameterNotFoundException($paramMeta, $parameters); } private function _parameterIsValid($paramMeta, $parameters) { return $paramMeta-&gt;isOptional() === FALSE &amp;&amp; empty($parameters[$paramMeta-&gt;getName()]) === FALSE; } private function _parametersMeta($actionName) { return $this-&gt;_actionReference( $this-&gt;_classReference()-&gt;getName(), $actionName ) -&gt;getParameters(); } private function _throwParameterNotFoundException($paramMeta, $parameters) { throw new Exception(”Parameter: {$paramMeta-&gt;getName()} Cannot be empty”); } } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload