code: public static function validateBundleNamespace($namespace, $requireVendorNamespace = true)
      {
          if (!preg_match('/Bundle$/', $namespace)) {
              throw new \InvalidArgumentException('The namespace must end with Bundle.');
          }
  
          $namespace = strtr($namespace, '/', '\\');
          if (!preg_match('/^(?:[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*\\\?)+$/', $namespace)) {
              throw new \InvalidArgumentException('The namespace contains invalid characters.');
          }
  
          // validate reserved keywords
          $reserved = self::getReservedWords();
          foreach (explode('\\', $namespace) as $word) {
              if (in_array(strtolower($word), $reserved)) {
                  throw new \InvalidArgumentException(sprintf('The namespace cannot contain PHP reserved words ("%s").', $word));
              }
          }
  
          // validate that the namespace is at least one level deep
          if ($requireVendorNamespace && false === strpos($namespace, '\\')) {
              $msg = array();
              $msg[] = sprintf('The namespace must contain a vendor namespace (e.g. "VendorName\%s" instead of simply "%s").', $namespace, $namespace);
              $msg[] = 'If you\'ve specified a vendor namespace, did you forget to surround it with quotes (init:bundle "Acme\BlogBundle")?';
  
              throw new \InvalidArgumentException(implode("\n\n", $msg));
          }
  
          return $namespace;
      }
docs: Validates that the given namespace (e.g. Acme\FooBundle) is a valid format.
  
  If $requireVendorNamespace is true, then we require you to have a vendor
  namespace (e.g. Acme).
  
  @param $namespace
  @param bool $requireVendorNamespace
  
  @return string