[英]First steps using namespaces
是第一次在项目中使用命名空间。 我有3节课:
Contacto.class.php
/**
* Gestiona las operaciones ABM de la informacion de contacto de un usuario
* cualquiera.
* La clase no realiza validaciones, eso será labor del controlador.
* @package AdminManantiales
* @subpackage Abm
* @author Ramiro Martínez D'Elía
*/
namespace AdminManantiales\Classes\Abm\Contacto;
class Contacto { // Implement ... }
Usuario.class.php
/**
* Gestiona las operaciones ABM del tipo de usuario más abstracto.
* La clase no realiza validaciones, eso será labor del controlador.
* @package AdminManantiales
* @subpackage Abm
* @author Ramiro Martínez D'Elía
*/
namespace AdminManantiales\Classes\Abm\Usuario;
abstract class Usuario { // Implement ... }
Alumno.class.php
/**
* Gestiona las operaciones ABM del tipo de usuario alumno.
* La clase no realiza validaciones, eso será labor del controlador.
* @package AdminManantiales
* @subpackage Abm
* @author Ramiro Martínez D'Elía
*/
namespace AdminManantiales\Classes\Abm\Alumno;
class Alumno extends \AdminManantiales\Classes\Abm\Usuario{ // Implement ... }
类的路径是ROOT/classes/Abm
。 因此,当包括要工作的类时:
include($_SERVER['DOCUMENT_ROOT']."/classes/Abm/Contacto.class.php");
include($_SERVER['DOCUMENT_ROOT']."/classes/Abm/Usuario.class.php");
include($_SERVER['DOCUMENT_ROOT']."/classes/Abm/Alumno.class.php");
下一条消息失败: Class 'AdminManantiales\\Classes\\Abm\\Usuario' not found in <b>/media/Datos/www/AdminManantiales/classes/Abm/Alumno.class.php</b> on line <b>12</b>
有任何想法吗 ?。
定义名称空间时,不应在其中使用类名。
具有定义的类:
namespace AdminManantiales\Classes\Abm;
abstract class Usuario { // Implement ... }
使用后将可访问
use AdminManantiales\Classes\Abm\Usuario;
要么
class Alumno extends \AdminManantiales\Classes\Abm\Usuario { // Implement ... }
更好地解释一下:命名空间可以视为bag,而class将是该bag中的项。 要访问选定的物品,您必须提供行李袋的名称( AdminManantiales\\Classes\\Abm
)和此物品( Usuario
):)
您将每个类放在其自己的名称空间中,因为要在名称空间名称中包含类名称。
代替对所有类执行此操作:
namespace AdminManantiales\Classes\Abm;
这也将使您简化语法。 现在,这些类位于相同的名称空间中,您无需使用完全限定的名称来引用它们,因此这将起作用:
class Alumno extends Usuario { ... }
切勿在名称空间声明中使用斜杠和点。
wrong formats:
<?php
namespace first\second.w;
?>
<?php
namespace first/second;
?>
在这里检查php.net
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.