<?php 
trait Singleton
{
    private static 
$instance;

    public static function 
getInstance() {
        if (!(
self::$instance instanceof self)) {
            
self::$instance = new self;
        }
        return 
self::$instance;
    }
}

// PDO
class SingletonPDO extends PDO
{
    use 
Singleton;
}

// SingletonSplFileObject
class SingletonSplFileObject extends SplFileObject
{
    use 
Singleton;
}
1