Exemplo n.º 1
0
 public function process(SplFileInfo $controller)
 {
     $controllerPath = $controller->getPathName();
     $controllerClass = $this->getClassName($controller->getContents());
     if (!$controllerClass) {
         return $this;
     }
     $resource = $this->getResource($controllerClass);
     if (!$resource) {
         return $this;
     }
     $operations = $this->getOperations($controllerClass);
     if (!$operations) {
         return $this;
     }
     $resourceModel = Entities\Resources::findFirstByResourceKey($resource['resourceKey']);
     if (!$resourceModel) {
         $resourceModel = new Entities\Resources();
     }
     $resourceModel->assign($resource);
     $operationModels = array();
     foreach ($operations as $operation) {
         $operationModel = Entities\Operations::findFirst(array("conditions" => "resourceKey = :resourceKey: AND operationKey = :operationKey:", "bind" => array('resourceKey' => $operation['resourceKey'], 'operationKey' => $operation['operationKey'])));
         if (!$operationModel) {
             $operationModel = new Entities\Operations();
         }
         $operationModel->assign($operation);
         $operationModels[] = $operationModel;
     }
     $resourceModel->operations = $operationModels;
     if ($resourceModel->save()) {
         echo sprintf("Resource %s already added to DB\n", $resource['resourceKey']);
     } else {
         print_r($resourceModel->getMessages());
     }
     /*
     p($resource);
     p($operations);
     p('-----------------');
     */
     return $this;
 }