Class ModelTask
Task class for creating and updating model files.
Copyright: Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org)
License: License (http://www.opensource.org/licenses/mit-license.php)
Location: tasks/model.php
Properties summary
-
$_tables
publicarray
Holds tables found on connection. -
$_validations
publicarray
Holds validation method map. -
$path
publicstring
path to MODELS directory -
$skipTables
publicarray
Tables to skip when running all() -
$tasks
publicarray
tasks
Inherited Properties
Method Summary
-
__interactive() public
Handles interactive baking -
_generatePossibleKeys() public
Finds all possible keys to use on custom associations. -
_getModelObject() public
Get a model object for a class name. -
_printAssociation() public
Print out all the associations of a particular type -
all() public
Bake all models at once. -
bake() public
Assembles and writes a Model file. -
bakeFixture() public
Interact with FixtureTask to automatically bake fixtures when baking models. -
bakeTest() public
Assembles and writes a unit test file -
confirmAssociations() public
Interact with the user and confirm associations. -
doAssociations() public
Handles associations -
doMoreAssociations() public
Interact with the user and generate additional non-conventional associations -
doValidation() public
Handles Generation and user interaction for creating validation. -
execute() public
Execution method always used for tasks -
fieldValidation() public
Does individual field validation handling. -
findBelongsTo() public
Find belongsTo relations and add them to the associations list. -
findDisplayField() public
interact with the user to find the displayField value for a model. -
findHasAndBelongsToMany() public
Find the hasAndBelongsToMany relations and add them to associations list -
findHasOneAndMany() public
Find the hasOne and HasMany relations and add them to associations list -
findPrimaryKey() public
Finds a primary Key in a list of fields. -
getAllTables() public
Get an Array of all the tables in the supplied connection will halt the script if no tables are found.
-
getName() public
Forces the user to specify the model he wants to bake, and returns the selected model name. -
getTable() public
Interact with the user to determine the table name of a particular model -
help() public
Displays help contents -
inOptions() public
Generate a key value list of options and a prompt. -
initValidations() public
Populate the _validations array -
listAll() public
outputs the a list of possible models or controllers from database
Method Detail
_generatePossibleKeys() public ¶
_generatePossibleKeys( )
Finds all possible keys to use on custom associations.
Returns
array of tables and possible keys
_getModelObject() public ¶
_getModelObject( string $className , $table = null )
Get a model object for a class name.
Parameters
- string $className
- Name of class you want model to be.
- $table optional null
Returns
Model instance
_printAssociation() public ¶
_printAssociation( string $modelName , string $type , string $associations )
Print out all the associations of a particular type
Parameters
- string $modelName
- Name of the model relations belong to.
- string $type
- Name of association you want to see. i.e. 'belongsTo'
- string $associations
- Collection of associations.
bake() public ¶
bake( mixed $name , mixed $data = array() )
Assembles and writes a Model file.
Parameters
- mixed $name
- Model name or object
- mixed $data optional array()
- if array and $name is not an object assume bake data, otherwise boolean.
bakeFixture() public ¶
bakeFixture( string $className , string $useTable = null )
Interact with FixtureTask to automatically bake fixtures when baking models.
Parameters
- string $className
- Name of class to bake fixture for
- string $useTable optional null
- Optional table name for fixture to use.
See
bakeTest() public ¶
bakeTest( string $className )
Assembles and writes a unit test file
Parameters
- string $className
- Model class name
confirmAssociations() public ¶
confirmAssociations( array $model , array $associations )
Interact with the user and confirm associations.
Parameters
- array $model
- Temporary Model instance.
- array $associations
- Array of associations to be confirmed.
Returns
Array of confirmed associations
doAssociations() public ¶
doAssociations( object $model )
Handles associations
Parameters
- object $model
Returns
$assocaitons
doMoreAssociations() public ¶
doMoreAssociations( object $model , array $associations )
Interact with the user and generate additional non-conventional associations
Parameters
- object $model
- Temporary model instance
- array $associations
- Array of associations.
Returns
Array of associations.
doValidation() public ¶
doValidation( object $model )
Handles Generation and user interaction for creating validation.
Parameters
- object $model
- Model to have validations generated for.
Returns
$validate Array of user selected validations.
fieldValidation() public ¶
fieldValidation( string $fieldName , array $metaData , $primaryKey = 'id' )
Does individual field validation handling.
Parameters
- string $fieldName
- Name of field to be validated.
- array $metaData
- metadata for field
- $primaryKey optional 'id'
Returns
Array of validation for the field.
findBelongsTo() public ¶
findBelongsTo( object $model , array $associations )
Find belongsTo relations and add them to the associations list.
Parameters
- object $model
- Model instance of model being generated.
- array $associations
- Array of inprogress associations
Returns
$associations with belongsTo added in.
findDisplayField() public ¶
findDisplayField( array $fields )
interact with the user to find the displayField value for a model.
Parameters
- array $fields
- Array of fields to look for and choose as a displayField
Returns
Name of field to use for displayField or false if the user declines to choose
findHasAndBelongsToMany() public ¶
findHasAndBelongsToMany( object $model , array $associations )
Find the hasAndBelongsToMany relations and add them to associations list
Parameters
- object $model
- Model instance being generated
- array $associations
- Array of inprogress associations
Returns
$associations with hasAndBelongsToMany added in.
findHasOneAndMany() public ¶
findHasOneAndMany( object $model , array $associations )
Find the hasOne and HasMany relations and add them to associations list
Parameters
- object $model
- Model instance being generated
- array $associations
- Array of inprogress associations
Returns
$associations with hasOne and hasMany added in.
findPrimaryKey() public ¶
findPrimaryKey( array $fields )
Finds a primary Key in a list of fields.
Parameters
- array $fields
- Array of fields that might have a primary key.
Returns
Name of field that is a primary key.
getAllTables() public ¶
getAllTables( string $useDbConfig = null )
Get an Array of all the tables in the supplied connection will halt the script if no tables are found.
Parameters
- string $useDbConfig optional null
- Connection name to scan.
Returns
Array of tables in the database.
getName() public ¶
getName( $useDbConfig = null )
Forces the user to specify the model he wants to bake, and returns the selected model name.
Returns
the model name
getTable() public ¶
getTable( string $modelName , string $useDbConfig = null )
Interact with the user to determine the table name of a particular model
Parameters
- string $modelName
- Name of the model you want a table for.
- string $useDbConfig optional null
- Name of the database config you want to get tables from.
inOptions() public ¶
inOptions( array $options , string $prompt = null , integer $default = null )
Generate a key value list of options and a prompt.
Parameters
- array $options
- Array of options to use for the selections. indexes must start at 0
- string $prompt optional null
- Prompt to use for options list.
- integer $default optional null
- The default option for the given prompt.
Returns
of user choice.
Methods inherited from BakeTask
getPath() public ¶
getPath( )
Gets the path for output. Checks the plugin property and returns the correct path.
Returns
Path to output.
Methods inherited from Shell
_checkArgs() public ¶
_checkArgs( integer $expectedNum , string $command = null )
Will check the number args matches otherwise throw an error
Parameters
- integer $expectedNum
- Expected number of paramters
- string $command optional null
- Command
_controllerName() public ¶
_controllerName( string $name )
Creates the proper controller plural name for the specified controller class name
Parameters
- string $name
- Controller class name
Returns
Controller plural name
_controllerPath() public ¶
_controllerPath( string $name )
Creates the proper controller path for the specified controller class name
Parameters
- string $name
- Controller class name
Returns
Path to controller
_loadDbConfig() public ¶
_loadDbConfig( )
Loads database file and constructs DATABASE_CONFIG class makes $this->DbConfig available to subclasses
Returns
_loadModels() public ¶
_loadModels( )
if var $uses = true Loads AppModel file and constructs AppModel class makes $this->AppModel available to subclasses if var $uses is an array of models will load those models
Returns
_modelKey() public ¶
_modelKey( string $name )
Creates the proper underscored model key for associations
Parameters
- string $name
- Model class name
Returns
Singular model key
_modelName() public ¶
_modelName( string $name )
Creates the proper controller camelized name (singularized) for the specified name
Parameters
- string $name
- Name
Returns
Camelized and singularized controller name
_modelNameFromKey() public ¶
_modelNameFromKey( string $key )
Creates the proper model name from a foreign key
Parameters
- string $key
- Foreign key
Returns
Model name
_pluginPath() public ¶
_pluginPath( string $pluginName )
Find the correct path for a plugin. Scans $pluginPaths for the plugin you want.
Parameters
- string $pluginName
- Name of the plugin you want ie. DebugKit
Returns
$path path to the correct plugin.
_pluralHumanName() public ¶
_pluralHumanName( string $name )
Creates the plural human name used in views
Parameters
- string $name
- Controller name
Returns
Plural human name
_pluralName() public ¶
_pluralName( string $name )
Creates the plural name for views
Parameters
- string $name
- Name to use
Returns
Plural name for views
_singularHumanName() public ¶
_singularHumanName( string $name )
Creates the singular human name used in views
Parameters
- string $name
- Controller name
Returns
Singular human name
_singularName() public ¶
_singularName( string $name )
creates the singular name for use in views.
Parameters
- string $name
Returns
$name
createFile() public ¶
createFile( string $path , string $contents )
Creates a file at given path
Parameters
- string $path
- Where to put the file.
- string $contents
- Content to put in the file.
Returns
Success
err() public ¶
err( mixed $message = null , integer $newlines = 1 )
Outputs a single or multiple error messages to stderr. If no parameters are passed outputs just a newline.
Parameters
- mixed $message optional null
- A string or a an array of strings to output
- integer $newlines optional 1
- Number of newlines to append
error() public ¶
error( string $title , string $message = null )
Displays a formatted error message and exits the application with status code 1
Parameters
- string $title
- Title of the error
- string $message optional null
- An optional error message
hr() public ¶
hr( integer $newlines = 0 )
Outputs a series of minus characters to the standard output, acts as a visual separator.
Parameters
- integer $newlines optional 0
- Number of newlines to pre- and append
in() public ¶
in( string $prompt , mixed $options = null , string $default = null )
Prompts the user for input, and returns it.
Parameters
- string $prompt
- Prompt text.
- mixed $options optional null
- Array or string of options.
- string $default optional null
- Default input value.
Returns
the default value, or the user-provided input.
initialize() public ¶
initialize( )
Initializes the Shell acts as constructor for subclasses allows configuration of tasks prior to shell execution
nl() public ¶
nl( integer $multiplier = 1 )
Returns a single or multiple linefeeds sequences.
Parameters
- integer $multiplier optional 1
- Number of times the linefeed sequence should be repeated
Returns
out() public ¶
out( mixed $message = null , integer $newlines = 1 )
Outputs a single or multiple messages to stdout. If no parameters are passed outputs just a newline.
Parameters
- mixed $message optional null
- A string or a an array of strings to output
- integer $newlines optional 1
- Number of newlines to append
Returns
Returns the number of bytes returned from writing to stdout.
shortPath() public ¶
shortPath( string $file )
Makes absolute file path easier to read
Parameters
- string $file
- Absolute file path
Returns
short path
Methods inherited from Object
Object() public ¶
Object( )
A hack to support __construct() on PHP 4 Hint: descendant classes have no PHP4 class_name() constructors, so this constructor gets called first and calls the top-layer __construct() which (if present) should call parent::__construct()
Returns
__openPersistent() public ¶
__openPersistent( string $name , string $type = null )
Open the persistent class file for reading Used by Object::_persist()
Parameters
- string $name
- Name of persisted class
- string $type optional null
- Type of persistance (e.g: registry)
_persist() public ¶
_persist( string $name , string $return , $object , $type = null )
Checks for a persistent class file, if found file is opened and true returned If file is not found a file is created and false returned If used in other locations of the model you should choose a unique name for the persistent file There are many uses for this method, see manual for examples
Parameters
- string $name
- name of the class to persist
- string $return
- $object the object to persist
- $object
- $type optional null
Returns
Success
_savePersistent() public ¶
_savePersistent( string $name , object $object )
You should choose a unique name for the persistent file
There are many uses for this method, see manual for examples
Parameters
- string $name
- name used for object to cache
- object $object
- the object to persist
Returns
true on save, throws error if file can not be created
_set() public ¶
_set( array $properties = array() )
Allows setting of multiple properties of the object in a single line of code. Will only set properties that are part of a class declaration.
Parameters
- array $properties optional array()
- An associative array containing properties and corresponding values.
_stop() public ¶
_stop( $status = 0 )
Stop execution of the current script. Wraps exit() making testing easier.
Parameters
- $status optional 0
- http://php.net/exit for values
cakeError() public ¶
cakeError( string $method , array $messages = array() )
Used to report user friendly errors. If there is a file app/error.php or app/app_error.php this file will be loaded error.php is the AppError class it should extend ErrorHandler class.
Parameters
- string $method
- Method to be called in the error class (AppError or ErrorHandler classes)
- array $messages optional array()
- Message that is to be displayed by the error class
Returns
message
dispatchMethod() public ¶
dispatchMethod( string $method , array $params = array() )
Calls a method on this object with the given parameters. Provides an OO wrapper
for call_user_func_array
Parameters
- string $method
- Name of the method to call
- array $params optional array()
- Parameter list to use when calling $method
Returns
Returns the result of the method call
log() public ¶
log( string $msg , integer $type = LOG_ERROR )
Convience method to write a message to CakeLog. See CakeLog::write() for more information on writing to logs.
Parameters
- string $msg
- Log message
- integer $type optional LOG_ERROR
- Error type constant. Defined in app/config/core.php.
Returns
Success of log write
requestAction() public ¶
requestAction( mixed $url , array $extra = array() )
Calls a controller's method from any location. Can be used to connect controllers together or tie plugins into a main application. requestAction can be used to return rendered views or fetch the return value from controller actions.
Parameters
- mixed $url
- String or array-based url.
- array $extra optional array()
- if array includes the key "return" it sets the AutoRender to true.
Returns
Boolean true or false on success/failure, or contents of rendered action if 'return' is set in $extra.
toString() public ¶
toString( )
Object-to-string conversion. Each class can override this method as necessary.
Returns
The name of this class