命名空间是一种将包中的相关类进行分组的方法。你描述的可能最好的一个单一命名空间下放到像
<?php // people.php
namespace com\example\johnslibrary\people;
abstract class People {
}
然后
<?php // manager.php
namespace com\example\johnslibrary\people;
require_once 'path/to/People.php'; // can better use autoloading though
class Manager extends People {
}
因为经理是人的一个子类,所以没有太多的理由把他们变成自己的自己的命名空间。他们是专业人士。
如果您希望管理员使用自己的名称空间,则可以这样做,但必须在使用extends
关键字时使用完全限定名称,例如,
<?php // manager.php
namespace com\example\johnslibrary\managers;
require_once 'path/to/People.php';
class Manager extends \com\example\johnslibrary\people\People {
}
或导入人民类第一
<?php // manager.php
namespace com\example\johnslibrary\managers;
use com\example\johnslibrary\People as People;
require_once 'path/to/People.php';
class Manager extends People {
}
See the PHP Manual on Namespaces for extensive documentation.
有一点要注意,在PHP的命名空间并不能反映你的目录结构。您必须手动将您的目录结构与命名空间名称映射。 – Extrakun 2010-11-11 09:25:32
[This](http://www.sitepoint.com/php-53-namespaces-basics/)将是一个很好的资源,可以清除您需要了解的关于PHP名称空间的所有信息。 – 2015-07-28 11:31:22