code: public function set($name, $value, $expire = 0, $path = null, $domain = null, $secure = false, $httpOnly = false) {
          /*
           * La cookie expira al cerrar el navegador por defecto, pero si
           * en $expire se pasa un -1 la cookie tendra una duracion de 1 año.
           */
          if ($expire === -1) {
              $expire = time() + 3600 * 24 * 365;
          } else {
              $expire *= 60;
          }
  
          // Convierto el valor a base64
          $value = base64_encode($value);
  
          // Crea la cookie
          if ($path != null) {
              if ($domain != null) {
                  if ($secure) {
                      if ($httpOnly) {
                          setcookie($name, $value, $expire, $path, $domain, $secure, $httpOnly);
                      } else {
                          setcookie($name, $value, $expire, $path, $domain, $secure);
                      }
                  } else {
                      setcookie($name, $value, $expire, $path, $domain);
                  }
              } else {
                  setcookie($name, $value, $expire, $path);
              }
          } else {
              setcookie($name, $value, $expire);
          }
      }
docs: Crea una nueva cookie.
  
  @param string  $name     Nombre de la cookie.
  @param string  $value    Valor a almacenar en la cookie, queda en base64.
  @param integer $expire   Expiracion de la cookie en minutos, si esta en -1 durara 1 año.
  @param string  $path     La ruta dentro del servidor en la que la cookie estará disponible.
  @param string  $domain   El dominio para el cual la cookie está disponible.
  @param boolean $secure   Indica que la cookie sólo debiera transmitirse por una conexión segura HTTPS desde el cliente.
  @param boolean $httponly Cuando es TRUE la cookie será accesible sólo a través del protocolo HTTP.