我尝试在Symfony控制器文件中包含以下代码:
namespace {
class LocalSoapClient extends \SoapClient {
function __doRequest($request, $location, $action, $version) {
//...............
}
}
}
namespace .....\Controller {
//.......
}
在控制器类中,我尝试使用重载的类:
$service = new \LocalSoapClient($wsdl);
使用\,该类应该在全局命名空间中。但是我得到了错误:
Class 1\LocalSoapClient does not exist in .......\FrontBundle/Controller/
为什么?
如果我使用单个命名空间指令,并且我在Controller类之前重载了该类,则会出现同样的错误。
如何才能使用重载课程?
提前致谢
答案 0 :(得分:0)
你有2个不要违反的行为:
解决方案是简单地创建具有适当名称空间的单独文件。
将以下内容放入src/Your/SomethingBundle/Soap
(或您希望文件存放的任何位置):
<?php
namespace Your\SomethingBundle\Soap;
class LocalSoapClient extends \SoapClient
{
// …
}
你的控制器应该是这样的:
<?php
namespace Your\SomethingBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Your\SomethingBundle\Soap\LocalSoapClient;
class MyController extends Controller
{
public function myAction()
{
$soapClient = new LocalSoapClient();
// …
}
}