我在加载类时遇到问题。有人建议使用自动加载器,但我认为这在我的情况下没有必要,因为我需要的类和需要它的类在同一个Bundle中。无论如何,我都不完全理解自动加载器。
所以我有一个类
<?php
namespace Nick'AlertBundle'Service;
class ApiService
{
public function AddFlightsAction($alert){
parseResponseData();
}
public function parseResponseData()
{
var_dump("Test");
}
}
所以它是一个基本类,没有什么特别的(我删除了很多函数来减少代码)。这是我需要使用的类。
现在,我有了一个听众。
<?php
namespace Nick'AlertBundle'EventListener;
use Doctrine'ORM'Event'LifecycleEventArgs;
use Nick'AlertBundle'Entity'AvailabilityAlert;
use Nick'AlertBundle'Service'ApiService;
class AvailabilityAlertListener
{
public function postPersist(LifecycleEventArgs $args)
{
$entity = $args->getEntity();
if ($entity instanceof AvailabilityAlert) {
$uapi = new ApiService();
$uapi->AddFlightsAction($entity);
}
}
}
如果我删除addFlightsAction中的内容,改为执行var_dump,这就可以了。如果我保持原样(addFlightsAction用var_dump调用另一个函数),那么我会得到错误
尝试从命名空间调用函数parseResponseDataNick '' AlertBundle '' Service(500内部服务器错误)
为什么会发生这种情况?
我认为这不是加载问题。
更改
public function AddFlightsAction($alert){
parseResponseData();
}
至
public function AddFlightsAction($alert){
$this->parseResponseData();
}