Exacto, se llama "Method Chaining" o Encadenamiento (podríamos traducirlo así). Por lo que veo, tu necesidad reside en tener un administrador de filtros, más los filtros necesarios. Lo que no termino de entender de tu necesidad, es si el método "tercero", "segundo", etc... aplican el filtro SOLO en el texto que le pasás como parámetro.... pero que hace con ese texto? Lo agrega al final del texto anterior?
Si así fuera, lo que te puede servir es lo siguiente. Primero creemos un par de filtros, siguiendo tu ejemplo.
Código PHP:
Ver original<?php
class Filtro_Primero {
// Esta clase convierte el primer caracter en mayusculas
public function filtrar($texto) {
}
}
class Filtro_Segundo {
// Esta convierte todo el texto en mayusculas.
public function filtrar($texto) {
}
}
class Filtro_Tercero {
protected $_lista = array('spam', 'bot', 'spyware');
// Esta clase toma un texto y remueve ciertas palabras
public function filtrar($texto) {
}
}
Y luego creemos un administrador de filtros, que te permitirá manejar todo desde una clase central. Voy a hacerlo BIEN simple, para evitar otro tipo de complejidad innecesaria, pero sepan entender que no es una implemnetación "correcta":
Código PHP:
Ver original<?php
class Administrador_Filtros {
protected $filtros = array();
protected $texto = '';
public function __construct() {
'primero' => new Filtro_Primero,
'segundo' => new Filtro_Segundo,
'tercero' => new Filtro_Tercero
);
}
public function primero($texto) {
$this->texto.= $this->filtros['primero']->filtrar($texto);
return $this;
}
public function segundo($texto) {
$this->texto.= $this->filtros['segundo']->filtrar($texto);
return $this;
}
public function tercero($texto) {
$this->texto.= $this->filtros['tercero']->filtrar($texto);
return $this;
}
public function __toString() {
return $this->texto;
}
}
Finalmente, lo podemos utilizar muy fácilmente, este es un ejemplo :
Código PHP:
Ver original<?php
$texto = new Administrador_Filtros();
$texto->primero('espero tengamos ')->segundo('suerte ')->tercero('bot bot con spam esto.');
echo $texto;
// esto muestra por pantalla : "Espero tengamos SUERTE con esto."
Espero sinceramente que esto sea lo que estabas buscando :D
Suerte !