diff options
author | Tim Almdal <tnalmdal@shaw.ca> | 2009-12-26 11:24:50 -0800 |
---|---|---|
committer | Tim Almdal <tnalmdal@shaw.ca> | 2009-12-26 11:24:50 -0800 |
commit | 3060a6f662da66008d57a461bf1c9b5b4aa2b002 (patch) | |
tree | 442fd290505817efc0324f2af6e01805cb7396aa /system/libraries/Model.php | |
parent | 1cd6a615bb47a33794e4a4f690c87a348ab752d7 (diff) | |
parent | 32d25dafd5b033338b6a9bb8c7c53edab462543a (diff) |
Merge branch 'master' into talmdal_dev
Conflicts:
modules/gallery/controllers/albums.php
modules/gallery/controllers/movies.php
modules/gallery/controllers/photos.php
Diffstat (limited to 'system/libraries/Model.php')
-rw-r--r-- | system/libraries/Model.php | 35 |
1 files changed, 33 insertions, 2 deletions
diff --git a/system/libraries/Model.php b/system/libraries/Model.php index 0c9fd8d6..01d16fdd 100644 --- a/system/libraries/Model.php +++ b/system/libraries/Model.php @@ -2,15 +2,46 @@ /** * Model base class. * - * $Id: Model.php 4007 2009-02-20 01:54:00Z jheathco $ + * $Id: Model.php 4679 2009-11-10 01:45:52Z isaiah $ * * @package Core * @author Kohana Team * @copyright (c) 2007-2009 Kohana Team - * @license http://kohanaphp.com/license.html + * @license http://kohanaphp.com/license */ class Model_Core { + /** + * Creates and returns a new model. + * + * @param string model name + * @param mixed constructor arguments + * @param boolean construct the model with multiple arguments + * @return Model + */ + public static function factory($name, $args = NULL, $multiple = FALSE) + { + // Model class name + $class = ucfirst($name).'_Model'; + + if ($args === NULL) + { + // Create a new model with no arguments + return new $class; + } + + if ($multiple !== TRUE) + { + // Create a model with a single argument + return new $class($args); + } + + $class = new ReflectionClass($class); + + // Create a model with multiple arguments + return $class->newInstanceArgs($args); + } + // Database object protected $db = 'default'; |