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

erro de una clase por cambio de servidor

Estas en el tema de erro de una clase por cambio de servidor en el foro de Frameworks y PHP orientado a objetos en Foros del Web. hace poco se ha actualizado la version del php de mi servidor a la 5.2.17 desde ahi me salen varios errores uno de ellos es ...
  #1 (permalink)  
Antiguo 17/05/2012, 13:17
Avatar de predacom  
Fecha de Ingreso: agosto-2003
Ubicación: arequipa-peru
Mensajes: 37
Antigüedad: 20 años, 8 meses
Puntos: 2
Ayuda con una clase php y constantes por cambio de servidor

hace poco se ha actualizado la version del php de mi servidor a la 5.2.17
desde ahi me salen varios errores uno de ellos es este:
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /home/xxxxxxxx/public_html/admin/includes/Pagina.php on line 5

el codigo es el siguiente:

Código PHP:
<?php

class Pagina
{
    protected static 
$table_name "paginas";
    protected static 
$db_fields = array('id''seccion''titulo_es''titulo_en',  'contenido_es''contenido_en''tags_es''tags_en''titulo_general_es''titulo_general_en''descripcion_es''descripcion_en',  'url_es''url_en',  'orden');
        
    public 
$id;
    public 
$seccion;
    public 
$titulo_es;
    public 
$titulo_en;
    public 
$contenido_es;
    public 
$contenido_en;
    public 
$tags_es;
    public 
$tags_en;
    public 
$titulo_general_es;
    public 
$titulo_general_en;
    public 
$descripcion_es;
    public 
$descripcion_en;
    public 
$url_es;
    public 
$url_en;
    public 
$orden;
    
    public function 
__construct()
    {        
        
$this->database = new MySQLDatabase();        
    }
        
// Database Methods        
    
public static function find_all()
    {
        return 
self::find_by_sql("SELECT * FROM " self::$table_name);             
    }
        
    public static function 
find_by_id($id=0)
    {
        
$database = new MySQLDatabase();

        
$result_array self::find_by_sql("SELECT * FROM "self::$table_name ." WHERE id=".$database->escape_value($id)." LIMIT 1");
        return !empty(
$result_array) ? array_shift($result_array) : false;
    }
        
    public static function 
find_by_sql($sql="")
    {
        
$database = new MySQLDatabase();
        
$result_set $database->query($sql);
        
$object_array = array();
        
        while(
$row $database->fetch_array($result_set)){
            
$object_array[] = self::instantiate($row);
        }
        return 
$object_array;
    }        
        
    public static function 
count_all(){
        
$database = new MySQLDatabase();
        
$sql "SELECT COUNT(*) FROM ".self::$table_name;
        
$result_set $database->query($sql);
        
$row $database->fetch_array($result_set);
        return 
array_shift($row);                        
    }
        
    private static function 
instantiate($record){

        
$object = new self;
            
        foreach(
$record as $attribute=>$value){
            if(
$object->has_attribute($attribute)){
                
$object->$attribute $value;
            }
        }
        return 
$object;
    }
        
    private function 
has_attribute($attribute){
        
        
$object_vars $this->attributes();        
        return 
array_key_exists($attribute$object_vars);
    }
        
    protected function 
attributes(){            
        
$attributes = array();
            
        foreach(
self::$db_fields as $field){
            if(
property_exists($this$field)){
                
$attributes[$field] = $this->$field;
            }
        }
        
        return 
$attributes;
    }    
}    
?>
tambien tengo el problema de las constantes, antes no tenia ningun problema peor ahora no me las reconoce:

asi declaraba antes:

Código PHP:
<?php
define 
(TEL"Tel: ");
define (FAX"Fax: ");
define (FOTOS"Fotos");
define (VIDEOS"Videos");
define (HOME"Inicio");
define (COMPARTIR"Compartir en");
define (DESCARGA"Descargar");
define (SIGUIENTE"Siguiente");
define (ANTERIOR"Anterior");
?>
porfa alguien que me guie a solucionarlo
__________________
Predacom Design Studio
www.predacom.net

Última edición por predacom; 17/05/2012 a las 13:20 Razón: error
  #2 (permalink)  
Antiguo 17/05/2012, 16:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: erro de una clase por cambio de servidor

Sí ese es tal cual tu código es muy raro, ya que a mi no me da problema (no da errores de parseo).

El segundo error es porque los defines deben de ser con strings:
Código PHP:
Ver original
  1. // mal
  2. define(FOO, 'foo');
  3. // bien
  4. define('FOO', 'foo');
  5.  
  6. echo FOO;

Saludos.
  #3 (permalink)  
Antiguo 17/05/2012, 17:40
Avatar de predacom  
Fecha de Ingreso: agosto-2003
Ubicación: arequipa-peru
Mensajes: 37
Antigüedad: 20 años, 8 meses
Puntos: 2
Respuesta: erro de una clase por cambio de servidor

gracias, con k version de php lo has probado?
__________________
Predacom Design Studio
www.predacom.net
  #4 (permalink)  
Antiguo 17/05/2012, 19:14
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: erro de una clase por cambio de servidor

5.4, pero de todos modos no veo ningún error, por eso mi pregunta a si ese ese código tal cual, o es otro archivo..
  #5 (permalink)  
Antiguo 18/05/2012, 00:19
Avatar de predacom  
Fecha de Ingreso: agosto-2003
Ubicación: arequipa-peru
Mensajes: 37
Antigüedad: 20 años, 8 meses
Puntos: 2
Respuesta: erro de una clase por cambio de servidor

el codigo es tal cual , no se ha modificado nada.
esta es la version del servidor:

Version de Apache - 1.3.42
Version de PHP - 5.2.17
Version de MySQL - 5.1.62-cll
hosting Lunarpages
__________________
Predacom Design Studio
www.predacom.net

Etiquetas: clasese, oop
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 09:40.