So i just started using Phpstorm and I am trying to 'correct' my code so there are no errors from the IDE. I have the following method below and all my xml tags are highlighted with the 'Unknown HTML tag'
What is the best way to correct this?
private function generate_qbxml_CustomerAddRq($requestID=0){
/** requestID is used when multiple requests are called in order to match the request to the response.
requestID's should be incremented as they are called. Currently not implimented. **/
$qbxml = '';
$qbxml .= '<?xml version="1.0" encoding="utf-8"?>';
$qbxml .= '<?qbxml version="2.0"?>';
$qbxml .= '<QBXML>';
$qbxml .= '<QBXMLMsgsRq onError="stopOnError">';
$qbxml .= '<CustomerAddRq requestID="'.$requestID.'">';
$qbxml .= '<CustomerAdd>';
$qbxml .= '<Name>'.$this->Name.'</Name>'; //Name is a mandatory field. Add a check for this.
/** For all optional values add a check so that xml tags are not sent in request if value is blank**/
$qbxml .= '<CompanyName>'.$this->CompanyName.'</CompanyName>';
$qbxml .= '<FirstName>'.$this->FirstName.'</FirstName>';
$qbxml .= '<LastName>'.$this->LastName.'</LastName>';
$qbxml .= '<BillAddress>';
$qbxml .= '<Addr1>'.$this->BillAddress->get_Addr1().'</Addr1>';
$qbxml .= '<Addr2>'.$this->BillAddress->get_Addr2().'</Addr2>';
$qbxml .= '<City>'.$this->BillAddress->get_City().'</City>';
$qbxml .= '<State>'.$this->BillAddress->get_State().'</State>';
$qbxml .= '<PostalCode>'.$this->BillAddress->get_PostalCode().'</PostalCode>';
$qbxml .= '<Country>'.$this->BillAddress->get_Country().'</Country> ';
$qbxml .= '</BillAddress>';
$qbxml .= '<ShipAddress>';
$qbxml .= '<Addr1>'.$this->ShipAddress->get_Addr1().'</Addr1>';
$qbxml .= '<Addr2>'.$this->ShipAddress->get_Addr2().'</Addr2>';
$qbxml .= '<City>'.$this->ShipAddress->get_City().'</City>';
$qbxml .= '<State>'.$this->ShipAddress->get_State().'</State>';
$qbxml .= '<PostalCode>'.$this->ShipAddress->get_PostalCode().'</PostalCode>';
$qbxml .= '<Country>'.$this->ShipAddress->get_Country().'</Country> ';
$qbxml .= '</ShipAddress>';
$qbxml .= '<Phone>'.$this->Phone.'</Phone>';
$qbxml .= '<AltPhone>'.$this->AltPhone.'</AltPhone> ';
$qbxml .= '<Fax>'.$this->Fax.'</Fax> ';
$qbxml .= '<Email>'.$this->Email.'</Email> ';
//$qbxml .= '<JobDesc>Ob2</JobDesc>';
$qbxml .= '</CustomerAdd>';
$qbxml .= '</CustomerAddRq>';
$qbxml .= '</QBXMLMsgsRq>';
$qbxml .= '</QBXML>';
return $qbxml;
}
You can mark the string/var as a 'language injection':
https://www.jetbrains.com/help/phpstorm/using-language-injections.html
The result looking like this:
$xmlString = /** @lang XML */
'<?xml version="1.0" encoding="utf-8" ?>';