Silverstripe 4 - 访问核心方法
Silverstripe 4 - accessing core methods
在 Silverstripe 3 中,一切都是按需自动加载的。这意味着可以知道他们想要使用的 class 和方法。示例:
Debug::dump('dump message');
如果我正确理解了 SS4 的概念,则需要将 class 导入您想要使用该方法的文件(或 属性)。在上面的示例中,需要在文件顶部执行如下操作
use /name/space/to/Debug
Debug::dump('dump message');
这样理解对吗?如果是这样,我真正的问题是开发人员如何有效地知道核心中所有内容的精确位置?除了它们的名称和您希望使用的方法之外,他们是否希望确切知道这些核心文件在系统中的位置?有没有工具或方法可以帮助做到这一点?
首先,澄清一下 -- 你所说的不是自动加载,它更像是别名 -- 但两者是相关的。
因为 Debug
class 不再在全局命名空间中,所以它的名称更加冗长 (SilverStripe\Dev\Debug
)。这被称为完全限定的 class 名称,或简称为 "FQCN"。然而,关于这个新名字并没有什么特别之处。打字很乏味,如果 class 更改了名称,您需要进行大量更新。
为此,您可以使用 use
语句将 "import" 即 class 放入您文件的局部范围下的别名。默认情况下,该别名只是 FQCN (Debug
) 的尾部部分,但您也可以使用您喜欢的任何自定义别名。 (use SilverStripe\Dev\Debug as MyDebugger
).
SS4 现在使用 PSR-4 autoloading,其中命名空间是一个关键部分。简而言之,它规定目录结构必须与 FQCN 匹配,例如/framework/src/Dev/Debug.php
。这使得自动加载具有确定性和可预测性。
至于工具,使用像 PHPStorm 这样功能强大的 IDE 对于在带有命名空间 classes 的框架中进行开发工作是非常宝贵的(这比这些天例外)。一个好的 IDE,比如 PHPStorm,不仅会在您输入 class 名称时自动完成,还会为您添加 use
语句,还有许多其他非常棒的省时功能.
对于更手动的方法,api.silverstripe.org 是查找 class 映射的好地方。
在 Silverstripe 3 中,一切都是按需自动加载的。这意味着可以知道他们想要使用的 class 和方法。示例:
Debug::dump('dump message');
如果我正确理解了 SS4 的概念,则需要将 class 导入您想要使用该方法的文件(或 属性)。在上面的示例中,需要在文件顶部执行如下操作
use /name/space/to/Debug
Debug::dump('dump message');
这样理解对吗?如果是这样,我真正的问题是开发人员如何有效地知道核心中所有内容的精确位置?除了它们的名称和您希望使用的方法之外,他们是否希望确切知道这些核心文件在系统中的位置?有没有工具或方法可以帮助做到这一点?
首先,澄清一下 -- 你所说的不是自动加载,它更像是别名 -- 但两者是相关的。
因为 Debug
class 不再在全局命名空间中,所以它的名称更加冗长 (SilverStripe\Dev\Debug
)。这被称为完全限定的 class 名称,或简称为 "FQCN"。然而,关于这个新名字并没有什么特别之处。打字很乏味,如果 class 更改了名称,您需要进行大量更新。
为此,您可以使用 use
语句将 "import" 即 class 放入您文件的局部范围下的别名。默认情况下,该别名只是 FQCN (Debug
) 的尾部部分,但您也可以使用您喜欢的任何自定义别名。 (use SilverStripe\Dev\Debug as MyDebugger
).
SS4 现在使用 PSR-4 autoloading,其中命名空间是一个关键部分。简而言之,它规定目录结构必须与 FQCN 匹配,例如/framework/src/Dev/Debug.php
。这使得自动加载具有确定性和可预测性。
至于工具,使用像 PHPStorm 这样功能强大的 IDE 对于在带有命名空间 classes 的框架中进行开发工作是非常宝贵的(这比这些天例外)。一个好的 IDE,比如 PHPStorm,不仅会在您输入 class 名称时自动完成,还会为您添加 use
语句,还有许多其他非常棒的省时功能.
对于更手动的方法,api.silverstripe.org 是查找 class 映射的好地方。