Example #1
0
 /**
  * @param Skill $skill
  * @param mixed $data
  */
 protected function postSave(Skill $skill, $data)
 {
     SkillQuery::disableVersioning();
     // calculate
     $calculator = new Calculator();
     $calculator->calculate($skill);
     $calculator->getModifiedGenerationSkills()->each(function (Skill $skill) {
         LineageQuery::create()->filterBySkillId($skill->getId())->delete();
     });
     $calculator->getModifiedSkills()->each(function (Skill $skill) {
         $skill->save();
     });
     // set sequence picture
     if (isset($data['meta']) && isset($data['meta']['filename'])) {
         $module = $this->getServiceContainer()->getModuleManager()->load('gossi/trixionary');
         $destpath = $module->getSequencePath($skill);
         $dest = new File($destpath);
         if ($dest->exists()) {
             $dest->delete();
         }
         $file = new File($module->getUploadPath()->append($data['meta']['filename']));
         $file->move($destpath);
         $skill->setSequencePictureUrl($module->getSequenceUrl($skill));
         $skill->save();
     }
     SkillQuery::enableVersioning();
     // activity
     $user = $this->getServiceContainer()->getAuthManager()->getUser();
     $user->newActivity(array('verb' => $this->isNew ? Activity::VERB_CREATE : Activity::VERB_AUTHOR, 'object' => $skill, 'target' => $skill->getSport()));
 }
Example #2
0
 /**
  * @param Sport $sport
  * @param array $data
  */
 protected function postSave(Sport $sport, array $data)
 {
     // upload picture
     if (isset($data['meta']) && isset($data['meta']['filename']) && !empty($data['meta']['filename'])) {
         $module = $this->getServiceContainer()->getModuleManager()->load('gossi/trixionary');
         // ensure directory
         $dir = new Directory($module->getSportPath($sport));
         if (!$dir->exists()) {
             $dir->make();
         }
         $destpath = $module->getSkillPreviewPath($sport);
         $dest = new File($destpath);
         if ($dest->exists()) {
             $dest->delete();
         }
         $file = new File($module->getUploadPath()->append($data['meta']['filename']));
         $imagine = new Imagine();
         $image = $imagine->open($file->toPath()->toString());
         $image->save($dest->toPath()->toString());
         $file->delete();
         $sport->setSkillPictureUrl($module->getSkillPreviewUrl($sport));
         $sport->save();
     }
     // delete picture
     if (isset($data['meta']) && isset($data['meta']['skill_picture_delete']) && $data['meta']['skill_picture_delete'] == 1) {
         $module = $this->getServiceContainer()->getModuleManager()->load('gossi/trixionary');
         $path = $module->getSkillPreviewPath($sport);
         $file = new File($path);
         $file->delete();
         $sport->setSkillPictureUrl(null);
         $sport->save();
     }
 }
Example #3
0
 private function fileToArray($filename)
 {
     $file = new File($filename);
     if (!$file->exists()) {
         throw new FileNotFoundException(sprintf('File not found at: %s', $filename));
     }
     return Json::decode($file->read());
 }
Example #4
0
 /**
  *
  * @param string $filename
  * @throws FileNotFoundException
  * @throws JsonException
  * @return static
  */
 public static function fromFile($filename)
 {
     $file = new File($filename);
     if (!$file->exists()) {
         throw new FileNotFoundException(sprintf('File not found at: %s', $filename));
     }
     $json = Json::decode($file->read());
     return new static($json);
 }
Example #5
0
 /**
  * Automatically generated run method
  *
  * @param Request $request
  * @return Response
  */
 public function run(Request $request)
 {
     $fileName = $this->getParam('filename');
     $file = new File($this->getModule()->getUploadPath()->append($fileName));
     if (!$file->exists()) {
         throw new ResourceNotFoundException(sprintf('File %s does not exist', $fileName));
     }
     $file->delete();
     return $this->responder->run($request, new Success());
 }
Example #6
0
 /**
  * @throws FileNotFoundException
  * @return AbstractPhpStruct
  */
 public function parse()
 {
     $file = new File($this->filename);
     if (!$file->exists()) {
         throw new FileNotFoundException(sprintf('File (%s) does not exist.', $this->filename));
     }
     $parser = $this->getParser();
     $traverser = new NodeTraverser();
     $traverser->addVisitor($this);
     $traverser->traverse($parser->parse($file->read()));
 }
 /**
  * 
  * @param AbstractPhpStructVisitor $visitor
  * @param string $filename
  * @throws FileNotFoundException
  * @return AbstractPhpStruct
  */
 public function parse(AbstractPhpStructVisitor $visitor, $filename)
 {
     $file = new File($filename);
     if (!$file->exists()) {
         throw new FileNotFoundException(sprintf('File (%s) does not exist.', $filename));
     }
     $parser = new Parser(new Emulative());
     $traverser = new NodeTraverser();
     $traverser->addVisitor($visitor);
     $traverser->traverse($parser->parse($file->read()));
     return $visitor->getStruct();
 }
Example #8
0
 /**
  * @expectedException phootwork\file\exception\FileException
  */
 public function testDeleteWithFailure()
 {
     $dir = new Directory($this->root->url() . '/dir');
     $dir->make();
     $file = new File($this->root->url() . '/dir/composer.json');
     $file->touch();
     $this->assertTrue($file->exists());
     $dir->setMode(0555);
     $file->delete();
     $this->assertFalse($file->exists());
 }