/**
  * Test reading controller files from src/Controllers/Api-prefix
  *
  * @return void
  */
 public function testGetApiControllers()
 {
     // We use our own directory
     Configure::write('App++.Api.prefix', $this->apiFolderName);
     // Test lookup in non-existent folder
     Configure::write('App++.Api.prefix', $this->apiFolderName);
     $res = PlusPlus::getApiControllers();
     $this->assertFalse($res);
     // Test lookup in empty folder
     mkdir($this->apiFolderPath, 0777, true);
     $res = PlusPlus::getApiControllers();
     $this->assertFalse($res);
     // Test lookup in folder without existing cache
     touch($this->apiFolderPath . DS . 'UsersController.php');
     touch($this->apiFolderPath . DS . 'ArticlesController.php');
     touch($this->apiFolderPath . DS . 'BlogsDifferentType.php');
     $expected = ['Articles', 'Users'];
     $res = PlusPlus::getApiControllers();
     $this->assertEquals($expected, $res);
     // Test cached results
     unlink($this->apiFolderPath . DS . 'UsersController.php');
     $expected = ['Articles', 'Users'];
     $res = PlusPlus::getApiControllers();
 }
use Alt3\AppPlusPlus\Lib\PlusPlus;
use Cake\Core\Configure;
use Cake\Routing\Router;
pr("Plugin routes");
/**
 * Connect /api/users/login to /users/login to keep the API entrance consistent.
 */
Router::connect('/api/users/login', ['controller' => 'Accounts', 'action' => 'login', 'prefix' => null], ['routeClass' => 'InflectedRoute']);
/**
 * Here we set up the /api prefixed route
 */
Router::prefix(Configure::read('App++.Api.prefix'), function ($routes) {
    // enable .json and/or .xml extension
    $routes->extensions(Configure::read('App++.Api.extensions'));
    // mapResources for all Controller files found in /src/Controller/Api
    $controllers = PlusPlus::getApiControllers();
    if ($controllers) {
        foreach ($controllers as $controller) {
            $routes->resources($controller);
        }
    }
});
/**
 * Example => /admin prefix route
 */
// Router::prefix('admin', function ($routes) {
//     $routes->fallbacks('InflectedRoute');
// });
/**
 * Here we override the / scope in routes.php so we can connect some
 * AppPlusPlus specific routes if needed.