Book Image

CakePHP 2 Application Cookbook - Third Edition

By : Watts
Book Image

CakePHP 2 Application Cookbook - Third Edition

By: Watts

Overview of this book

If you are a CakePHP developer looking to ease the burden of development, then this book is for you. As a headfirst dive into the framework, this collection of recipes will help you get the most out of CakePHP, and get your applications baked in no time. Even if you're not familiar with the framework, we'll take you from basic CRUD building to useful solutions that will aid in getting the job done quickly and efficiently.
Table of Contents (14 chapters)
13
Index

Running cron shells


Another typical scenario to use CakePHP console shells is to implement a data warehouse and a time-intensive and recurring task.

In this recipe, we'll create a recurring job to calculate our package ratings, based on some complex logic.

Getting ready

For this recipe, we'll assume that you have a packages table and the related model that we created in our previous recipe. However, we'll also add a new column to store our ratings per package with the following SQL statement:

ALTER TABLE packages ADD rating INT(20) UNSIGNED NOT NULL DEFAULT '0';

How to do it...

Perform the following steps:

  1. First, create a file named RatingShell.php in app/Console/Command/ with the following content:

    <?php
    App::uses('AppShell', 'Console/Command');
    
    class RatingShell extends AppShell {
    
      public function main() {
        $this->out($this->getOptionParser()->help());
      }
    
      public function getOptionParser() {
        $parser = parent::getOptionParser();
        return $parser->description('Rating...