W metodzie execute klasy Command użyłem skryptu PHP z API wybranej bramki sms:
Poniżej kod mojej klasy CronCommand:
<?php
namespace AppBundle\Command;
use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
class CronCommand extends ContainerAwareCommand{
protected function configure()
{
$this->setName('app:przypominajka')
->setDescription('Przypomnienie');
}
protected function execute(InputInterface $input, OutputInterface $output)
{
$doctrine = $this->getContainer()->get('doctrine');
$em = $doctrine->getEntityManager();
$matchdayObject = $em->getRepository('AppBundle:Matchday')->getMatchday();
$usersPhones = $em->getRepository('AppBundle:Type')->getNoTypedUsersList($matchdayObject['name']);
ini_set("soap.wsdl_cache_enabled", "0"); $client = new SoapClient("http://api.gsmservice.pl/soap/v2/gateway.php?wsdl");
$arAccount = array("login" => "mojlogin","pass" => "mojehaslo"); "recipients" => $usersPhones,
"message" => "Przypomnienie",
"sender"=> "Damian",
"msgType" => 1,
"unicode" => false,
"sandbox" => false
));
$client->SendSMS(array("account" => $arAccount,"messages"=> $arMessages))->return; }
}
Na serwerze hostingowym w katalogu projektu Symfony wykonałem następującego CRONa (aby zweryfikować poprawność) :
/usr/local/bin/php70 /home/dcpl/domains/dc84.pl/app/console app:przypominajka
Po wykonaniu otrzymałem następujący błąd:
[dcpl@s25 dc84.pl]$ /usr/local/bin/php70 /home/dcpl/domains/dc84.pl/app/console app:przypominajka
[Symfony\Component\Debug\Exception\ClassNotFoundException]
Attempted to load class "SoapClient" from namespace "AppBundle\Command".
Did you forget a "use" statement for another namespace?
app:przypominajka [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-s|--shell] [--process-isolation] [-e|--env ENV] [--no-debug] [--] <command>
Wie ktoś może jaką klasę tutaj powinienem zaimportować aby to zadziałało ?
PS. Dodam tylko że support hostingu potwierdził mi że Soap jest zainstalowany na moim koncie:
"SOAP jest uruchomiony na Pana koncie cały czas."
To by się zgadzało bo zwykły testowy plik PHP z powyższym skryptem wysyłającym smsa działa.
Ten post edytował damianooo 22.11.2017, 22:28:19