コード例 #1
0
 /**
  * Deactivate an extension.
  *
  * @param  \Orchestra\Contracts\Extension\Listener\Deactivator  $listener
  * @param  \Illuminate\Support\Fluent  $extension
  *
  * @return mixed
  */
 public function deactivate(Listener $listener, Fluent $extension)
 {
     if (!$this->factory->started($extension->get('name')) && !$this->factory->activated($extension->get('name'))) {
         return $listener->abortWhenRequirementMismatched();
     }
     $this->factory->deactivate($extension->get('name'));
     return $listener->deactivationHasSucceed($extension);
 }
コード例 #2
0
ファイル: Ingredient.php プロジェクト: elepunk/oven
 /**
  * Determing if it is just an empty directory
  *
  * @return bool
  */
 public function isEmptyDir()
 {
     $emptyDir = $this->ingredient->get('empty-dir');
     if (is_null($emptyDir)) {
         return false;
     }
     return $emptyDir;
 }
コード例 #3
0
ファイル: MetaWrapper.php プロジェクト: lud/press
 public function get($key, $default = null)
 {
     if ($key === 'date') {
         return $this->dateTime();
     }
     return parent::get($key, $default);
 }
コード例 #4
0
ファイル: Migrator.php プロジェクト: jitheshgopan/extension
 /**
  * Update/migrate an extension.
  *
  * @param  \Orchestra\Contracts\Extension\Listener\Migrator  $listener
  * @param  \Illuminate\Support\Fluent  $extension
  *
  * @return mixed
  */
 public function migrate(Listener $listener, Fluent $extension)
 {
     if (!$this->factory->started($extension->get('name'))) {
         return $listener->abortWhenRequirementMismatched();
     }
     return $this->execute($listener, 'migration', $extension, $this->getMigrationClosure());
 }
コード例 #5
0
ファイル: Manifest.php プロジェクト: wendel841/view
 /**
  * Magic method to get items by key.
  *
  * @param  string  $key
  *
  * @return mixed
  */
 public function __get($key)
 {
     if (!isset($this->items->{$key})) {
         return;
     }
     return $this->items->get($key);
 }
コード例 #6
0
 /**
  * Vaildate if expression contains the reserve keys
  *
  * @param  array $expression
  * @return boolean
  * @throws  \Elepunk\Evaluator\Exceptions\MissingKeyException
  */
 protected function verifyExpression(Fluent $expression)
 {
     foreach ($this->reservedKeys as $key) {
         if (is_null($expression->get($key))) {
             throw new MissingKeyException("Expression is missing {$key}");
         }
     }
     return true;
 }
コード例 #7
0
ファイル: Processor.php プロジェクト: jitheshgopan/extension
 /**
  * Execute extension processing.
  *
  * @param  object  $listener
  * @param  string  $type
  * @param  \Illuminate\Support\Fluent  $extension
  * @param  \Closure  $callback
  *
  * @return mixed
  */
 protected function execute($listener, $type, Fluent $extension, Closure $callback)
 {
     $name = $extension->get('name');
     try {
         // Check if folder is writable via the web instance, this would
         // avoid issue running Orchestra Platform with debug as true where
         // creating/copying the directory would throw an ErrorException.
         if (!$this->factory->permission($name)) {
             throw new FilePermissionException("[{$name}] is not writable.");
         }
         call_user_func($callback, $this->factory, $name);
     } catch (FilePermissionException $e) {
         return call_user_func([$listener, "{$type}HasFailed"], $extension, ['error' => $e->getMessage()]);
     }
     return call_user_func([$listener, "{$type}HasSucceed"], $extension);
 }
コード例 #8
0
ファイル: Configure.php プロジェクト: stevebauman/foundation
 /**
  * Update an extension configuration.
  *
  * @param  \Orchestra\Contracts\Extension\Listener\Configure  $listener
  * @param  \Illuminate\Support\Fluent  $extension
  * @param  array  $input
  *
  * @return mixed
  */
 public function update(Listener $listener, Fluent $extension, array $input)
 {
     if (!Extension::started($extension->get('name'))) {
         return $listener->suspend(404);
     }
     $validation = $this->validator->with($input, ["orchestra.validate: extension.{$extension->get('name')}"]);
     if ($validation->fails()) {
         return $listener->updateConfigurationFailedValidation($validation->getMessageBag(), $extension->uid);
     }
     $memory = Foundation::memory();
     $config = (array) $memory->get("extension.active.{$extension->get('name')}.config", []);
     $input = new Fluent(array_merge($config, $input));
     unset($input['_token']);
     Event::fire("orchestra.saving: extension.{$extension->get('name')}", [&$input]);
     $memory->put("extensions.active.{$extension->get('name')}.config", $input->getAttributes());
     $memory->put("extension_{$extension->get('name')}", $input->getAttributes());
     Event::fire("orchestra.saved: extension.{$extension->get('name')}", [$input]);
     return $listener->configurationUpdated($extension);
 }
コード例 #9
0
 /**
  * Queue publishing asset to publisher.
  *
  * @param  \Illuminate\Support\Fluent  $extension
  *
  * @return mixed
  */
 protected function queueToPublisher(Fluent $extension)
 {
     Publisher::queue($extension->get('name'));
     return $this->redirect(handles('orchestra::publisher'));
 }
コード例 #10
0
 /**
  * Response when sync roles succeed.
  *
  * @param  \Illuminate\Support\Fluent   $acl
  *
  * @return mixed
  */
 public function syncSucceed(Fluent $acl)
 {
     $message = trans('orchestra/control::response.acls.sync-roles', ['name' => $acl->get('name')]);
     return $this->redirectWithMessage(handles("orchestra::control/acl?name={$acl->get('name')}"), $message);
 }
コード例 #11
0
ファイル: Entity.php プロジェクト: silwerclaw/jirapi
 /**
  * @param string $key
  * @param mixed|null $default
  * @return mixed
  */
 public function get($key, $default = null)
 {
     $value = parent::get($key, $default);
     return $this->hasGetMutator($key) ? $this->mutateAttribute($key, $value) : $value;
 }
コード例 #12
0
 /**
  * Response when extension migration has succeed.
  *
  * @param  \Illuminate\Support\Fluent  $extension
  *
  * @return mixed
  */
 public function migrationHasSucceed(Fluent $extension)
 {
     $this->info("Extension [{$extension->get('name')}] updated.");
 }
コード例 #13
0
 /**
  * Response when extension deactivation has succeed.
  *
  * @param  \Illuminate\Support\Fluent  $extension
  *
  * @return mixed
  */
 public function deactivationHasSucceed(Fluent $extension)
 {
     $this->refreshRouteCache();
     $this->info("Extension [{$extension->get('name')}] deactivated.");
 }
コード例 #14
0
ファイル: Control.php プロジェクト: stevebauman/html
 /**
  * Resolve field value.
  *
  * @param  string  $name
  * @param  mixed  $row
  * @param  \Illuminate\Support\Fluent  $control
  *
  * @return mixed
  */
 protected function resolveFieldValue($name, $row, Fluent $control)
 {
     // Set the value from old input, followed by row value.
     $value = $this->request->old($name);
     $model = data_get($row, $name);
     if (!is_null($model) && is_null($value)) {
         $value = $model;
     }
     if (is_null($control->get('value'))) {
         return $value;
     }
     $value = $control->get('value');
     // If the value is set from the closure, we should use it instead of
     // value retrieved from attached data. Should also check if it's a
     // closure, when this happen run it.
     if ($value instanceof Closure) {
         $value = $value($row, $control);
     }
     return $value;
 }
コード例 #15
0
ファイル: Transformer.php プロジェクト: iyoworks/entity
 /**
  * @param $value
  * @param Fluent $ruleArgs
  * @return Carbon
  */
 public function buildTimestamp($value, $ruleArgs)
 {
     if (is_null($value)) {
         return $this->newDateObject();
     }
     if ($value instanceof \DateTime) {
         return $this->newDateFromTimestamp($value->getTimestamp(), $value->getTimezone());
     }
     if (is_numeric($value)) {
         return $this->newDateFromTimestamp($value);
     } elseif (is_string($value) && preg_match('/^(\\d{4})-(\\d{2})-(\\d{2})$/', $value)) {
         return $this->newDateObject($value, 'Y-m-d');
     } else {
         return $this->newDateObject($value, $ruleArgs->get('format'));
     }
 }