Php 如何在Zend Framework中加载类

Php 如何在Zend Framework中加载类,php,zend-framework,Php,Zend Framework,我在标准Zend Framework应用程序的库折叠中得到了一个PHP库。在我的模型和控制器中加载文件及其所有类的最佳方式是什么 结构: library/phpMarkdown/markdown.php 注: PHP Markdown有一个非常丑陋的结构:它唯一真正的API是一个简单的函数,而不是一个类。因此,优雅的方法不适用于这种情况,但对于Geneall解决方案这个问题,正确命名的文件/类也是正确的答案 编辑 这里有这么多好的输入,真的不知道我应该接受哪个答案!谢谢大家 只要实例化这个类,

我在标准Zend Framework应用程序的库折叠中得到了一个PHP库。在我的模型和控制器中加载文件及其所有类的最佳方式是什么

结构:

library/phpMarkdown/markdown.php
注: PHP Markdown有一个非常丑陋的结构:它唯一真正的API是一个简单的函数,而不是一个类。因此,优雅的方法不适用于这种情况,但对于Geneall解决方案这个问题,正确命名的文件/类也是正确的答案

编辑 这里有这么多好的输入,真的不知道我应该接受哪个答案!谢谢大家

只要实例化这个类,自动加载程序就会找到它。如果没有,则需要添加名称空间和路径


只要实例化这个类,自动加载程序就会找到它。如果没有,则需要添加名称空间和路径

如果您在以下树中有一个类,例如:library/My/Tool.php

您需要将其添加到application.ini中:

autoloaderNamespaces[] = "My_"
然后在代码中调用:

$tool = new My_Tool();
编辑:

在文件Tool.php中,必须遵循Zend命名约定,并具有如下内容:

<?php

class My_Tool {

}

有关更多信息,请参见:

如果您在以下树中有一个类,例如:library/My/Tool.php

您需要将其添加到application.ini中:

autoloaderNamespaces[] = "My_"
然后在代码中调用:

$tool = new My_Tool();
编辑:

在文件Tool.php中,必须遵循Zend命名约定,并具有如下内容:

<?php

class My_Tool {

}

有关更多信息,请参见:

为了保持简单,只需添加一个文件,您可以在Bootstrap.php中添加类似的内容:


我刚刚将markdown.php复制到应用程序库中,并将这个小函数放在引导程序中。如果需要,您也可以使用。

为了保持简单,只需添加一个文件,您可以在Bootstrap.php中添加如下内容:



我刚刚将markdown.php复制到应用程序库中,并将这个小函数放在引导程序中。如果需要,您也可以使用。

这仅在library/My/Tool.php中的类被称为Tool right时有效?我无法让它以某种方式工作,但文件名与类名不同…Tool.php中的类必须命名为My_Tool:这仅在library/My/Tool.php中的类被称为Tool right时有效?我无法让它以某种方式工作,但文件名与类名不同…Tool.php中的类必须命名为My_Tool:我已经看过了,但我想不出来!你能给我举个例子吗?当然,你能提供一些关于你的文件结构的更多信息吗?完成。但我在RockyFord找到了解决方案。但是如果你有什么要补充的,例如,在这种情况下,你应该使用这个,一般来说,例如,什么是更有效的等,将是伟大的!我已经看过了,但是我想不出来!你能给我举个例子吗?当然,你能提供一些关于你的文件结构的更多信息吗?完成。但我在RockyFord找到了解决方案。但是如果你有什么要补充的,例如,在这种情况下,你应该使用这个,一般来说,例如,什么是更有效的等,将是伟大的!仅供参考,我使用了Textile not markdown库,其结构/类名与Zend Framework自动加载系统不直接兼容。我必须将Textile.php文件放在library/Textile/文件夹中,并将其中的类从Textile重命名为Textile\u Textile。是的,有点奇怪,但它是有效的。也许你必须这样做。关于为不符合PSR-0的类创建自定义自动加载程序的示例,请参阅这也非常有用,谢谢。哇,这里有这么多好的输入…仅供参考,我使用了Textile not markdown库,其结构/类名与Zend Framework自动加载系统不直接兼容。我必须将Textile.php文件放在library/Textile/文件夹中,并将其中的类从Textile重命名为Textile\u Textile。是的,有点奇怪,但它是有效的。也许你必须这样做。关于为不符合PSR-0的类创建自定义自动加载程序的示例,请参阅这也非常有用,谢谢。哇,这里有这么多好的输入…这很好用。但这意味着我可以全局访问markdown.php中的所有函数/类,并且每次调用应用程序时都会加载这些函数/类?因此,如果在应用程序范围内不需要它,您可以将相同的代码放在任何控制器的init方法中,或者只在Action中使用它。这很好。但这意味着我可以全局访问markdown.php中的所有函数/类,并且每次调用应用程序时都会加载这些函数/类?因此,如果在应用程序范围内不需要它,您可以将相同的代码放在任何控制器的init方法中,或者只在操作中使用它