Comunidad de diseño web y desarrollo en internet online

Alguna clase o metodo nativo para generar PHP desde PHP?

Citar            
MensajeEscrito el 15 Abr 2009 11:53 pm
Me explico mejor...

Hace poco comencé a usar spyc que es una simple clase que lee un archivo con codigo YAML y lo convierte en un array de php...

El archivo yaml es de configuración y quiero compilarlo en un archivo PHP.. Para ello tengo que tomar el array que obtengo de la clase spyc y convertirlo en una cadena de codigo PHP como si la estuviese programando yo y luego guardar el archivo temporal de configuracion ya convertido en php...

Mi pregunta es, hay alguna clase nativa o no que haga este tipo de cosas o hay que hacerlo manualmente? Ya yo llevo algo adelantado, pero pregunto por si acaso (a simple vista no vi nada):


Aqui algo de lo que llevo programado por si acaso no me expliqué bien o quieren un ejemplo:

Código PHP :

        function buildArray($array, $indentation = 0)
   {      
      $n = "\n" . str_repeat("\t", $indentation);
      
      $result = "array$n(";
      
      foreach($array as $key => $value)
      {
         $result .= "$n'$key'  => ";
         
         if (is_array($value))
         {
            $result .= ConfigCompiler::buildArray($value, $indentation + 1);
         }
         else
         {
            $result .= "'$value'";
         }
         
         $result .= ', '; 
      }
      
      $result = substr($result, 0, -2) . "$n)";
      
      return $result;
   }

Por Duilio

Claber

2590 de clabLevel

25 tutoriales
1 articulo

Genero:Masculino   Premio_Secretos

Venezuela

firefox
Citar            
MensajeEscrito el 16 Abr 2009 02:19 am
eso creo q es casi imposible pero como en esta vida no hay nada imposiblee empezemos a buscar todos mi idea es crear el php en un txt con el fwrite no se algo asi

Por talcual

686 de clabLevel



 

Colombia

firefox
Citar            
MensajeEscrito el 16 Abr 2009 02:36 am
Como imposible?

De hecho ya lo estoy haciendo.. Simplemente haces una cadena por ej:

Código PHP :

$cadena = '<?php echo "hola"; ?>'


y luego la guardas en un archivo .php con file_put_contents...

Mi punto o lo que necesito es saber si hay alguna clase en php que permita escribir php ya hecha o nativa...

Por ej, que yo le diga

Código PHP :

$php = new PhpBuilder()
$php->newClass('MyClass');

echo $php->export();



y me devuelva algo como:

Código PHP :

<?php

class MyClass
{

}

?>


Y entonces pueda grabar eso en un archivo...

Claro eso ya es un ejemplo quizas un poco exagerado, pero para construir la cadena de un array a partir de un array no estaria mal...

Los generadores de codigo de symfony y otros frameworks hacen algo asi pero creo que manualmente (hasta donde se)...

Lo otro que se me ocurre es hacer alguna clase de template pero para php (que de hecho me parece algo mas sencillo), algo asi pero para php:

http://www.cristalab.com/tutoriales/creacion-y-uso-de-plantillas-o-templates-en-php-c132l/

Por Duilio

Claber

2590 de clabLevel

25 tutoriales
1 articulo

Genero:Masculino   Premio_Secretos

Venezuela

firefox
Citar            
MensajeEscrito el 16 Abr 2009 04:05 am
En mi FW yo hago eso a mano, desconozco si hay algo de fábrica que ya lo haga.

Pero no tiene ciencia, como para preocuparse mucho por algo hecho.

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 16 Abr 2009 05:23 am
Tienes razón, bueno era curiosidad más que todo :P

voy a ver si me tomo un tiempito en escribir un tutorial o tip con lo del yaml...

Por Duilio

Claber

2590 de clabLevel

25 tutoriales
1 articulo

Genero:Masculino   Premio_Secretos

Venezuela

firefox
Citar            
MensajeEscrito el 16 Abr 2009 06:39 pm
por eso decia que en la vida no hay nada imposible :-D saludos

Por talcual

686 de clabLevel



 

Colombia

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.