---
name: "Dancer::Object::Singleton"
section: "3pm"
platform: "linux"
package: "libdancer-perl"
version: "1.3521+dfsg-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Dancer::Object::Singleton"
---

# Dancer::Object::Singleton(3pm)

Singleton base class for Dancer

## NAME

Dancer::Object::Singleton - Singleton base class for Dancer

## VERSION

version 1.3521

## SYNOPSIS

```
    package My::Dancer::Extension;
    use strict;
    use warnings;
    use base 'Dancer::Object::Singleton';
    __PACKAGE__->attributes( qw/name value this that/ );
    sub init {
        my ($class, $instance) = @_;
        # our initialization code, if we need one
    }
    # .. later on ..
    # returns the unique instance
    my $singleton_intance = My::Dancer::Extension->instance();
```

## DESCRIPTION

Dancer::Object::Singleton is meant to be used instead of Dancer::Object, if you want your object to be a singleton, that is, a class that has only one instance in the application.

It provides you with attributes and an initializer.

## METHODS

### instance

Returns the instance of the singleton. The instance is created only when needed. The creation will call the `"init()"` method, which you should implement.

### init

Exists but does nothing. This is so you won't have to write an initializer if you don't want to. init receives the instance as argument.

### get\_attributes

Get the attributes of the specific class.

### attributes

Generates attributes for whatever object is extending Dancer::Object and saves them in an internal hashref so they can be later fetched using `"get_attributes"`.

## AUTHOR

Dancer Core Developers

## COPYRIGHT AND LICENSE

This software is copyright (c) 2010 by Alexis Sukrieh.

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