summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
9b650f9)
Reorder constructor arguments
Use env variables to set request context host and scheme
Cleanup
namespace Rapsys\AirBundle;
use Doctrine\Persistence\ManagerRegistry;
namespace Rapsys\AirBundle;
use Doctrine\Persistence\ManagerRegistry;
use Symfony\Component\Console\Command\Command as BaseCommand;
use Symfony\Component\Routing\RouterInterface;
use Symfony\Contracts\Translation\TranslatorInterface;
use Symfony\Component\Console\Command\Command as BaseCommand;
use Symfony\Component\Routing\RouterInterface;
use Symfony\Contracts\Translation\TranslatorInterface;
use Rapsys\PackBundle\Util\SluggerUtil;
use Rapsys\PackBundle\Util\SluggerUtil;
+/**
+ * {@inheritdoc}
+ */
class Command extends BaseCommand {
/**
class Command extends BaseCommand {
/**
* Creates new command
*
* @param ManagerRegistry $doctrine The doctrine instance
* Creates new command
*
* @param ManagerRegistry $doctrine The doctrine instance
* @param TranslatorInterface $translator The translator instance
* @param string $locale The default locale
*/
* @param TranslatorInterface $translator The translator instance
* @param string $locale The default locale
*/
- public function __construct(protected ManagerRegistry $doctrine, protected RouterInterface $router, protected SluggerUtil $slugger, protected TranslatorInterface $translator, protected string $locale) {
+ public function __construct(protected ManagerRegistry $doctrine, protected string $locale, protected RouterInterface $router, protected SluggerUtil $slugger, protected TranslatorInterface $translator, protected ?string $name = null) {
+ //Fix name
+ $this->name = $this->name ?? static::getName();
+
//Call parent constructor
//Call parent constructor
+ parent::__construct($this->name);
+
+ //With description
+ if (!empty($this->description)) {
+ //Set description
+ $this->setDescription($this->description);
+ }
+
+ //With help
+ if (!empty($this->help)) {
+ //Set help
+ $this->setHelp($this->help);
+ }
//Get router context
$context = $this->router->getContext();
//Get router context
$context = $this->router->getContext();
- //Set host
- //TODO: set it in env RAPSYSAIR_HOST ?
- $context->setHost('airlibre.eu');
+ //Set hostname
+ $context->setHost($_ENV['RAPSYSAIR_HOSTNAME']);
- //TODO: set it in env RAPSYSAIR_SCHEME ?
- $context->setScheme('https');
-
- //With default name
- //TODO: XXX: see how to make it works
- /*if (isset(self::$defaultName)) {
- $this->name = self::$defaultName;
- }
-
- //With default description
- if (isset(self::$defaultDescription)) {
- $this->name = self::$defaultDescription;
- }*/
+ $context->setScheme($_ENV['RAPSYSAIR_SCHEME'] ?? 'https');
- * Return the bundle alias
- *
+ *
+ * Return the command name
- public function getAlias(): string {
- return RapsysAirBundle::getAlias();
+ public function getName(): string {
+ //With namespace
+ if ($npos = strrpos(static::class, '\\')) {
+ //Set name pos
+ $npos++;
+ //Without namespace
+ } else {
+ $npos = 0;
+ }
+
+ //With trailing command
+ if (substr(static::class, -strlen('Command'), strlen('Command')) === 'Command') {
+ //Set bundle pos
+ $bpos = strlen(static::class) - $npos - strlen('Command');
+ //Without bundle
+ } else {
+ //Set bundle pos
+ $bpos = strlen(static::class) - $npos;
+ }
+
+ //Return command alias
+ return RapsysAirBundle::getAlias().':'.strtolower(substr(static::class, $npos, $bpos));