如何使用 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()
.
这是我的项目结构:
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()
.