PHP5.3使用和Symfony表单
我试图在我的项目中包含一些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' 可以工作,但我需要为表单元素添加别
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
。