• 在文件和命名空间中组织代码

    在文件和命名空间中组织代码

    在 php 中, 您可以将代码放置在任何文件中, 而不需要特定的结构。 在 Zephir中, 每个文件都必须包含一个类 (并且只有一个类)。 每个类都必须有一个命名空间, 并且目录结构必须与所使用的类和命名空间的名称相匹配。 (这类似于 psr-4 自动加载约定, 只是它是由语言本身强制执行的。

    例如, 给定以下结构, 每个文件中的类必须是:

    1. mylibrary/
    2. router/
    3. exception.zep #
    4. router.zep # MyLibrary\Router

    Class in mylibrary/router.zep:

    1. namespace MyLibrary;
    2. class Router
    3. {
    4. }

    Class in mylibrary/router/exception.zep:

    1. namespace MyLibrary\Router;
    2. class Exception extends \Exception
    3. {
    4. }

    如果文件或类不在预期文件中, 则 Zephir 将引发编译器异常, 反之亦然。