Newscoop\PluginGeneratorBundle\Command\Validators::validateBundleName PHP Метод

validateBundleName() публичный статический Метод

public static validateBundleName ( $bundle )
    public static function validateBundleName($bundle)
    {
        if (!preg_match('/^[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*$/', $bundle)) {
            throw new \InvalidArgumentException('The bundle name contains invalid characters.');
        }
        if (!preg_match('/Bundle$/', $bundle)) {
            throw new \InvalidArgumentException('The bundle name must end with Bundle.');
        }
        return $bundle;
    }

Usage Example

 /**
  * @see Command
  *
  * @throws \InvalidArgumentException When namespace doesn't end with Bundle
  * @throws \RuntimeException         When bundle can't be executed
  */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $dialog = $this->getDialogHelper();
     if ($input->isInteractive()) {
         if (!$dialog->askConfirmation($output, $dialog->getQuestion('Do you confirm generation', 'yes', '?'), true)) {
             $output->writeln('<error>Command aborted</error>');
             return 1;
         }
     }
     foreach (array('plugin-name', 'namespace', 'dir') as $option) {
         if (null === $input->getOption($option)) {
             throw new \RuntimeException(sprintf('The "%s" option must be provided.', $option));
         }
     }
     // validate the namespace
     $vendor = Validators::validateVendor($input->getOption('vendor'));
     $pluginName = Validators::validatePluginName($input->getOption('plugin-name'));
     $namespace = Validators::validateBundleNamespace($input->getOption('namespace'), false);
     if (!($bundle = $input->getOption('bundle-name'))) {
         $bundle = strtr($namespace, array('\\' => ''));
     }
     $bundle = Validators::validateBundleName($bundle);
     $dir = Validators::validateTargetDir($input->getOption('dir'));
     if (null === $input->getOption('format')) {
         $input->setOption('format', 'annotation');
     }
     $format = Validators::validateFormat($input->getOption('format'));
     $structure = $input->getOption('structure');
     $admin = $input->getOption('admin');
     $zip = $input->getOption('zip');
     $dialog->writeSection($output, 'Bundle generation');
     if (!$this->getContainer()->get('filesystem')->isAbsolutePath($dir)) {
         $dir = getcwd() . '/' . $dir;
     }
     $generator = $this->getGenerator();
     $generator->generate($vendor, $pluginName, $namespace, $bundle, $dir, $format, $structure, $admin, $zip);
     $output->writeln('Generating the bundle code: <info>OK</info>');
     $errors = array();
     $dialog->writeGeneratorSummary($output, $errors);
     $output->writeln('You must run the plugin install command manually: <comment>php application/console plugins:install ' . strtolower($vendor) . '/' . strtolower($pluginName) . '-plugin-bundle</comment>');
 }