Ver Mensaje Individual
  #2 (permalink)  
Antiguo 22/07/2006, 23:52
Avatar de GatorV
GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
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)