CustomField - switch statement to use data_type instead of html_type
[civicrm-core.git] / CRM / Api4 / Services.php
index c00487df5f89ee81520aa06e6e0ae76e0fb49cd3..35c24449e04a5a6bd17ed1ed7f27cb796d4deefc 100644 (file)
@@ -81,9 +81,12 @@ class CRM_Api4_Services {
     );
     foreach ($locations as $location) {
       $path = \CRM_Utils_File::addTrailingSlash(dirname($location)) . str_replace('\\', DIRECTORY_SEPARATOR, $namespace);
-      try {
+      if (!file_exists($path) || !is_dir($path)) {
+        $resource = new \Symfony\Component\Config\Resource\FileExistenceResource($path);
+        $container->addResource($resource);
+      }
+      else {
         $resource = new \Symfony\Component\Config\Resource\DirectoryResource($path, ';\.php$;');
-        $addResource = FALSE;
         foreach (glob("$path*.php") as $file) {
           $matches = [];
           preg_match('/(\w*)\.php$/', $file, $matches);
@@ -92,15 +95,9 @@ class CRM_Api4_Services {
           if ($serviceClass->isInstantiable()) {
             $definition = $container->register(str_replace('\\', '_', $serviceName), $serviceName);
             $definition->addTag($tag);
-            $addResource = TRUE;
           }
         }
-        if ($addResource) {
-          $container->addResource($resource);
-        }
-      }
-      catch (\InvalidArgumentException $e) {
-        //Directory is not found so lets not do anything i suppose.
+        $container->addResource($resource);
       }
     }
   }