Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

clase fail

Estas en el tema de clase fail en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola chicos, es mi primer intento digamos de crear una clase Es class_fail que tiene constructor, metodo para eliminar el archivo y renombrar Pero no ...
  #1 (permalink)  
Antiguo 03/09/2007, 04:14
 
Fecha de Ingreso: septiembre-2006
Mensajes: 349
Antigüedad: 17 años, 7 meses
Puntos: 0
clase fail

Hola chicos, es mi primer intento digamos de crear una clase
Es class_fail que tiene constructor, metodo para eliminar el archivo y renombrar
Pero no funciona y como no tengo ni idea donde buscar error si alguien me puede echar una mano quedria muy agradecido

Código PHP:
class  class_file
{
//declaramos el mimebro de la clase
//nombre fail
var $name='';
//directorio si procede
var $folder='';


//constructor 

function __construct($FileName,$FileDir){
$this->name=$FileName;
$this->folder=$FileDir;

if(!
$this->name){
throw new 
Exception("archivo $FileName no existe!"21);}

if(!
$this->folder){
//si no hay directorio, es root
$this->folder='';}
}



//metod eliminar archivo
function deleteFile(){
unlink($this->folder."/".$this->name);
}

//metod cambiar nombre archivo
function renameFile($NewName){
rename($this->folder."/".$this->name$this->folder."/".$NewName);
}


Inicio clase
<?
include "class_fail.php";

//declaramos objeto de clase class_fail
$object=new class_fail("foto.jpg", "noticias");
$object->deleteFile();
?>

Intento eliminar pero el metodo no funciona.
  #2 (permalink)  
Antiguo 03/09/2007, 07:49
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: clase fail

Yo creo deberias de comprobar primeramente si el archivo existe usando file_exists en el constructor de tu clase.

Saludos.
  #3 (permalink)  
Antiguo 03/09/2007, 10:53
 
Fecha de Ingreso: septiembre-2006
Mensajes: 349
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: clase fail

Gracias!
Código PHP:
class  class_file
{
//declaramos el mimebro de la clase
//nombre fail
var $name='';
//directorio si procede
var $folder='';
//funcion comprobacion variables vacios


//constructor 

function __construct($FileName,$FileDir){
$this->name=$FileName;
$this->folder=$FileDir;
 
if(
file_exists($this->folder.$this->name)==true)
{
echo 
"archivo existe";
}
else{ echo 
"archivo no existe";}


if(!
$this->name){
throw new 
Exception("archivo $FileName no existe!"21);}

if(!
$this->folder){
//si no hay directorio, es root
$this->folder='';}
}


//metod eliminar archivo
function deleteFile(){
unlink($this->folder.$this->name);
echo 
"archivo eliminado";
}

//metod cambiar nombre archivo
function renameFile($NewName){
rename($this->folder.$this->name$this->folder.$NewName);
}


Añadi comprobacion pero no me devuelve nada de nada. Ni "archivo no existe".
Una pregunta. El constructor se ejecuta al crear una instancia de la clase?
O sea no es necesario ecribir
$object->____construct($FileName,$FileDir);
?
Gracias !
  #4 (permalink)  
Antiguo 03/09/2007, 11:23
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: clase fail

Que version de PHP manejas? El constructor __construct solo es llamado en las versiones nuevas de PHP (5+), si estas trabajando sobre PHP4, necesitas usar function class_fail().

Saludos.
  #5 (permalink)  
Antiguo 03/09/2007, 15:21
 
Fecha de Ingreso: abril-2003
Ubicación: Córdoba
Mensajes: 160
Antigüedad: 21 años
Puntos: 0
Re: clase fail

No me puse detenidamente a ver la clase, pero no se si te diste cuenta que tu clase se llama class_file y cuando queres crear la instancia usas:
new class_fail, los nombre no coiciden....
__________________
-----------------
_
__|_|__
º(-_-)º
  #6 (permalink)  
Antiguo 04/09/2007, 12:43
 
Fecha de Ingreso: septiembre-2006
Mensajes: 349
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: clase fail

Gracias chicos,
estaba investigando tengo en servidor Version 4.4.4 de PHP.
El problema que cuando ago include de clase no se me ejecuta ninguna sentencia de la web ni siguiera echo "hola";
y cuando quito include de clase se me ejecuta correctamente la pagina, o sea que el error esta en clase? o tengo que cambiar version de PHP?
Por cierto he visto que me equivoque llamando a clase, pero lo correji y no funciona igual.
He puesto la clase mas basica
Código PHP:
<?
class  classFile
{

//nombre 
$name;

//  Sets the name.
    
public function setName($newName)
{
return 
$this->name=$newName;
}

//  Gets the name

public function getName()
{
return 
$this->name;
}

}

?>
<?
include "classFile.php";

$object=new classFile("hola");
echo "Nombre archivo:" .$object->getName();
?>

Y no hace nada ...
Gracias a todos.

Y otra cosa. En soporte tecnico me dicen si necesito version mas recien lo instalaran. Tengo toda la herramienta de gestion y de adminstracion echa y funcionando, si paso aq version mas recien eso puede afectar el correcto funcionamiento?

Última edición por viktoria; 04/09/2007 a las 12:51
  #7 (permalink)  
Antiguo 04/09/2007, 13:05
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: clase fail

En la version 4.0 de PHP no puedes usar la visibilidad de las clases, es decir no puedes usar public, private, y protected, como tambien el constructor no es__construct.

Si tienes la posibilidad de actualizar de version te recomiendo lo hagas, ya que podras utilizar todas las posibilidades de PHP OO.

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:19.