Location: PHPKode > scripts > Object Generator > object-generator/generadorobjetos.class.php
<?php
/*********************************************************************************************
** 	Autor		:	Andrés Darío Gutiérrez Poveda.			          																**
** 	Fecha  	:	Abril 27 de 2004.	         				   	          															**
** 	Versión	:	0.1.a.                      			   	          															**
**	Empresa	:	Atila Servicios S.A. 			                      															**
**																																													**
**********************************************************************************************
**	Proposito:																																							**
**																																													**
** 		Esta clase se ocupa de generar los objetos de las tablas de una base de datos MySQL.	**
**																																													**
**********************************************************************************************
**	Version 0.2  - Agosto 31 de 2004 																												**
** 	Cambios para la versión 0.2																															**
**																																													**
**		- Se generan las clases con comentarios para realizar documentación con doxygen o 		**
**			javadoc.																																						**
**		- Mas facil de personalizar.																													**
*********************************************************************************************/

class objectgenerator{

	/*******************************************************************************************
	** 	ATRIBUTOS																																							**
	*******************************************************************************************/
	var $empresa;
	var $autor;
	var $email;
	
	/*******************************************************************************************
	** 	MÉTODOS																																								**
	*******************************************************************************************/
	/*****************************************************************************
	** 	NOMBRE:																																	**
	**																																					**
	** 	SET y GET para el atributo empresa.																			**
	**																																					**
	******************************************************************************
	** 	OBJETIVO:																															 	**
	**																																					**
	** 	Métodos utilizados para ajustar y obtener el valor del atributo.				**
	**																																					**
	******************************************************************************
	**	ARGUMENTOS:																															**
	**																																					**
	**	- value: Valor a asignar.																								**
	*****************************************************************************/	
	function get_empresa(){
		return $this->empresa;
	}
	
	function set_empresa($nombre){
		$this->empresa = $nombre;
	}
	
	/*****************************************************************************
	** 	NOMBRE:																																	**
	**																																					**
	** 	SET y GET para el atributo autor.																				**
	**																																					**
	******************************************************************************
	** 	OBJETIVO:																															 	**
	**																																					**
	** 	Métodos utilizados para ajustar y obtener el valor del atributo.				**
	**																																					**
	******************************************************************************
	**	ARGUMENTOS:																															**
	**																																					**
	**	- value: Valor a asignar.																								**
	*****************************************************************************/	
	function get_autor(){
		return $this->autor;
	}
	
	function set_autor($nombre){
		$this->autor = $nombre;
	}

	/*****************************************************************************
	** 	NOMBRE:																																	**
	**																																					**
	** 	SET y GET para el atributo email.																				**
	**																																					**
	******************************************************************************
	** 	OBJETIVO:																															 	**
	**																																					**
	** 	Métodos utilizados para ajustar y obtener el valor del atributo.				**
	**																																					**
	******************************************************************************
	**	ARGUMENTOS:																															**
	**																																					**
	**	- value: Valor a asignar.																								**
	*****************************************************************************/
	function get_email(){
		return $this->email;
	}
	
	function set_email($nombre){
		$this->email = $nombre;
	}

	/*****************************************************************************
 	** 	NOMBRE:																																	**
  **																																					**
 	** 	generar ($mysql,$path)																									**
  **																																					**
  ******************************************************************************
 	** 	OBJETIVO:																															 	**
  **																																					**
  ** 	Generar el objeto con sus variables privadas y los métodos SET y GET de **
  **	cada una.																																**	
 	**																																					**
 	******************************************************************************
 	**	ARGUMENTOS:																															**
 	**																																					**
 	**	- mysql: Objeto de tipo MySQL.																					**
 	**	-	tabla: Nombre de la tabla a la cual se le generará el objeto.					**
 	**	- path: Dirección y nombre del objeto generar.													**
 	**					Ej. /root/objetos/obj.class.php . Asegurese de que tiene los		**
 	**					permisos de escritura en dicho directorio.											**
 	*****************************************************************************/
	function genereobjeto($mysql,$tabla,$path){
		$fp = fopen($path,"w");
		
		if (!$fp) {
			$feeback = "El Archivo de movimientos no se pudo abrir!. ";
		}else{
			$campos = "";
			
			$date = new Date();
			$fecha = $date->fechaactual();
			
			$objeto = "<?php\n";	
			$objeto .= "/*********************************************************************************************\n";
			$objeto .= "** 	Autor		:	".$this->autor." <".$this->email.">.			          																**\n";
			$objeto .= "** 	Fecha  	:	".$date->fechaaletras($fecha).".	         				   	          											**\n";
			$objeto .= "** 	Versión	:	1.0.0.                      			   	          															**\n";
			$objeto .= "**	Empresa	:	".$this->empresa." 			                      															**\n";
			$objeto .= "**																																													**\n";
			$objeto .= "**********************************************************************************************\n";
			$objeto .= "**	Proposito:																																							**\n";
			$objeto .= "**																																													**\n";
			$objeto .= "** 		Esta clase se encarga de manejar todas las operaciones del objeto ".$tabla.".					**\n";
			$objeto .= "**																																													**\n";
			$objeto .= "**********************************************************************************************\n";
			$objeto .= "**	Version 1.0.0  -  ".$date->fechaaletras($fecha)."																							**\n";
			$objeto .= "** 	Cambio para la versión 1.0.0																														**\n";
			$objeto .= "**																																													**\n";
			$objeto .= "** 		- Objeto generado por el generador automático v0.2.a.																	**\n";
			$objeto .= "*********************************************************************************************/\n\n";
			$objeto .= "/**\n";
 			$objeto .= "* Esta clase se encarga de manejar todas las operaciones del objeto ".$tabla.".\n";
 			$objeto .= "* @author ".$this->autor." <".$this->email.">.\n";
 			$objeto .= "* @date ".$date->fechaaletras($fecha).".\n";
 			$objeto .= "* @version 1.0.0\n";
 			$objeto .= "*/\n";
				
			$objeto .= "class ".$tabla."{\n\n";
			
			$objeto .= "	/*******************************************************************************************\n";
			$objeto .= "	** 	ATRIBUTOS																																							**\n";
			$objeto .= "	*******************************************************************************************/\n";
	
			$objdb = $mysql->get_mysql_db();
			$objlink = $mysql->get_mysql_link();
			$camposA = mysql_list_fields($objdb,$tabla,$objlink);
			$columns = mysql_num_fields($camposA);
							
			for ($i = 0; $i < $columns; $i++) {
				$campo = mysql_field_name($camposA,$i);
				$campos .= ",".$campo;
				$objeto .= "  /** Descripción variable*/";
				$objeto .= "	var $".$campo.";\n";
			}
			
			$campos = substr($campos,1);
			
			$objeto .= "\n";
			$objeto .= "	/*******************************************************************************************\n";
			$objeto .= "	** 	MÉTODOS																																								**\n";	
			$objeto .= "	*******************************************************************************************/\n";
			
			for ($i = 0; $i < $columns; $i++) {
				$campo = mysql_field_name($camposA,$i);
				$objeto .= "	/*****************************************************************************\n";
				$objeto .= "	** 	NOMBRE:																																	**\n";
				$objeto .= "	**																																					**\n";
				$objeto .= "	** 	SET y GET para el atributo ".$campo.".																	**\n";
				$objeto .= "	**																																					**\n";
				$objeto .= "	******************************************************************************\n";
				$objeto .= "	** 	OBJETIVO:																															 	**\n";
				$objeto .= "	**																																					**\n";
				$objeto .= "	** 	Métodos utilizados para ajustar y obtener el valor del atributo.				**\n";
				$objeto .= "	**																																					**\n";
				$objeto .= "	******************************************************************************\n";
				$objeto .= "	**	ARGUMENTOS:																															**\n";
				$objeto .= "	**																																					**\n";
				$objeto .= "	**	- value: Valor a asignar.																								**\n";
				$objeto .= "	*****************************************************************************/\n";
				$objeto .= "  /**\n";
	 			$objeto .= "  * Obtiene el valor del atributo ".$campo.".\n";
	 			$objeto .= "  *\n";
	 			$objeto .= "	* @pre\n"; 
	 			$objeto .= "	* @post\n";
	 			$objeto .= "  * @return ".$campo." => Descripción variable.\n";
	 			$objeto .= "  */\n";
				$objeto .= "	function get_".$campo."(){\n";
				$objeto .= "		return $"."this->".$campo.";\n";
				$objeto .= "	}\n\n";
				$objeto .= "  /**\n";
	 			$objeto .= "  * Le da el valor al atributo ".$campo.".\n";
	 			$objeto .= "  *\n";
	 			$objeto .= "	* @pre\n";
	 			$objeto .= "	* @post El atributo tiene el valor de value.\n";
	 			$objeto .= "  * @param value => Valor a asignar.\n";
	 			$objeto .= "  */\n";
				$objeto .= "	function set_".$campo."($"."value){\n";
				$objeto .= "		$"."this->".$campo." = $"."value;\n";
				$objeto .= "	}\n\n\n";
			}
			
			$objeto .= "	/*****************************************************************************\n";
 			$objeto .= "	** 	NOMBRE:																																	**\n";
  		$objeto .= "	**																																					**\n";
 			$objeto .= "	** 	get_".$tabla." ($"."id).																								**\n";
  		$objeto .= "	**																																					**\n";
  		$objeto .= "	******************************************************************************\n";
 			$objeto .= "	** 	OBJETIVO:																															 	**\n";
  		$objeto .= "	**																																					**\n";
  		$objeto .= "	** 	Obtener datos de la base de datos.																			**\n";
 			$objeto .= "	**																																					**\n";
 			$objeto .= "	******************************************************************************\n";
 			$objeto .= "	**	ARGUMENTOS:																															**\n";
 			$objeto .= "	**																																					**\n";
 			$objeto .= "	**	- id: Identificador único del objeto.																		**\n";
 			$objeto .= "	*****************************************************************************/\n";
			$objeto .= "	/**\n";
	 		$objeto .= "	* Llena el objeto con los datos de la base de datos.\n";
	 		$objeto .= "	*\n";
	 		$objeto .= "	* @pre id debe existir.\n";
	 		$objeto .= "	* @post Los atributos tienen los datos de la base de datos.\n";
	 		$objeto .= "	* @param id => Identificador único.\n";
	 		$objeto .= "	*/\n";
			$objeto .= "	function get_".$tabla."($"."id){\n";
			$objeto .= "		$"."info['tabla'] = '".$tabla."';\n";
			$objeto .= " 		$"."info['campos'] = '".$campos."';\n";
			$objeto .= "		$"."info['movimientoid'] = 6;\n";
			$objeto .= " 		$"."info['usuarioid'] = 0;\n";
			$objeto .= "		$"."info['sql'] = \"SELECT \".$"."info['campos'].\" FROM \".$"."info['tabla'].\" WHERE id = \".$"."id;\n";
			$objeto .= "		$"."result = $"."this->mysql->ejecutarsql($"."info);\n";
			$objeto .= "		$"."row = mysql_fetch_array($"."result);\n";
			for ($i = 0; $i < $columns; $i++) {
				$campo = mysql_field_name($camposA,$i);
				$objeto .= "		$"."this->".$campo." = $"."row['".$campo."'];\n";
			}
			$objeto .= "	}\n";	
			
			$objeto .= "}\n";
			$objeto .= "?>";
			fputs($fp,$objeto);
			fclose($fp);
		}
	}

	/*****************************************************************************
 	** 	NOMBRE:																																	**
  **																																					**
 	** 	generar ($mysql,$path)																									**
  **																																					**
  ******************************************************************************
 	** 	OBJETIVO:																															 	**
  **																																					**
  ** 	Obtener el nombre de todas las tablas de la base de datos y mandar a 		**
  **	generar los objetos de cada una.																				**
 	**																																					**
 	******************************************************************************
 	**	ARGUMENTOS:																															**
 	**																																					**
 	**	- mysql: Objeto de tipo MySQL.																					**
 	**	- path: Dirección donde deben quedar los objetos generados.							**
 	**					Ej. /root/objetos , notese que no debe de terminar con /.				**
 	*****************************************************************************/
	function generar($mysql,$path){
		$objdb = $mysql->get_mysql_db();

		$result = @mysql_list_tables($objdb);
  	while ($row = mysql_fetch_row($result)) {
  		$pathf = $path."/".$row[0].".class.php";
			$this->genereobjeto($mysql,$row[0],$pathf);
		}
	}
}
?>
Return current item: Object Generator