App-Office-CMS

 view release on metacpan or  search on metacpan

lib/App/Office/CMS/Database.pm  view on Meta::CPAN


has logger =>
(
	is  => 'rw',
	isa => Any,
);

has menu =>
(
	is  => 'rw',
	isa => Any, # 'App::Office::CMS::Database::Menu',
);

has page =>
(
	is  => 'rw',
	isa => Any, # 'App::Office::CMS::Database::Page',
);

has session =>
(
	is  => 'rw',
	isa => Any,
);

has simple =>
(
	is  => 'rw',
	isa => Any,
);

has site =>
(
	is  => 'rw',
	isa => Any, # 'App::Office::CMS::Database::Site',
);

our $VERSION = '0.93';

# -----------------------------------------------

sub BUILD
{
	my($self)   = @_;
	my($config) = $self -> config;
	my($attr)   =
	{
		AutoCommit => $$config{AutoCommit},
		RaiseError => $$config{RaiseError},
	};

	if ( ($$config{dsn} =~ /SQLite/i) && $$config{sqlite_unicode})
	{
		$$attr{sqlite_unicode} = 1;
	}

	$self -> dbh(DBI -> connect($$config{dsn}, $$config{username}, $$config{password}, $attr) );

=pod

use Modern::Perl;
use DBI;
use Exception::Class::DBI;

my $dbh = DBI->connect('DBI:mysql:test', 'user', pass, {
PrintError => 0,
RaiseError => 0,
HandleError => Exception::Class::DBI->handler,
});


eval {
$dbh->do('insert into non_extistent_table values(1)')
};

if (my $e = Exception::Class->caught('Exception::Class::DBI')) {
say $e->err;
say $e->errstr;
} else {
# Check for other exceptions as required
}

=cut

	if ($$config{dsn} =~ /SQLite/i)
	{
		$self -> dbh -> do('PRAGMA foreign_keys = ON');
	}

	$self -> asset(App::Office::CMS::Database::Asset -> new(db => $self) );
	$self -> content(App::Office::CMS::Database::Content -> new(db => $self) );
	$self -> design(App::Office::CMS::Database::Design -> new(db => $self) );
	$self -> event(App::Office::CMS::Database::Event -> new(db => $self) );
	$self -> logger(App::Office::CMS::Util::Logger -> new(db => $self) );
	$self -> menu(App::Office::CMS::Database::Menu -> new(db => $self) );
	$self -> page(App::Office::CMS::Database::Page -> new(db => $self) );
	$self -> simple(DBIx::Simple -> new($self -> dbh) );
	$self -> site(App::Office::CMS::Database::Site -> new(db => $self) );

	return $self;

}	# End of BUILD.

# --------------------------------------------------

sub build_context
{
	my($self, $site_id, $design_id) = @_;

	$self -> log(debug => "build_context($site_id, $design_id)");

	return "$site_id/$design_id";

} # End of build_context.

# --------------------------------------------------

sub build_default_asset
{
	my($self, $page) = @_;

 view all matches for this distribution
 view release on metacpan -  search on metacpan

( run in 1.392 second using v1.00-cache-2.02-grep-82fe00e-cpan-d29e8ade9f55 )