Clase para extraer url, protocolo y datos de la url en PHP

Esta clase no la hize por gusto, fué para auxiliar a un amigo que necesitaba unas funciones que hicieran lo que dice el titulo, pasar una url como parametro y que las funciones cortaran el protocolo, dominio, y los datos despues del dominio

Código:
      <?php
    /*
      Autor linkgl
      3/03/11
      funcion-linkgl.blogspot.com
                                    */
    class URL
    {
      public $dominio;
      var $protocolo,$almacen,$aplica,$buffer;
      //extrae el dominio de una url
      public function __construct($dom)
      {
        $this->dominio=$dom;
        $this->almacen=explode("/",$this->dominio);
        if(strpos($this->dominio,"//")!==false)
        {
          echo $this->almacen[2]."<br>";
        }
        else
        {
          echo $this->almacen[0]."<br>";
        }
      }
      //extrae el protocolo (http, https, ftp...)
      public function extraerPROTOCOLO()
      {
        if(strpos($this->dominio,"//")!==false)
        { 
          $this->protocolo=explode("//",$this->dominio);
          echo $this->protocolo[0]."<br>";
        }
        else
        {
          echo "No se encontro el protocolo <br>";
        }
      }
      //extrae las carpetas de la url /archivos/blabla/algo.php?id=45
      public function extraerCARPETAS()
      {
        $this->aplica=explode("/",$this->dominio);
        if(strpos($this->dominio,"//")!==false)
        {
          for($i=3;$i<count($this->aplica)-1;$i++)
          {
            $this->buffer.=$this->aplica[$i]."/";
          }
          $this->buffer.=$this->aplica[count($this->aplica)-1];
        }
        else
        {
          for($i=1;$i<count($this->aplica)-1;$i++)
          {
            $this->buffer.=$this->aplica[$i]."/";
          }
          $this->buffer.=$this->aplica[count($this->aplica)-1];
        }
        echo $this->buffer."<br>";
      }
    }

    //Ejemplo de uso
    $obj=new URL("https://linkgl.com/hola/archivos/linkgl_es_guapisimo/data.php?hola_indetectables");
    $obj->extraerPROTOCOLO();
    $obj->extraerCARPETAS();
    ?>

Devuelve:
linkgl.com
https://
hola/archivos/linkgl_es_guapisimo/data.php?hola_indetectables
Ups, acabo de darme cuenta que no se php del todo. Me recuerdas que eso de las clases.... nunca lo entendí bien. Podrías explicarnoslo un poco si no es abusar? O si sabes de algún enlace en el que se vea claro.. he leido algo pero nunca termino de cogerlo.

Gracias en cualquier caso linkgl!
Tranquilo siempre es un gusto explicar xD igual que mucha gente lo hizo para que yo lo entendiera cuando no lo sabía, pues cuando defines una clase quiere decir que estas programando de forma orientada a objetos POO(programacion orientada a objetos) una clase define a un objeto ejemplo:

class caja -> define que caja es un objeto

dentro del objeto hay funciones que realiza el objeto o propiedades por ejemplo el objeto caja tiene un ancho y alto y realiza la funcion de guardar cosas entonces interpretandolo en codigo seria

class caja
{
var $juguetes;
public function ancho()
{
$ancho=150px; //la caja mide 150px de ancho
}
public function guardar()
{
$this->juguetes="carros"; //y guarda carritos
}
}

es masomenos una forma de explicarte aunque esa clase es inútil se pueden hacer clases que sirvan de algo un ejemplo?

puedes hacer una clase llamada usuario, entonces haces las funciones del objeto usuario, que serian un usuario se puede registrar, loguearse, cerrar sesion etc etc entonces lo haces

class usuario
...
function registrar()
...
function iniciar_sesion()
...

etc, etc

Esto esta muy superficial pero puedes estudiar bien POO en php en http://phpya.com.ar/poo/ ahí aprendí yo. jeje Saludos!
Hey! lo entendí! je je je.

Voy a cotillear en ese enlace. Joer, esto es un nunca acabar! juas

Edito, es un enlace genial! Voy a comérmelo!
Interesante La clase, buena para desarrollar y practicar, pero php ya cuenta con una funcion que hace todo y eso y un poco mas, se trata de perse_url(); Muy util para quienes trabajan con urls.

http://php.net/manual/es/function.parse-url.php

<?php
$url = 'http://username:password@hostname/path?arg=value#anchor';

print_r(parse_url($url));

?>

La funcion retorna un array() con los siguientes valores:
Array
(
    [scheme] => http
    [host] => hostname
    [user] => username
    [pass] => password
    [path] => /path
    [query] => arg=value
    [fragment] => anchor
)
Si utilizan los tags [ PHP] y en lugar de [ CODE] y se vería muy bonito el código, pedazo de melones.