Pues mira pasar a una clase es solo agregarle las etiquetas de class BBCode {}, esto no te serviria de mucho, lo que si seria en si OOP, es que hicieras un BBCode parser que usara plugins de BBCode, para poder parsear los datos.
Asi creas una clase "base" de plugins con el codigo BBCode en especifico, luego creas tu clase BBCode Parser que se encargue de iniciar cada plugin, pasarle el texto y que le devuelva el codigo modificado.
Esto lo podrias empezar asi:
Código PHP:
interface BBCode {
public function parse();
public function getText();
public function setText( $text );
}
Luego creas por decir 1 "plugin":
Código PHP:
class boldBBCode implements BBCode {
private $text = '';
public function __construct( $text = '' ) {
$this->text = $text;
}
public function parse() {
$this->text = preg_replace("`\[b\](.*?)\[/b\]`is", '<span class="font_bold">$1</span>', $this->text);
}
public function getText() {
return $this->text;
}
public function setText( $text ) {
$this->text = $text;
}
}
Luego haces tu BBCodeParser:
Código PHP:
class BBCodeParser {
private $plugins = array();
private $textBuffer = '';
private $pluginDir = './';
public function __construct() {}
public function loadPlugins() {
// Leer PluginDir e inicializar cada clase
// Guardar la instancia de cada clase en el array de $plugins
}
public function parseString($string) {
// Por cada plugin en el array, establecer el texto, parsearlo y regresar el texto
// al finalizar guardar en textBuffer y regresar true o false
}
public function getParsedText() {
return $this->textBuffer;
}
}
Y asi ya estarias trabajando con OOP al 100 jeje (bueno mas o menos xD)