PHP 5.3 使用和 Symfony 表单

发布于 2024-11-13 00:17:29 字数 728 浏览 2 评论 0原文

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

use Symfony\Component\Form\Form; 
use Symfony\Component\Form\FormInterface; 

如果我这样做,我会得到:

Fatal error: Class 'Symfony\Component\Form\Form' not found

尽管我知道这是表单元素所在的位置。使用

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();

Im trying to include some Symfony form components into my project.

use Symfony\Component\Form\Form; 
use Symfony\Component\Form\FormInterface; 

If I do this I get :

Fatal error: Class 'Symfony\Component\Form\Form' not found

Even though I know that this is where the Form elements are. Using

require 'Symfony\Component\Form\Form.php'

works ,but I need to alias the form elements to get the class to work.

EDIT:
Trying this after copying the ClassLoader to the project still brings same error:

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

use Symfony\Component\ClassLoader\UniversalClassLoader;

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

(り薆情海 2024-11-20 00:17:29

您需要设置自动加载。 “使用”并不适合你。为此,请包含 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”语句只是将完全限定的类名别名为较短的版本,以便您在该文件中使用。

You need to set up autoloading. The 'use' does not do that for you. To do this, include the UniversalClassLoader, tell it where to load the Symfony files from and register it.

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();

The 'use' statement just aliases the fully-qualified class name to a shorter version for you to use in that file.

日暮斜阳 2024-11-20 00:17:29

另一种方法:

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();

这应该对你有用,是吗?

An alternative approach:

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();

That should work for you, yes?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文