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

PHP OO Clases Estáticas

Estas en el tema de Clases Estáticas en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Tengo el siguiente problema Digamos que tengo tres archivos ( index.php , exception.php y db.php ). El primero (index.php) contiene lo siguiente: Código PHP: include  ...
  #1 (permalink)  
Antiguo 30/11/2011, 00:52
Avatar de LanbreGroteo  
Fecha de Ingreso: agosto-2009
Ubicación: $Mx->['Veracruz']
Mensajes: 69
Antigüedad: 14 años, 8 meses
Puntos: 1
Clases Estáticas

Tengo el siguiente problema

Digamos que tengo tres archivos (index.php, exception.php y db.php).

El primero (index.php) contiene lo siguiente:
Código PHP:
include 'db.php';
include 
'exception.php'
El segundo (exception.php):
Código PHP:
class Exceptions
{
    public static function 
make($msg$code$level) {
        
self::checkLevel($level);

        try {
            throw new 
Exception($msg$code);
        }
        catch(
Exception $e){
            include 
'error.tpl';
        }
    }

El tercer archivo (db.php) contiene:
Código PHP:
class DB
{
    private function 
_IsConnected()
    {
        if(
$this->link):
            return 
true;
        else:
            
Exceptions::make('Unable to connect'2020);
    }

Cuando genero el error, me aparece lo siguente:
"Fatal error: Class 'Exceptions' not found in C:\xampp\htdocs\test\php\db.php on line 242" -que es la línea que contiene el Exception::make... etc

¿Alguna idea del porque esté sucediendo eso?

De antemano, muchas gracias.
G.
__________________
Et credo in Serpentem, mysterium mysteriorum. In nomen eius Baphomet
  #2 (permalink)  
Antiguo 30/11/2011, 07:12
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Clases Estáticas

el error es claro, no existe o no encuentra la clase Exceptions, debes de incluir ésta primero antes que la 2da, o usar un mecanismo de Autoload
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 30/11/2011, 21:59
Avatar de LanbreGroteo  
Fecha de Ingreso: agosto-2009
Ubicación: $Mx->['Veracruz']
Mensajes: 69
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: Clases Estáticas

He probado como me dijiste:
Código PHP:
<?php

include 'exception.php';
include 
'db.php';
y ahora me arroja este error:
"Fatal error: Cannot redeclare class Exceptions in C:\xampp\htdocs\test\php\exception.php on line 4"

Incluso, si le quito el db.php y sólo dejo en el index el archivo exception.php e intento hacer una prueba:
Código PHP:
Exceptions::make('Probando'2120); 
me arroja lo mismo.

Código PHP:
<?php

class Exceptions
{
(esa es la línea 4 de mi exception.php.. "{" )
__________________
Et credo in Serpentem, mysterium mysteriorum. In nomen eius Baphomet
  #4 (permalink)  
Antiguo 01/12/2011, 09:19
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: Clases Estáticas

Es mejor que uses un autoloader, pero el problema es el include, deberías de usar un include_once para evitar incluir dos veces el archivo.

Etiquetas: clases
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 18:30.