Class CakeSchema

Base Class for Schema management.

CakeObject
Extended by CakeSchema
Package: Cake\Model
Copyright: Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
License: MIT License
Location: Cake/Model/CakeSchema.php

Properties summary

  • $connection public
    string
    Connection used for read.
  • $file public
    string
    File to write.
  • $name public
    string
    Name of the schema.
  • $path public
    string
    Path to write location.
  • $plugin public
    string
    Plugin name.
  • $tables public
    array
    Set of tables.

Method Summary

  • __construct() public
    Constructor
  • _arrayDiffAssoc() protected
    Extended array_diff_assoc noticing change from/to NULL values.
  • _columns() protected
    Formats Schema columns from Model Object.
  • _compareIndexes() protected
    Compare two schema indexes.
  • Compare two schema files table Parameters.
  • _noPrefixTable() protected

    Trim the table prefix from the full table name, and return the prefix-less table.

  • _requireFile() protected
    Attempts to require the schema file specified.
  • _values() protected
    Formats Schema columns from Model Object.
  • after() public
    After callback to be implemented in subclasses.
  • before() public
    Before callback to be implemented in subclasses.
  • build() public
    Builds schema object properties.
  • compare() public
    Compares two sets of schemas.
  • Generate the schema code for a table.
  • load() public
    Reads database and creates schema tables.
  • read() public
    Reads database and creates schema tables.
  • write() public
    Writes schema file from object or options.

Method Detail

__construct()source public

__construct( array $options array() )

Constructor

Parameters

array $options optional array()
Optional load object properties.

Overrides

CakeObject::__construct()

_arrayDiffAssoc()source protected

_arrayDiffAssoc( array $array1 , array $array2 )

Extended array_diff_assoc noticing change from/to NULL values.

It behaves almost the same way as array_diff_assoc except for NULL values: if one of the values is not NULL - change is detected. It is useful in situation where one value is strval('') ant other is strval(null) - in string comparing methods this results as EQUAL, while it is not.

Parameters

array $array1
Base array.
array $array2
Corresponding array checked for equality.

Returns

array

Difference as array with array(keys => values) from input array where match was not found.


_columns()source protected

_columns( array $Obj )

Formats Schema columns from Model Object.

Parameters

array $Obj
$Obj model object.

Returns

array
Formatted columns.

_compareIndexes()source protected

_compareIndexes( array $new , array $old )

Compare two schema indexes.

Parameters

array $new
New indexes.
array $old
Old indexes.

Returns

mixed
False on failure or array of indexes to add and drop.

_compareTableParameters()source protected

_compareTableParameters( array $new , array $old )

Compare two schema files table Parameters.

Parameters

array $new
New indexes.
array $old
Old indexes.

Returns

mixed
False on failure, or an array of parameters to add & drop.

_noPrefixTable()source protected

_noPrefixTable( string $prefix , string $table )

Trim the table prefix from the full table name, and return the prefix-less table.

Parameters

string $prefix
Table prefix.
string $table
Full table name.

Returns

string
Prefix-less table name.

_requireFile()source protected

_requireFile( string $path , string $file )

Attempts to require the schema file specified.

Parameters

string $path
Filesystem path to the file.
string $file
Filesystem basename of the file.

Returns

boolean
True when a file was successfully included, false on failure.

_values()source protected

_values( array $values )

Formats Schema columns from Model Object.

Parameters

array $values
Options keys(type, null, default, key, length, extra).

Returns

array
Formatted values.

after()source public

after( array $event array() )

After callback to be implemented in subclasses.

Parameters

array $event optional array()
Schema object properties.

before()source public

before( array $event array() )

Before callback to be implemented in subclasses.

Parameters

array $event optional array()
Schema object properties.

Returns

boolean
Should process continue.

build()source public

build( array $data )

Builds schema object properties.

Parameters

array $data
Loaded object properties.

compare()source public

compare( array|object $old , array|object $new null )

Compares two sets of schemas.

Parameters

array|object $old
Schema object or array.
array|object $new optional null
Schema object or array.

Returns

array
Tables (that are added, dropped, or changed.)

generateTable()source public

generateTable( string $table , array $fields )

Generate the schema code for a table.

Takes a table name and $fields array and returns a completed, escaped variable declaration to be used in schema classes.

Parameters

string $table
Table name you want returned.
array $fields
Array of field information to generate the table with.

Returns

string
Variable declaration for a schema class.

Throws

Exception

load()source public

load( array $options array() )

Reads database and creates schema tables.

Parameters

array $options optional array()
Schema object properties.

Returns

array|boolean
Set of name and tables.

read()source public

read( array $options array() )

Reads database and creates schema tables.

Options

  • 'connection' - the db connection to use
  • 'name' - name of the schema
  • 'models' - a list of models to use, or false to ignore models

Parameters

array $options optional array()
Schema object properties.

Returns

array
Array indexed by name and tables.

write()source public

write( array|object $object , array $options array() )

Writes schema file from object or options.

Parameters

array|object $object
Schema object or options array.
array $options optional array()
Schema object properties to override object.

Returns

mixed
False or string written to file.

Methods inherited from CakeObject

_mergeVars()source protected

_mergeVars( array $properties , string $class , boolean $normalize true )

Merges this objects $property with the property in $class' definition. This classes value for the property will be merged on top of $class'

This provides some of the DRY magic CakePHP provides. If you want to shut it off, redefine this method as an empty function.

Parameters

array $properties
The name of the properties to merge.
string $class
The class to merge the property with.
boolean $normalize optional true
Set to true to run the properties through Hash::normalize() before merging.

_set()source protected

_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()source protected

_stop( integer|string $status 0 )

Stop execution of the current script. Wraps exit() making testing easier.

Parameters

integer|string $status optional 0
see http://php.net/exit for values

dispatchMethod()source 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

mixed
Returns the result of the method call

log()source public

log( string $msg , integer $type LOG_ERR , null|string|array $scope null )

Convenience 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_ERR
Error type constant. Defined in app/Config/core.php.
null|string|array $scope optional null

The scope(s) a log message is being created in. See CakeLog::config() for more information on logging scopes.

Returns

boolean
Success of log write

requestAction()source public

requestAction( string|array $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.

Under the hood this method uses Router::reverse() to convert the $url parameter into a string URL. You should use URL formats that are compatible with Router::reverse()

Passing POST and GET data

POST and GET data can be simulated in requestAction. Use $extra['url'] for GET data. The $extra['data'] parameter allows POST data simulation.

Parameters

string|array $url

String or array-based URL. Unlike other URL arrays in CakePHP, this URL will not automatically handle passed and named arguments in the $url parameter.

array $extra optional array()

if array includes the key "return" it sets the AutoRender to true. Can also be used to submit GET/POST data, and named/passed arguments.

Returns

mixed

Boolean true or false on success/failure, or contents of rendered action if 'return' is set in $extra.


toString()source public

toString( )

CakeObject-to-string conversion. Each class can override this method as necessary.

Returns

string
The name of this class

Properties detail

$connectionsource

public string

Connection used for read.

'default'

$filesource

public string

File to write.

'schema.php'

$namesource

public string

Name of the schema.

null

$pathsource

public string

Path to write location.

null

$pluginsource

public string

Plugin name.

null

$tablessource

public array

Set of tables.

array()

© 2005–2017 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/2.10/class-CakeSchema.html