Es lo mismo para 2+:
http://framework.zend.com/manual/2.1...ap.server.html
Simplemente creas tu clase, ej:
Código PHP:
Ver originalclass MyDemoClass {
private $studentTable;
public function getStudentTable()
{
return $this->studentTable;
}
public function setStudentTable(AbstractTableGateway $studentTable)
{
$this->studentTable = $studentTable;
return $this;
}
public function getStudents()
{
$studentTable = $this->getStudentTable();
$students = $studentTable->getAllStudents();
return $students;
}
}
// Luego en tu action controller extraes tu clase del ServiceLocator (o lo inyectas al controller) creas un ZendSoapServer y listo
public function handleserviceAction() {
$studentTable = $this->getServiceLocator()->get('MyDemoClass');
$server = new Zend\Soap\Server(null, $options);;
$server->setObject($studentTable);
$server->handle();
}
En tu TableGateway es justamente donde usas MySQL o realmente lo que quieras, ya que usas Zend\Db para comunicarte y extraer la información, puedes ver este ejemplo:
http://blog.evan.pro/zf2-tablegateway-hydration
Realmente no es muy complicado y con eso ya puedes usar clientes que se conecten en modo SOAP a tu servidor.
Claro todo esto es en teoría que sí necesites un WebService SOAP, y no de otro tipo (RESTful por ejemplo).
Saludos.