當前位置: 首頁>>代碼示例>>PHP>>正文


PHP PhabricatorOwnersPackage::attachOldPrimaryOwnerPHID方法代碼示例

本文整理匯總了PHP中PhabricatorOwnersPackage::attachOldPrimaryOwnerPHID方法的典型用法代碼示例。如果您正苦於以下問題:PHP PhabricatorOwnersPackage::attachOldPrimaryOwnerPHID方法的具體用法?PHP PhabricatorOwnersPackage::attachOldPrimaryOwnerPHID怎麽用?PHP PhabricatorOwnersPackage::attachOldPrimaryOwnerPHID使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在PhabricatorOwnersPackage的用法示例。


在下文中一共展示了PhabricatorOwnersPackage::attachOldPrimaryOwnerPHID方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: processRequest

 public function processRequest()
 {
     $request = $this->getRequest();
     $user = $request->getUser();
     if ($this->id) {
         $package = id(new PhabricatorOwnersPackage())->load($this->id);
         if (!$package) {
             return new Aphront404Response();
         }
     } else {
         $package = new PhabricatorOwnersPackage();
         $package->setPrimaryOwnerPHID($user->getPHID());
     }
     $e_name = true;
     $e_primary = true;
     $errors = array();
     if ($request->isFormPost()) {
         $package->setName($request->getStr('name'));
         $package->setDescription($request->getStr('description'));
         $old_auditing_enabled = $package->getAuditingEnabled();
         $package->setAuditingEnabled($request->getStr('auditing') === 'enabled' ? 1 : 0);
         $primary = $request->getArr('primary');
         $primary = reset($primary);
         $old_primary = $package->getPrimaryOwnerPHID();
         $package->setPrimaryOwnerPHID($primary);
         $owners = $request->getArr('owners');
         if ($primary) {
             array_unshift($owners, $primary);
         }
         $owners = array_unique($owners);
         $paths = $request->getArr('path');
         $repos = $request->getArr('repo');
         $excludes = $request->getArr('exclude');
         $path_refs = array();
         for ($ii = 0; $ii < count($paths); $ii++) {
             if (empty($paths[$ii]) || empty($repos[$ii])) {
                 continue;
             }
             $path_refs[] = array('repositoryPHID' => $repos[$ii], 'path' => $paths[$ii], 'excluded' => $excludes[$ii]);
         }
         if (!strlen($package->getName())) {
             $e_name = pht('Required');
             $errors[] = pht('Package name is required.');
         } else {
             $e_name = null;
         }
         if (!$package->getPrimaryOwnerPHID()) {
             $e_primary = pht('Required');
             $errors[] = pht('Package must have a primary owner.');
         } else {
             $e_primary = null;
         }
         if (!$path_refs) {
             $errors[] = pht('Package must include at least one path.');
         }
         if (!$errors) {
             $package->attachUnsavedOwners($owners);
             $package->attachUnsavedPaths($path_refs);
             $package->attachOldAuditingEnabled($old_auditing_enabled);
             $package->attachOldPrimaryOwnerPHID($old_primary);
             $package->attachActorPHID($user->getPHID());
             try {
                 $package->save();
                 return id(new AphrontRedirectResponse())->setURI('/owners/package/' . $package->getID() . '/');
             } catch (AphrontDuplicateKeyQueryException $ex) {
                 $e_name = pht('Duplicate');
                 $errors[] = pht('Package name must be unique.');
             }
         }
     } else {
         $owners = $package->loadOwners();
         $owners = mpull($owners, 'getUserPHID');
         $paths = $package->loadPaths();
         $path_refs = array();
         foreach ($paths as $path) {
             $path_refs[] = array('repositoryPHID' => $path->getRepositoryPHID(), 'path' => $path->getPath(), 'excluded' => $path->getExcluded());
         }
     }
     $handles = $this->loadViewerHandles($owners);
     $primary = $package->getPrimaryOwnerPHID();
     if ($primary && isset($handles[$primary])) {
         $handle_primary_owner = array($handles[$primary]);
     } else {
         $handle_primary_owner = array();
     }
     $handles_all_owners = array_select_keys($handles, $owners);
     if ($package->getID()) {
         $title = pht('Edit Package');
         $side_nav_filter = 'edit/' . $this->id;
     } else {
         $title = pht('New Package');
         $side_nav_filter = 'new';
     }
     $this->setSideNavFilter($side_nav_filter);
     $repos = id(new PhabricatorRepositoryQuery())->setViewer($user)->execute();
     $default_paths = array();
     foreach ($repos as $repo) {
         $default_path = $repo->getDetail('default-owners-path');
         if ($default_path) {
             $default_paths[$repo->getPHID()] = $default_path;
//.........這裏部分代碼省略.........
開發者ID:denghp,項目名稱:phabricator,代碼行數:101,代碼來源:PhabricatorOwnersEditController.php


注:本文中的PhabricatorOwnersPackage::attachOldPrimaryOwnerPHID方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。