Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP5.3使用和Symfony表单_Php_Autoload_Symfony - Fatal编程技术网

PHP5.3使用和Symfony表单

PHP5.3使用和Symfony表单,php,autoload,symfony,Php,Autoload,Symfony,我试图在我的项目中包含一些Symfony表单组件 use Symfony\Component\Form\Form; use Symfony\Component\Form\FormInterface; 如果我这样做,我会得到: Fatal error: Class 'Symfony\Component\Form\Form' not found 尽管我知道这就是表单元素所在的位置。使用 需要'Symfony\Component\Form\Form.php' 可以工作,但我需要为表单元素添加别

我试图在我的项目中包含一些Symfony表单组件

use Symfony\Component\Form\Form; 
use Symfony\Component\Form\FormInterface; 
如果我这样做,我会得到:

Fatal error: Class 'Symfony\Component\Form\Form' not found
尽管我知道这就是表单元素所在的位置。使用

需要'Symfony\Component\Form\Form.php'

可以工作,但我需要为表单元素添加别名以使类工作

编辑: 将类加载器复制到项目后尝试此操作仍会导致相同的错误:

require_once __DIR__.'/Symfony/Component/ClassLoader/UniversalClassLoader.php';

use Symfony\Component\ClassLoader\UniversalClassLoader;

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

您需要设置自动加载。“使用”并不适合你。为此,包括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();

这应该对你有用,是吗?

谢谢。我试图使用与框架分离的Form类。即使将“ClassLoader”目录复制到我的项目中,我仍然会遇到相同的错误。将表单组件复制到项目中可能是最简单的方法。因此,基本上只需将这两个组件添加到vendor/Symfony/Component/。我已经这样做了,但它仍然说找不到它们。这是因为它应该是
'Symfony'=>\uuuuu DIR\uuu