使用PSR-4命名规范同时:
术语「类」是一个泛称;它包含类,接口,traits 以及其他类似的结构;
完全限定类名应该类似如下范例:
\< NamespaceName >(\< SubNamespaceNames >)*\< ClassName >
完全限定类名必须有一个顶级命名空间(Vendor Name);
完全限定类名可以有多个子命名空间;
完全限定类名应该有一个终止类名;
下划线在完全限定类名中是没有特殊含义的;
字母在完全限定类名中可以是任何大小写的组合;
所有类名必须以大小写敏感的方式引用;
当从完全限定类名载入文件时:
在完全限定类名中,连续的一个或几个子命名空间构成的命名空间前缀(不包括顶级命名空间的分隔符),至少对应着至少一个基础目录。
在「命名空间前缀」后的连续子命名空间名称对应一个「基础目录」下的子目录,其中的命名 空间分隔符表示目录分隔符。子目录名称必须和子命名空间名大小写匹配;
终止类名对应一个以 .php 结尾的文件。文件名必须和终止类名大小写匹配;
classes类目录下的:文件名、类名、文件的位置,三者是对应的,大小写敏感。
1.比如有文件:classes/Controller/User.php
那么User.php文件内容应该是:
<?php
namespace Controller;
class User extends \Soter_Controller {
public function do_echo() {
\Sr::dump(__CLASS__);
}
}
2.比如有文件:classes/Controller/Vip/User.php
User类是:\Controller\Vip\User ; User.php类文件内容应该是如下:
<?php
namespace Controller\Vip;
class User extends \Soter_Controller {
public function do_echo() {
\Sr::dump(__CLASS__);
}
}
3.比如有文件:classes/Model/User.php
User类是:\Model\User ; User.php类文件内容应该是如下:
<?php
namespace Model;
class User extends \Soter_Model {
public function demo() {
return "demo";
}
}
4.比如有文件:classes/MyLib/User.php
User类是:\MyLib\User ; User.php类文件内容应该是如下:
<?php
namespace MyLib;
class User {
public function demo() {
return "demo";
}
}