【问题标题】:How to know that a php project is using Zend framework?如何知道一个 php 项目正在使用 Zend 框架?
【发布时间】:2019-07-09 15:04:23
【问题描述】:

我正在写一个小软件来遍历所有传入的php项目的文件夹和文件,并检测其中是否有一个实际上也是Zend项目。是否有任何特定文件可以立即读取并告诉我当前项目是 Zend 项目?或者有什么方便的方式告诉?

【问题讨论】:

    标签: php zend-framework


    【解决方案1】:

    我认为上述答案的方向不正确。首先,

    Zend Framework 通常被称为 '组件库',因为它有 许多松散耦合的组件 你可以或多或少地使用 独立。

    Source: Zend Framework & MVC Introduction

    假设标准使用将包括建议的 MVC 结构和用于项目创建的 zftool 是一个错误的假设,因为许多项目手动选择 Zend 组件的子集以最小化现在 45MB 的类占用空间。

    相反,让我们看看 Thomas 在上面的回答中暗示的一点:

    此外,库目录将 通常包含一个名为 'Zend'。

    现在来自 Zend 的程序员参考指南:

    Zend Framework 标准化一个类 命名约定,其中的名称 类直接映射到 存储它们的目录。 根级目录...是 "Zend/" 目录 ... 所有 Zend 存储框架类 在这些根下分层 目录..

    类名只能包含 字母数字字符。编号是 允许在类名中,但 在大多数情况下不鼓励。下划线 只允许代替 路径分隔符;文件名 “Zend/Db/Table.php”必须映射到 类名“Zend_Db_Table”。

    重要提示:必须部署的代码 与 Zend Framework 库一起,但 不是标准或附加的一部分 库(例如应用程序代码或 未分发的库 Zend) 绝对不能以 "Zend_" 或 “ZendX_”。

    Source: Naming Conventions

    更好的建议是检查根目录“/Zend”,但这不包括开发人员决定放弃上述建议并将 Zend 类文件放入某个全局库目录的任何项目。

    最好的猜测是递归地遍历项目目录中的所有文件,寻找与建议的伪命名空间(Zend_ ...)匹配的类名。

    【讨论】:

    • @Yenta 感谢您的详细解释。这真是一个很好的答案。
    【解决方案2】:

    这是 ZF 在您启动项目时为您创建的默认目录结构。因此,如果您只是查看目录结构,这应该可行。

    或者,您可以查看目录是否有一个名为 .zfproject.xml 的隐藏文件。

    希望对你有帮助!

    【讨论】:

    • 谢谢托马斯。你能告诉我 .zfproject.xml 的确切位置吗?再次感谢。
    • .zfproject.xml 位于项目的根目录下。因此,在上面的示例中,它将与应用程序、文档和库目录处于同一级别。每当使用 ZF 的工具创建项目时,都会自动创建该文件。我想可以在不使用该工具的情况下使用 ZF,但我从未见过这样做过。此外,库目录通常包含一个名为“Zend”的目录。我想说,根据这两个标准,您将捕获 99% 的 Zend 项目。然而,总有可能有人会使用自定义设置并且......祝你好运
    • @Winston Chen:Zend 框架不需要 .zfproject.xml,它只是告诉您创建项目的人使用 Zend_Tool 创建它。您也可以不使用 Zend_Tool 创建它,而且很多旧的(阅读:Zend Framework 1.8 之前的项目)不会由 Zend_Tool 创建(因为它当时不存在)。
    猜你喜欢
    • 2011-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多