clase php no encontrada cuando está incluida

Tengo una clase en PHP llamada “SEO_URL”. En un punto de esa clase tengo esto

$class_name = "cPath_SEO_URL"; return $class_name::href(); 

y obtengo

 Fatal error: Class 'cPath_SEO_URL' not found in ...\includes\classes\seo.class.php on line 52 

El caso es que he incluido la clase encima de SEO_URL

 include_once(/path/to/my/class); class SEO_URL{ } 

y entiendo ese error

Sin embargo, cuando codifico la clase en la parte superior de la clase SEO_URL, funciona. Entonces esto funciona

 class cPath_SEO_URL{ function cPath_SEO_URL(){} function href() { return "CPathHref"; } } class SEO_URL{ ... $class_name = "cPath_SEO_URL"; return $class_name::href(); ... } 

y esto no

 include_once(/path/to/my/class); class SEO_URL{ ... $class_name = "cPath_SEO_URL"; return $class_name::href(); ... } 

Estoy intentando esto en oscommerce.

¿Porqué es eso?

Ok, no vas a creer cuál fue el problema.

Estoy acostumbrado a abrir y cerrar un archivo php como este

  

no

  

y el archivo de clase estaba sin la etiqueta pero el etiqueta. Supongo que el entorno en el que estoy trabajando ahora quería el no el solamente.

Cargaría la clase pero no la interpretaría como php.

Con

 $class_name = "cPath_SEO_URL"; $test = new $class_name(); return $test::href(); 

estás haciendo una llamada estática en una instancia. Eso no tiene sentido.
En su lugar, querrás hacer

 $class_name = "cPath_SEO_URL"; return $class_name::href();