@@ -109,12 +109,9 @@ public function isOn()
109109 */
110110 public function evaluate ($ user , $ featureRequester , $ includeReasonsInEvents = false )
111111 {
112- if ($ this ->isOn ()) {
113- $ prereqEvents = array ();
114- $ detail = $ this ->evaluateInternal ($ user , $ featureRequester , $ prereqEvents , $ includeReasonsInEvents );
115- return new EvalResult ($ detail , $ prereqEvents );
116- }
117- return new EvalResult ($ this ->getOffValue (EvaluationReason::off ()), array ());
112+ $ prereqEvents = array ();
113+ $ detail = $ this ->evaluateInternal ($ user , $ featureRequester , $ prereqEvents , $ includeReasonsInEvents );
114+ return new EvalResult ($ detail , $ prereqEvents );
118115 }
119116
120117 /**
@@ -126,6 +123,10 @@ public function evaluate($user, $featureRequester, $includeReasonsInEvents = fal
126123 */
127124 private function evaluateInternal ($ user , $ featureRequester , &$ events , $ includeReasonsInEvents )
128125 {
126+ if (!$ this ->isOn ()) {
127+ return $ this ->getOffValue (EvaluationReason::off ());
128+ }
129+
129130 $ prereqFailureReason = $ this ->checkPrerequisites ($ user , $ featureRequester , $ events , $ includeReasonsInEvents );
130131 if ($ prereqFailureReason !== null ) {
131132 return $ this ->getOffValue ($ prereqFailureReason );
@@ -170,19 +171,14 @@ private function checkPrerequisites($user, $featureRequester, &$events, $include
170171 $ prereqFeatureFlag = $ featureRequester ->getFeature ($ prereq ->getKey ());
171172 if ($ prereqFeatureFlag == null ) {
172173 $ prereqOk = false ;
173- } elseif ( $ prereqFeatureFlag -> isOn ()) {
174+ } else {
174175 $ prereqEvalResult = $ prereqFeatureFlag ->evaluateInternal ($ user , $ featureRequester , $ events , $ includeReasonsInEvents );
175176 $ variation = $ prereq ->getVariation ();
176- if ($ prereqEvalResult ->getVariationIndex () !== $ variation ) {
177+ if (! $ prereqFeatureFlag -> isOn () || $ prereqEvalResult ->getVariationIndex () !== $ variation ) {
177178 $ prereqOk = false ;
178179 }
179- } else {
180- $ prereqOk = false ;
181- }
182- if ($ prereqFeatureFlag ) {
183180 array_push ($ events , Util::newFeatureRequestEvent ($ prereq ->getKey (), $ user ,
184- $ prereqEvalResult ? $ prereqEvalResult ->getVariationIndex () : null ,
185- $ prereqEvalResult ? $ prereqEvalResult ->getValue () : null ,
181+ $ prereqEvalResult ->getVariationIndex (), $ prereqEvalResult ->getValue (),
186182 null , $ prereqFeatureFlag ->getVersion (), $ this ->_key ,
187183 ($ includeReasonsInEvents && $ prereqEvalResult ) ? $ prereqEvalResult ->getReason () : null
188184 ));
0 commit comments