Source for file basecontroller.php

Documentation is available at basecontroller.php

  1. <?php
  2. /**
  3.  * This application is free software; you can redistribute
  4.  * it and/or modify it under the terms of the GNU
  5.  * General Public License as published by the Free
  6.  * Software Foundation; either version 3 of the License,
  7.  * or (at your option) any later version.
  8.  * 
  9.  * This application is distributed in the hope that it will
  10.  * be useful, but WITHOUT ANY WARRANTY; without even the
  11.  * implied warranty of MERCHANTABILITY or FITNESS FOR A
  12.  * PARTICULAR PURPOSE.  See the GNU General Public
  13.  * License for more details.
  14.  *
  15.  *
  16.  * @author Andrew Judd <contact@andrewjudd.ca>
  17.  * @copyright Andrew Judd, 2010
  18.  * @license http://www.gnu.org/licenses/gpl-3.0.txt GPLv3
  19.  *
  20.  * @project Mini MVC
  21.  * @name app/controllers/basecontroller.php
  22.  * @description This class acts as a base line class for the creation of any
  23.  *               future controllers which are made.  It will provide a load
  24.  *               library function which will automatically create an instance
  25.  *               of the library.
  26.  */
  27.  
  28. /* Check if attempting for direct access */
  29. if !defined '__FULLPATH__' ) )
  30. {
  31.     die header 'HTTP/1.0 404 Not Found' ) );
  32. }
  33.  
  34. abstract class BaseController extends Base
  35. {
  36.     /**
  37.      * The no argument constructor.
  38.      */
  39.     public function __construct ()
  40.     {
  41.         /* Do Nothing */
  42.     }
  43.  
  44.     /**
  45.      * This function can be used anywhere in order to load a specific library
  46.      * in order to allow it to be used later on.
  47.      * @param string $library - The name of the library to load
  48.      * @param array $params - The parameters for the constructor of the object
  49.      * @returns boolean - TRUE if the library has been loaded, FALSE otherwise
  50.      */
  51.     public function __loadLibrary $library$params array () )
  52.     {
  53.         /* Firstly, check the system libraries */
  54.         $chkPath __SYSTEMLIBS__ strtolower $library '.php';
  55.  
  56.         /* Check if the file exists */
  57.         if file_exists $chkPath == true )
  58.         {
  59.              /* Then load the system library */
  60.              require_once $chkPath );
  61.         }
  62.         else
  63.         {
  64.             /* 
  65.              * Otherwise, it isn't a system library, so look in the user library
  66.              * folder.
  67.              */
  68.             $chkPath __USERLIBS__ $library '.php';
  69.  
  70.             /* Check if the file exists */
  71.             if file_exists $chkPath == true )
  72.             {
  73.                 /* Then load the library */
  74.                 require_once $chkPath );
  75.             }
  76.             else
  77.             {
  78.                 /* It doesn't exist, so add it to the list of error messages */
  79.                 Base::$errors [sprintf Base::$errorMessages 'invalidlibrary' ],
  80.                     $library );
  81.  
  82.                 return false );
  83.             }
  84.         }
  85.  
  86.         /* Create the instance */
  87.         $class new ReflectionClass $library );
  88.         $this -> $library $class -> newInstanceArgs $params );
  89.  
  90.         return true );
  91.     }
  92.  
  93.     /**
  94.      * This function is used statically in order to load any of the models
  95.      * required for the application. The models can either be passed into
  96.      * this function one by one or as an array.  If they are passed in as
  97.      * an array, each on of them is included sequentially.
  98.      * @param array/string $models - The single or array of models to use
  99.      */
  100.     public function __loadModel $models )
  101.     {
  102.         /* Make sure to include the abstract class */
  103.         require_once __MODELS__ 'basemodel.php' );
  104.  
  105.         /* Check if an array of models has been provided */
  106.         if is_array $models ) )
  107.         {
  108.             /* An array has been provided */
  109.             foreach $models as $key => $model )
  110.             {
  111.                 /* Check if the file exists */
  112.                 $chkFile __MODELS__ strtolower $model '.php';
  113.  
  114.                 /* Make sure the file exists */
  115.                 if file_exists $chkFile ) )
  116.                 {
  117.                     /* Model existed */
  118.                     require_once $chkFile );
  119.  
  120.                     /* Instantiate the model */
  121.                     $this -> $model new $model ();
  122.                 }
  123.                 /* Otherwise, it was an invalid model */
  124.                 else
  125.                 {
  126.                     /* Provide an error */
  127.                     Base::$errors [sprintf Base::$errorMessages
  128.                         'modelfilenotfound' ]$model__MODELS__ );
  129.                 }
  130.             }
  131.         }
  132.         /* Otherwise only one file */
  133.         else
  134.         {
  135.             /* Check if the file exists */
  136.             $chkFile __MODELS__ $models '.php';
  137.  
  138.             /* Make sure the file exists */
  139.             if file_exists $chkFile ) )
  140.             {
  141.                 /* Model existed */
  142.                 require_once $chkFile );
  143.  
  144.                 $this -> $models new $models ();
  145.             }
  146.             /* Otherwise, it was an invalid model */
  147.             else
  148.             {
  149.                 /* Provide an error */
  150.                 Base::$errors [sprintf Base::$errorMessages
  151.                     'modelfilenotfound' ]$model__MODELS__ );
  152.             }
  153.         }
  154.     }
  155.  
  156.  
  157. }

Documentation generated on Thu, 01 Jul 2010 20:37:14 -0400 by phpDocumentor 1.4.3