Hi,

Firstly let me say I'm reasonably new to CakePHP, but not the design
patterns it uses (I'm a fast learner and have used frameworks before).

I've recently been given a CakePHP project, it's got hundreds of
bugs,is poorly designed and written, hard-coding access levels in /
cake/libs/controller/app_controller.php, etc. All of the previous
developers code in the /cake/ folder I've *moved* to respected
'parent' controllers in the /app/ folder. For example, /app/
app_helper.php, etc instead of /cake/libs/helpers/helper.php.
Everything worked at this point.

Secondly he uses constructs in every controller and to load models he
uses $this->uses = array('discussion'), etc. I removed these
constructs and changed it to var $uses = array('Discussion'); at top
of each controller.

However, now I'm getting errors.
Here's one;
** CODE **
Warning (512): Controller::paginate() - can't find model Discussion in
controller DiscussionsController [CORE/cake/libs/controller/
controller.php, line 947]
** /CODE **

Now, thats not all if I remove his construct (which has
parent::Controller) in the app_controller.php, and use my no-
constructor method when i try go to a controller it redirects me to /
users/login (Missing Controller error in title). This is really
unexpected behaviour because I've searched contents of every file no
reference of /users/login. And I don't know why it doesn't load any of
my models when I use the var $uses method. Does it have something to
do with the construct, as he was doing parent::Controller in each of
his constructs and extending each controller to the AppController.
Here is a small extract of the way I am writing controllers.


** CODE **
class DiscussionsController extends AppController {

   /**
   * Name of the controller
   *
   * @var string
   */
   var $name = 'Discussions';

   /**
   * Specifies the models (or uses) used in this controller
   *
   * @var array
   */
   var $uses = array('Action', 'Discussion', 'DiscussionComment');

   /**
   * Specifies the components used in this controller
   *
   * @var array
   */
   var $components = array('Upload');

   /**
   * Specifies the helpers used in this controller
   *
   * @var array
   */
   var $helpers = array('Time');

   /**
   * Define the pagination defaults
   *
   * @var array
   */
   var $paginate = array('Discussion', array(
           'fields' => array('Discussion.id', 'Discussion.title',
'Discussion.description', 'Discussion.image', 'Discussion.created',
'User.id', 'User.name'),
           'order' => array('Discussion.id' => 'DESC'),
           'limit' => 10,
           'recursive' => 0
       ));
** /CODE **

And this is his method;


** CODE **
function __construct() {
       parent::__construct();

       $this->name = 'Discussions';

       $this->uses[] = 'Action';
       $this->uses[] = 'Discussion';
       $this->uses[] = 'DiscussionComment';
       $this->components[] = 'Upload';
       $this->helpers[] = 'Time';

       $this->noAccess = array(
           -1     => array('start', 'add_comment', 'delete', 'edit'),
           0     => array(),
           1     => array(),
           2    => array()
           );
   }
** /CODE **

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to