如何使用 psr-4 自动加载器在命名空间项目中添加 Twig

How to add Twig in namespaced project with psr-4 autoloader

这是我的项目结构:

app/
   Life/
      Forms
         Formhandler.php
      Page
         Pagehandler.php
   start.php

vendor/
   composer/
       autoload.php
index.php

index.php 需要 start.php,然后需要作曲家 autoload.php:

    //start.php
<?php
        require_once __DIR__ . '/../vendor/autoload.php';

这是一个工作结构,直到我将 Twig 添加到作曲家中。这是我的 composer.json 现在的样子:

{
    "autoload": {
        "psr-4": {
            "Life\" : "app/Life"
        }
    },
    "require": {
        "twig/twig" : "~1.0"
    }
}

据我所知,Twig 目前不支持 psr-4,我知道的唯一方法是在 composer 中以这种方式要求它,但是包含 "require" 我遇到如下错误: Class 'Life\Page\Twig_Autoloader' 未找到。

我在这里错过了什么?

哪个代码会触发此错误?

请注意您所在的命名空间!它将影响 class 个名称的解析。

例如,如果您在 namespace Life\Page 内并且正在使用 new Twig_Autoloader(),则可能会触发您的错误。 class 应该通过 uses 导入或用作 new \Twig_Autoloader().