#6325: Component options specified in AppController supercede those in child
controller
---------------------------------------------+------------------------------
    Reporter:  neilcrookes                   |          Type:  Bug       
      Status:  new                           |      Priority:  Medium    
   Milestone:  1.2.x.x                       |     Component:  Components
     Version:  1.2 Final                     |      Severity:  Normal    
    Keywords:  component initialise options  |   Php_version:  n/a       
Cake_version:                                |  
---------------------------------------------+------------------------------
 == What I did: ==


 Included MyComponent in AppController::components array with no options.
 Also included the same component, but with some options specified in
 MyController::components. Checked the options param sent to
 MyComponent::initialise method.


 == What I expected: ==


 The options I specified in MyController.


 == What actually happened: ==


 An empty array (assuming because I didn't specify any options when
 including it in AppController)


 == Reason: ==


 Line 396 of cake/libs/controller/controller.php:

 {{{
 $this->{$var} = Set::merge($normal, $app);
 }}}


 Set::merge overwrites elements in 1st param with those in 2nd param with
 same key. I.e. It overwrites options specified at specific controller
 level, with those specified at AppController level


 == Suggestion: ==


 Change line 396 of cake/libs/controller/controller.php to:

 {{{
 $this->{$var} = Set::merge($app, $normal);
 }}}


 I.e. reverse order of Set::merge params so component settings set at
 specific controller level override those at App level instead of vice
 versa.

-- 
Ticket URL: <https://trac.cakephp.org/ticket/6325>
CakePHP : The Rapid Development Framework for PHP <https://trac.cakephp.org/>
Cake is a rapid development framework for PHP which uses commonly known design 
patterns like ActiveRecord, Association Data Mapping, Front Controller and MVC. 
Our primary goal is to provide a structured framework that enables PHP users at 
all levels to rapidly develop robust web applications, without any loss to 
flexibility.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"tickets cakephp" group.
To post to this group, send email to tickets-cakephp@googlegroups.com
To unsubscribe from this group, send email to 
tickets-cakephp+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/tickets-cakephp?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to