【问题标题】:Autoloading Classes from PHP Project into Zend Framework 2 Project将 PHP 项目中的类自动加载到 Zend Framework 2 项目中
【发布时间】:2013-06-20 12:56:43
【问题描述】:

从驻留在其中的 PHP 项目中自动加载类的最佳方法是什么

PHP 项目

C:
|Projects
         |MyProject
                   |Classes
                           |CStudents.php
                                          |Student (ClassName)
                                                   |getStudentName() (Method)

所有的类都有前缀,这样,如果类是Students,那么它驻留在CStudents.php中

现在我需要访问这些类,提取一些数据并进一步使用 Zend Framework 2 模块。

Zend Framework 2 项目:

C:
|Projects
         |Zend
              |module
                     |Application
                                 |Module.php

那么,什么是最简单和最好的方法呢?我需要自动加载不超过 50 个类。

编辑:我的问题与one 几乎相似,但唯一的区别是我对 Zend Framework 2 有要求。

如前所述,所有类都位于 Classes 文件夹中,类文件以“C”[CStudent.php] 作为前缀,类名 [Class Student] 没有前缀,所以假设我想访问 Student::getStudentName ();我怎样才能做到这一点?

谢谢

【问题讨论】:

标签: php zend-framework2 autoload


【解决方案1】:

这是我如何使用自动加载器的示例。

模块.php

/**
 * Autoloader
 *
 * @return array
 */
public function getAutoloaderConfig()
{
    return array(
        'Zend\Loader\ClassMapAutoloader' => array(
            __DIR__ . '/autoload_classmap.php'
        )
    );
}

ZF2 带有一个classmap_generator.php,它将为您的模块中找到的所有类构建所需的 PHP 数组。你可以运行classmap_generator -l modules/NameOfYourModule

这将输出一个名为 autoload_classmap.php 的文件,并将其放置在您的 Module/NameOfYourModule 文件夹中。

您还可以在文档http://zf2.readthedocs.org/en/latest/modules/zend.loader.autoloader-factory.html中找到更多信息

【讨论】:

  • 感谢您的回答,但我想加载的所有类不是来自 Zend 模块,而是来自经典 PHP 项目。如前所述,所有类都位于 Classes 文件夹中,类文件以“C”[CStudent.php] 作为前缀,类名 [Class Student] 没有前缀,所以假设我想访问 Student::getName();我怎样才能做到这一点?
  • 我找到了这个,虽然我还没有测试过,但也许它会有所帮助:stackoverflow.com/questions/8559107/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-15
  • 2012-12-06
  • 2012-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多