编写和注册Autoloader

时间:2016-03-20 18:44:38

标签: php composer-php 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

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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