Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][symfony2] app/console na wirtualnym www
Forum PHP.pl > Forum > Przedszkole
peter13135
wrzuciłem swoje bundle na tani hosting. Niestety nie mam tam konsoli cmd, a więc trudno mi np. wykonać doctrine:schema:update .
W jaki sposób mogę to obejść ? Może jest jakaś "webowa" wersja tego app/console ?
Crozin
Utwórz kopię skrypt z app/console, który parametry zamiast z konsoli będziesz zczytywać z jakiejś tablicy (ArrayInput, zamiast ArgvInput).
Szymciosek
Chętnie dołączę się do tematu, też się ostatnio nad tym zastanawiałem, przecież nie każdy hosting oferuje dostęp do konsoli...
peter13135
Jutro pokombinuje i udostępnie wynik moich prac. W sumie powinno być to banalne.

Co prawda pisałem, że zrobię to 3 dni temu, ale z braku czasu zrobiłem to dopiero teraz.
Sposób użycia :
1. Poniższy plik zapisujemy pod nazwą np. console.php do katalogu ~web (czyli raczej to będzie public html)
2. Ten plik przydało by się jakoś zabezpieczyć, albo usunąć gdy już z niego skorzystamy.
3. Wchodzimy na np. example.com/console.php?q=doctrine:schema:update --force
4. Tabele w bazie zostały już wygenerowane smile.gif

Oczywiście inne komendy znane z konsoli też działać powinny
Jak widać moja klasa Output jest pusta, więc ewentualnych błędów/komunikatów nie zobaczycie. Jeśli to wam potrzebne to rozbudowę tej klasy pozostawiam dla was.

  1. <?php
  2.  
  3. require_once __DIR__.'/../app/bootstrap.php.cache';
  4. require_once __DIR__.'/../app/AppKernel.php';
  5. require_once __DIR__.'/../vendor/symfony/symfony/src/Symfony/Component/Console/Output/OutputInterface.php';
  6. require_once __DIR__.'/../vendor/symfony/symfony/src/Symfony/Component/Console/Formatter/OutputFormatterInterface.php';
  7.  
  8. use Symfony\Bundle\FrameworkBundle\Console\Application;
  9. use Symfony\Component\Console\Input\StringInput;
  10. use Symfony\Component\Console\Output\OutputInterface;
  11. use Symfony\Component\Console\Formatter\OutputFormatterInterface;
  12.  
  13. class LaczekOutput implements OutputInterface
  14. {
  15.  
  16. public function write($messages, $newline = false, $type = 0){}
  17. public function writeln($messages, $type = 0){}
  18. public function setVerbosity($level){}
  19. public function getVerbosity(){}
  20. public function setDecorated($decorated){}
  21. public function isDecorated(){}
  22. public function setFormatter(OutputFormatterInterface $formatter){}
  23. public function getFormatter(){}
  24. }
  25.  
  26.  
  27.  
  28. $input = new StringInput($_GET['q']);
  29. $env = $input->getParameterOption(array('--env', '-e'), getenv('SYMFONY_ENV') ?: 'dev');
  30. $debug = getenv('SYMFONY_DEBUG') !== '0' && !$input->hasParameterOption(array('--no-debug', '')) && $env !== 'prod';
  31.  
  32.  
  33. $kernel = new AppKernel($env, $debug);
  34. $application = new Application($kernel);
  35.  
  36. $application->run($input, new LaczekOutput);
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.