Xpressengine\Plugin\PluginProvider::find PHP Method

find() public method

자료실에서 주어진 아이디의 자료를 조회한다.
public find ( string $id ) : object
$id string plugin id
return object
    public function find($id)
    {
        $url = $id;
        try {
            $response = $this->request($url);
        } catch (ClientException $e) {
            if ($e->getCode() === Response::HTTP_NOT_FOUND) {
                return null;
            }
            throw $e;
        }
        return $response;
    }

Usage Example

Ejemplo n.º 1
0
 /**
  * 현재 진행중인 플러그인 설치 작업 내역을 반환한다.
  *
  * @param ComposerFileWriter $writer composer file writer
  *
  * @return array|null
  */
 public function getOperation(ComposerFileWriter $writer)
 {
     $status = $writer->get('xpressengine-plugin.operation.status');
     if ($status === null) {
         return null;
     }
     $runnings = [];
     $runningMode = 'install';
     $runnings = $writer->get("xpressengine-plugin.operation.install", []);
     if (empty($runnings)) {
         $runningMode = 'update';
         $runnings = $writer->get("xpressengine-plugin.operation.update", []);
     }
     if (empty($runnings)) {
         $runningMode = 'uninstall';
         $runnings = $writer->get("xpressengine-plugin.operation.uninstall", []);
     }
     // operation이 없을 경우, return void
     if (empty($runnings)) {
         return null;
     }
     // operation이 있다.
     // expired 조사
     $deadline = $writer->get('xpressengine-plugin.operation.expiration_time');
     $expired = false;
     if ($deadline !== null && $deadline !== 0) {
         $deadline = Carbon::parse($deadline);
         if ($deadline->isPast()) {
             $expired = true;
         }
     }
     $runningsInfo = [];
     if (!empty($runnings)) {
         if ($runningMode === 'uninstall') {
             $package = current($runnings);
         } else {
             $package = key($runnings);
         }
         list(, $id) = explode('/', $package);
         $runningsInfo[$package] = $this->provider->find($id);
         $runningsInfo[$package]->pluginId = $id;
     }
     $changed = $writer->get('xpressengine-plugin.operation.changed', []);
     foreach ($changed as $type) {
         foreach ($type as $package => $version) {
             list(, $id) = explode('/', $package);
             if (!isset($runningsInfo[$package])) {
                 $runningsInfo[$package] = $this->provider->find($id);
             }
         }
     }
     if ($status === ComposerFileWriter::STATUS_RUNNING && $expired === true) {
         $status = 'expired';
     }
     return compact('runnings', 'status', 'runningMode', 'expired', 'changed', 'runningsInfo');
 }
All Usage Examples Of Xpressengine\Plugin\PluginProvider::find