Composer 和注册 Autoloader

Composer and registering Autoloader

根据 https://github.com/PHPOffice/PHPWord/tree/master 它推断如果我通过 composer 安装 PHPWord,我不会注册自动加载器。参见:

It is recommended that you install the PHPWord library through composer. To do so, add the following lines to your composer.json.

{
    "require": {
       "phpoffice/phpword": "dev-master"
    }
}
Alternatively, you can download the latest release from the releases page. In this case, you will have to register the autoloader.

require_once 'path/to/PhpWord/src/PhpWord/Autoloader.php';
\PhpOffice\PhpWord\Autoloader::register();

(特别是 在这种情况下,您将必须注册自动加载器。)。

但是,如果我通过 Composer 安装,请跳过这些行

require_once 'path/to/PhpWord/src/PhpWord/Autoloader.php';
\PhpOffice\PhpWord\Autoloader::register();

我收到这个错误:

PHP Fatal error:  Class 'PhpOffice\PhpWord\Autoloader' not found in /Users/snowcrash/Developer/Code/PHP/PHPWord_Projects/test/basic_eg.php on line 3

所以,我的问题是 - 我是否需要向 Composer 注册 Autoloader

如果是这样,是文档不正确还是我误解了什么?

如果您通过 Composer 安装它,您仍然必须 require_once 'vendor/autoload.php' 在您的项目中。那是 Composer 的自动加载器。

不同之处在于 Composer 的自动加载器可用于您以后包含的所有库,而不仅仅是您现在想要的库。

首先检查public目录下的index.php文件。 您只需要一个干净的 index.php 文件,这样您就可以创建一个可以安装新 laravel 的新目录。从新的 laravel 目录中,复制 index.php 文件并替换到原始存储库中。 它对我有用..:)