本文整理汇总了PHP中PhabricatorOwnersPackage::splitPath方法的典型用法代码示例。如果您正苦于以下问题:PHP PhabricatorOwnersPackage::splitPath方法的具体用法?PHP PhabricatorOwnersPackage::splitPath怎么用?PHP PhabricatorOwnersPackage::splitPath使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PhabricatorOwnersPackage
的用法示例。
在下文中一共展示了PhabricatorOwnersPackage::splitPath方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getPathMatchStrength
/**
* Get the number of directory matches between this path specification and
* some real path.
*/
public function getPathMatchStrength($path)
{
$this_path = $this->getPath();
if ($this_path === '/') {
// The root path "/" just matches everything with strength 1.
return 1;
}
$self_fragments = PhabricatorOwnersPackage::splitPath($this_path);
$path_fragments = PhabricatorOwnersPackage::splitPath($path);
$self_count = count($self_fragments);
$path_count = count($path_fragments);
if ($self_count > $path_count) {
// If this path is longer (and therefor more specific) than the target
// path, we don't match it at all.
return 0;
}
for ($ii = 0; $ii < $self_count; $ii++) {
if ($self_fragments[$ii] != $path_fragments[$ii]) {
return 0;
}
}
return $self_count;
}
示例2: getFragmentsForPaths
private function getFragmentsForPaths(array $paths)
{
$fragments = array();
foreach ($paths as $path) {
foreach (PhabricatorOwnersPackage::splitPath($path) as $fragment) {
$fragments[$fragment] = $fragment;
}
}
return $fragments;
}
示例3: buildWhereClauseParts
protected function buildWhereClauseParts(AphrontDatabaseConnection $conn)
{
$where = parent::buildWhereClauseParts($conn);
if ($this->phids !== null) {
$where[] = qsprintf($conn, 'p.phid IN (%Ls)', $this->phids);
}
if ($this->ids !== null) {
$where[] = qsprintf($conn, 'p.id IN (%Ld)', $this->ids);
}
if ($this->repositoryPHIDs !== null) {
$where[] = qsprintf($conn, 'rpath.repositoryPHID IN (%Ls)', $this->repositoryPHIDs);
}
if ($this->ownerPHIDs !== null) {
$base_phids = $this->ownerPHIDs;
$projects = id(new PhabricatorProjectQuery())->setViewer($this->getViewer())->withMemberPHIDs($base_phids)->execute();
$project_phids = mpull($projects, 'getPHID');
$all_phids = array_merge($base_phids, $project_phids);
$where[] = qsprintf($conn, 'o.userPHID IN (%Ls)', $all_phids);
}
if (strlen($this->namePrefix)) {
// NOTE: This is a hacky mess, but this column is currently case
// sensitive and unique.
$where[] = qsprintf($conn, 'LOWER(p.name) LIKE %>', phutil_utf8_strtolower($this->namePrefix));
}
if ($this->controlMap) {
$clauses = array();
foreach ($this->controlMap as $repository_phid => $paths) {
$fragments = array();
foreach ($paths as $path) {
foreach (PhabricatorOwnersPackage::splitPath($path) as $fragment) {
$fragments[$fragment] = $fragment;
}
}
$clauses[] = qsprintf($conn, '(rpath.repositoryPHID = %s AND rpath.path IN (%Ls))', $repository_phid, $fragments);
}
$where[] = implode(' OR ', $clauses);
}
return $where;
}