PHP 5.3使用和Symfony表单

问题描述

| 我试图在我的项目中包含一些Symfony表单组件。
use Symfony\\Component\\Form\\Form; 
use Symfony\\Component\\Form\\FormInterface; 
如果我这样做,我得到:
Fatal error: Class \'Symfony\\Component\\Form\\Form\' not found
即使我知道这就是Form元素所在的位置。使用
require \'Symfony\\Component\\Form\\Form.PHP\'
可以,但是我需要别名表单元素才能使类正常工作。 编辑: 将ClassLoader复制到项目后尝试此操作仍会带来相同的错误
require_once __DIR__.\'/Symfony/Component/ClassLoader/UniversalClassLoader.PHP\';

use Symfony\\Component\\ClassLoader\\UniversalClassLoader;

$loader = new UniversalClassLoader();
$loader->registerNamespaces(array(
    \'Symfony\' => __DIR__.\'/Symfony\',));
$loader->register();
    

解决方法

        您需要设置自动加载。 \'use \'不能为您做到这一点。为此,请包括UniversalClassLoader,告诉它从何处加载Symfony文件并进行注册。
require_once __DIR__.\'/vendor/Symfony/Component/ClassLoader/UniversalClassLoader.php\';

use Symfony\\Component\\ClassLoader\\UniversalClassLoader;

$loader = new UniversalClassLoader();
$loader->registerNamespaces(array(
    \'Symfony\' => __DIR__.\'/vendor\',));
$loader->register();
\'use \'语句只是将完全限定的类名别名为较短的版本,供您在该文件中使用。     ,        替代方法:
require_once __DIR__.\'/Symfony/Component/ClassLoader/UniversalClassLoader.php\';

use Symfony\\Component\\ClassLoader\\UniversalClassLoader;

set_include_path(__DIR__.PATH_SEPARATOR.get_include_path());
$loader = new UniversalClassLoader();
$loader->useIncludePath(true);
$loader->register();
那应该为您工作,是吗?