Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][symfony2] app/console na wirtualnym www
peter13135
post
Post #1





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


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 ?
Go to the top of the page
+Quote Post
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Utwórz kopię skrypt z app/console, który parametry zamiast z konsoli będziesz zczytywać z jakiejś tablicy (ArrayInput, zamiast ArgvInput).
Go to the top of the page
+Quote Post
Szymciosek
post
Post #3





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

Ostrzeżenie: (0%)
-----


Chętnie dołączę się do tematu, też się ostatnio nad tym zastanawiałem, przecież nie każdy hosting oferuje dostęp do konsoli...
Go to the top of the page
+Quote Post
peter13135
post
Post #4





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


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 (IMG:style_emoticons/default/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);
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 15:36