Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
DBIx::Class::VirtualCoUsersContributed Perl DocuDBIx::Class::VirtualColumns(3)

NAME
       DBIx::Class::VirtualColumns - Add virtual columns to DBIx::Class
       schemata

SYNOPSIS
	package	Your::Schema::Class;
	use strict;
	use warnings;

	use base 'DBIx::Class';

	__PACKAGE__->load_components(
	  "VirtualColumns",
	  "PK",
	  "Core",
	);

	__PACKAGE__->table("sometable");
	__PACKAGE__->add_columns(qw/dbcol1 dbcol2/);
	__PACKAGE__->add_virtual_columns(qw/vcol1 vcol2	vcol3/);

	# =========================================================
	# Somewhere else

	my $item = $schema->resultset('Artist')->find($id);
	$item->vcol1('test'); #	Set 'test'
	$item->get_column('vcol1'); # Return 'test'

	my $otheritem =	$schema->resultset('Artist')->create({
	    dbcol1 => 'value1',
	    dbcol2 => 'value2',
	    vcol1  => 'value3',
	    vcol2  => 'value4',
	});

	$otheritem->vcol1(); # Now is 'value3'

	# Get the column metadata just like for	a regular DBIC column
	my $info = $result_source->column_info('vcol1');

DESCRIPTION
       This module allows to specify 'virtual columns' in DBIx::Class schema
       classes.	Virtual	columns	behave almost like regular columns but are not
       stored in the database. They may	be used	to store temporary information
       in the DBIx::Class::Row object and without introducting an additional
       interface.

       Most DBIx::Class	methods	like "set_column", "set_columns",
       "get_column", "get_columns", "column_info", ... will work with regular
       as well as virtual columns.

USAGE
       Use this	module if you want to add 'virtual' columns to a DBIC class
       which behave like real columns (e.g. if you want	to use the
       "set_column", "get_column" methods)

       However if you only want	to add non-column data to DBIx::Class::Row
       objects,	then there are easier/better ways:

	__PACKAGE__->mk_group_accessors(simple => qw(foo bar baz));

METHODS
   add_virtual_columns
       Adds virtual columns to the result source. If supplied key => hashref
       pairs, uses the hashref as the column_info for that column. Repeated
       calls of	this method will add more columns, not replace them.

	$table->add_virtual_columns(qw/column1 column2/);
	OR
	$table->add_virtual_columns(column1 => \%column1_info, column2 => \%column2_info, ...);

       The column names	given will be created as accessor methods on your
       "DBIx::Class::Row objects", you can change the name of the accessor by
       supplying an "accessor" in the column_info hash.

       The following options are currently recognised/used by
       DBIx::Class::VirtualColumns:

       o   accessor

	   Use this to set the name of the accessor method for this column. If
	   not set, the	name of	the column will	be used.

   add_virtual_column
       Shortcut	for add_virtual_columns

   has_any_column
       Returns true if the source has a	virtual	or regular column of this
       name, false otherwise.

   has_virtual_column
       Returns true if the source has a	virtual	column of this name, false
       otherwise.

   remove_virtual_columns
	$table->remove_columns(qw/col1 col2 col3/);

       Removes virtual columns from the	result source.

   remove_virtual_column
       Shortcut	for remove_virtual_columns

   _virtual_filter
       Splits attributes for regular and virtual columns

   new
       Overloaded method. "new"	in DBIx::Class::Row

   get_column
       Overloaded method. "get_colum" in DBIx::Class::Row

   get_columns
       Overloaded method. "get_colums" in DBIx::Class::Row

   store_column
       Overloaded method. "store_column" in DBIx::Class::Row

   set_column
       Overloaded method. "set_column" in DBIx::Class::Row

   column_info
       Overloaded method. "column_info"	in DBIx::Class::ResultSource

       Additionally returns the	HASH key 'virtual' which indicates if the
       requested column	is virtual or not.

   update
       Overloaded method. "update" in DBIx::Class::Row

CAVEATS
       The best	way to add non-column data to DBIC objects is to use
       Class::Accessor::Grouped.

	__PACKAGE__->mk_group_accessors(simple => qw(foo bar baz));

       Use DBIx::Class::VirtualColumns only if you rely	on DBIx::Class::Row
       methods like "set_column", "get_column",	...

SUPPORT
       This module was just a proof of concept,	and is not actively developed
       anymore.	Patches	are still welcome though.

       Please report any bugs to "bug-dbix-class-virtualcolumns@rt.cpan.org",
       or through the web interface at
       <http://rt.cpan.org/Public/Bug/Report.html?Queue=DBIx::Class::VirtualColumns>.
       I will be notified, and then you'll automatically be notified of
       progress	on your	report as I make changes.

AUTHOR
	   MaroA! KollA!r
	   CPAN	ID: MAROS
	   maros [at] k-1.com
	   L<http://www.revdev.at>

ACKNOWLEDGEMENTS
       This module was written for Revdev <http://www.revdev.at>, a nice litte
       software	company	I run with Koki	and Domm
       (<http://search.cpan.org/~domm/>).

COPYRIGHT
       DBIx::Class::VirtualColumns is Copyright	(c) 2008 MaroA!	KollA!r	-
       <http://www.revdev.at>

       This program is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.

       The full	text of	the license can	be found in the	LICENSE	file included
       with this module.

perl v5.32.1			  2009-11-30	DBIx::Class::VirtualColumns(3)

NAME | SYNOPSIS | DESCRIPTION | USAGE | METHODS | CAVEATS | SUPPORT | AUTHOR | ACKNOWLEDGEMENTS | COPYRIGHT

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=DBIx::Class::VirtualColumns&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help