Acts as an object wrapper for HTML pages with embedded PHP, called "views".
Variables can be assigned with the view object and referenced locally within
the view.
- package
- Kohana
- category
- Base
- author
- Kohana Team
- copyright
- © 2008-2012 Kohana Team
- license
- http://kohanaframework.org/license
Class declared in SYSPATH/classes/view.php on line 3.
public __construct( [ string $file = NULL , array $data = NULL ] )
(defined in Kohana_View)
link to this
Sets the initial view filename and local data. Views should almost
always only be created using View::factory.
Parameters
-
string
$file
= NULL - View filename
-
array
$data
= NULL - Array of values
Tags
Return Values
Source Code
public function __construct( $file = NULL, array $data = NULL)
{
if ( $file !== NULL)
{
$this ->set_filename( $file );
}
if ( $data !== NULL)
{
$this ->_data = $data + $this ->_data;
}
}
|
Magic method, searches for the given variable and returns its value.
Local variables will be returned before global variables.
If the variable has not yet been set, an exception will be thrown.
Parameters
-
string
$key
required - Variable name
Tags
Return Values
Source Code
public function & __get( $key )
{
if ( array_key_exists ( $key , $this ->_data))
{
return $this ->_data[ $key ];
}
elseif ( array_key_exists ( $key , View:: $_global_data ))
{
return View:: $_global_data [ $key ];
}
else
{
throw new Kohana_Exception( 'View variable is not set: :var' ,
array ( ':var' => $key ));
}
}
|
Magic method, determines if a variable is set.
NULL
variables are not considered to be set by isset.
Parameters
-
string
$key
required - Variable name
Return Values
Source Code
public function __isset( $key )
{
return (isset( $this ->_data[ $key ]) OR isset(View:: $_global_data [ $key ]));
}
|
public __set( string $key , mixed $value )
(defined in Kohana_View)
link to this
Magic method, calls View::set with the same parameters.
$view ->foo = 'something' ;
|
Parameters
-
string
$key
required - Variable name
-
mixed
$value
required - Value
Return Values
Source Code
public function __set( $key , $value )
{
$this ->set( $key , $value );
}
|
Tags
Return Values
Source Code
public function __toString()
{
try
{
return $this ->render();
}
catch (Exception $e )
{
Kohana_Exception::handler( $e );
return '' ;
}
}
|
Magic method, unsets a given variable.
Parameters
-
string
$key
required - Variable name
Return Values
Source Code
public function __unset( $key )
{
unset( $this ->_data[ $key ], View:: $_global_data [ $key ]);
}
|
public bind( string $key , mixed & $value )
(defined in Kohana_View)
link to this
Assigns a value by reference. The benefit of binding is that values can
be altered without re-setting them. It is also possible to bind variables
before they have values. Assigned values will be available as a
variable within the view file:
$view ->bind( 'ref' , $bar );
|
Parameters
-
string
$key
required - Variable name
-
byref mixed
$value
required - Referenced variable
Return Values
Source Code
public function bind( $key , & $value )
{
$this ->_data[ $key ] =& $value ;
return $this ;
}
|
public static bind_global( string $key , mixed & $value )
(defined in Kohana_View)
link to this
Assigns a global variable by reference, similar to View::bind, except
that the variable will be accessible to all views.
View::bind_global( $key , $value );
|
Parameters
-
string
$key
required - Variable name
-
byref mixed
$value
required - Referenced variable
Return Values
Source Code
public static function bind_global( $key , & $value )
{
View:: $_global_data [ $key ] =& $value ;
}
|
public static factory( [ string $file = NULL , array $data = NULL ] )
(defined in Kohana_View)
link to this
Returns a new View object. If you do not define the "file" parameter,
you must call View::set_filename.
$view = View::factory( $file );
|
Parameters
-
string
$file
= NULL - View filename
-
array
$data
= NULL - Array of values
Return Values
Source Code
public static function factory( $file = NULL, array $data = NULL)
{
return new View( $file , $data );
}
|
public render( [ string $file = NULL ] )
(defined in Kohana_View)
link to this
Renders the view object to a string. Global and local data are merged
and extracted to create local variables within the view file.
$output = $view ->render();
|
Global variables with the same key name as local variables will be
overwritten by the local variable.
Parameters
-
string
$file
= NULL - View filename
Tags
Return Values
Source Code
public function render( $file = NULL)
{
if ( $file !== NULL)
{
$this ->set_filename( $file );
}
if ( empty ( $this ->_file))
{
throw new View_Exception( 'You must set the file to use within your view before rendering' );
}
return View::capture( $this ->_file, $this ->_data);
}
|
public set( string $key [, mixed $value = NULL ] )
(defined in Kohana_View)
link to this
Assigns a variable by name. Assigned values will be available as a
variable within the view file:
$view ->set( 'foo' , 'my value' );
|
You can also use an array to set several values at once:
$view ->set( array ( 'food' => 'bread' , 'beverage' => 'water' ));
|
Parameters
-
string
$key
required - Variable name or an array of variables
-
mixed
$value
= NULL - Value
Return Values
Source Code
public function set( $key , $value = NULL)
{
if ( is_array ( $key ))
{
foreach ( $key as $name => $value )
{
$this ->_data[ $name ] = $value ;
}
}
else
{
$this ->_data[ $key ] = $value ;
}
return $this ;
}
|
public set_filename( string $file )
(defined in Kohana_View)
link to this
Sets the view filename.
$view ->set_filename( $file );
|
Parameters
-
string
$file
required - View filename
Tags
Return Values
Source Code
public function set_filename( $file )
{
if (( $path = Kohana::find_file( 'views' , $file )) === FALSE)
{
throw new View_Exception( 'The requested view :file could not be found' , array (
':file' => $file ,
));
}
$this ->_file = $path ;
return $this ;
}
|
public static set_global( string $key [, mixed $value = NULL ] )
(defined in Kohana_View)
link to this
Sets a global variable, similar to View::set, except that the
variable will be accessible to all views.
View::set_global( $name , $value );
|
Parameters
-
string
$key
required - Variable name or an array of variables
-
mixed
$value
= NULL - Value
Return Values
Source Code
public static function set_global( $key , $value = NULL)
{
if ( is_array ( $key ))
{
foreach ( $key as $key2 => $value )
{
View:: $_global_data [ $key2 ] = $value ;
}
}
else
{
View:: $_global_data [ $key ] = $value ;
}
}
|
protected static capture( string $kohana_view_filename , array $kohana_view_data )
(defined in Kohana_View)
link to this
Captures the output that is generated when a view is included.
The view data will be extracted to make local variables. This method
is static to prevent object scope resolution.
$output = View::capture( $file , $data );
|
Parameters
-
string
$kohana_view_filename
required - Filename
-
array
$kohana_view_data
required - Variables
Return Values
Source Code
protected static function capture( $kohana_view_filename , array $kohana_view_data )
{
extract( $kohana_view_data , EXTR_SKIP);
if (View:: $_global_data )
{
extract(View:: $_global_data , EXTR_SKIP | EXTR_REFS);
}
ob_start();
try
{
include $kohana_view_filename ;
}
catch (Exception $e )
{
ob_end_clean();
throw $e ;
}
return ob_get_clean();
}
|