in provider/core/server/BaseServer.php [761:786]
public function getServiceInstance($serviceName, $group, $version)
{
$keyName = null;
$serInstance = null;
foreach ($this->serverProviders as $svrName => $svrProperty)
{
$serviceVersion = isset($svrProperty['version'])?$svrProperty['version']:FSOFConstants::FSOF_SERVICE_VERSION_DEFAULT;
if(($serviceName == $svrName) && ($version == $serviceVersion) && (($group == $svrProperty["group"]) ||
($group == FSOFConstants::FSOF_SERVICE_GROUP_DEFAULT) || ($group == FSOFConstants::FSOF_SERVICE_GROUP_ANY)))
{
$keyName = $svrProperty['service'];
break;
}
}
if(null != $keyName)
{
//配置文件中服务名格式为:com.fenqile.example.calculate.Calculate,需要把.替换成\
$keyName = str_replace('.', '\\', $keyName);
$keyName = '\\'.$keyName;//前面加上\, 拼接成全限定类名
$serInstance = $this->appContext->getInstance($keyName);
}
return $serInstance;
}