• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

PHP phutil_get_library_root函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了PHP中phutil_get_library_root函数的典型用法代码示例。如果您正苦于以下问题:PHP phutil_get_library_root函数的具体用法?PHP phutil_get_library_root怎么用?PHP phutil_get_library_root使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了phutil_get_library_root函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。

示例1: getPatchList

 public static function getPatchList()
 {
     $root = dirname(phutil_get_library_root('phabricator'));
     // Find the patch files
     $patches_dir = $root . '/resources/sql/patches/';
     $finder = new FileFinder($patches_dir);
     $results = $finder->find();
     $versions = array();
     $patches = array();
     foreach ($results as $path) {
         $matches = array();
         if (!preg_match('/(\\d+)\\..*\\.(sql|php)$/', $path, $matches)) {
             continue;
         }
         $version = (int) $matches[1];
         $patches[] = array('version' => $version, 'path' => $patches_dir . $path);
         if (empty($versions[$version])) {
             $versions[$version] = true;
         } else {
             throw new Exception("Two patches have version {$version}!");
         }
     }
     // Files are in some 'random' order returned by the operating system
     // We need to apply them in proper order
     $patches = isort($patches, 'version');
     return $patches;
 }
开发者ID:ramons03,项目名称:phabricator,代码行数:27,代码来源:PhabricatorSQLPatchList.php


示例2: run

 public function run()
 {
     $roots = array();
     $roots['libphutil'] = dirname(phutil_get_library_root('phutil'));
     $roots['arcanist'] = dirname(phutil_get_library_root('arcanist'));
     foreach ($roots as $lib => $root) {
         echo "Upgrading {$lib}...\n";
         if (!Filesystem::pathExists($root . '/.git')) {
             throw new ArcanistUsageException("{$lib} must be in its git working copy to be automatically " . "upgraded. This copy of {$lib} (in '{$root}') is not in a git " . "working copy.");
         }
         $working_copy = ArcanistWorkingCopyIdentity::newFromPath($root);
         $repository_api = ArcanistRepositoryAPI::newAPIFromWorkingCopyIdentity($working_copy);
         // Force the range to HEAD^..HEAD, which is meaningless but keeps us
         // from triggering "base" rules or other commit range resolution rules
         // that might prompt the user when we pull the working copy status.
         $repository_api->setRelativeCommit('HEAD^');
         $this->setRepositoryAPI($repository_api);
         // Require no local changes.
         $this->requireCleanWorkingCopy();
         // Require the library be on master.
         $branch_name = $repository_api->getBranchName();
         if ($branch_name != 'master') {
             throw new ArcanistUsageException("{$lib} must be on branch 'master' to be automatically upgraded. " . "This copy of {$lib} (in '{$root}') is on branch '{$branch_name}'.");
         }
         chdir($root);
         try {
             phutil_passthru('git pull --rebase');
         } catch (Exception $ex) {
             phutil_passthru('git rebase --abort');
             throw $ex;
         }
     }
     echo phutil_console_wrap(phutil_console_format("**Updated!** Your copy of arc is now up to date.\n"));
     return 0;
 }
开发者ID:rafikk,项目名称:arcanist,代码行数:35,代码来源:ArcanistUpgradeWorkflow.php


示例3: processRequest

 public function processRequest()
 {
     $root = dirname(phutil_get_library_root('phabricator'));
     require_once $root . '/support/phame/libskin.php';
     $this->cssResources = array();
     $css = $this->getPath('css/');
     if (Filesystem::pathExists($css)) {
         foreach (Filesystem::listDirectory($css) as $path) {
             if (!preg_match('/.css$/', $path)) {
                 continue;
             }
             $this->cssResources[] = phutil_tag('link', array('rel' => 'stylesheet', 'type' => 'text/css', 'href' => $this->getResourceURI('css/' . $path)));
         }
     }
     $map = CelerityResourceMap::getNamedInstance('phabricator');
     $resource_symbol = 'syntax-highlighting-css';
     $resource_uri = $map->getURIForSymbol($resource_symbol);
     $this->cssResources[] = phutil_tag('link', array('rel' => 'stylesheet', 'type' => 'text/css', 'href' => PhabricatorEnv::getCDNURI($resource_uri)));
     $this->cssResources = phutil_implode_html("\n", $this->cssResources);
     $request = $this->getRequest();
     // Render page parts in order so the templates execute in order, if we're
     // using templates.
     $header = $this->renderHeader();
     $content = $this->renderContent($request);
     $footer = $this->renderFooter();
     if (!$content) {
         $content = $this->render404Page();
     }
     $content = array($header, $content, $footer);
     $response = new AphrontWebpageResponse();
     $response->setContent(phutil_implode_html("\n", $content));
     return $response;
 }
开发者ID:fengshao0907,项目名称:phabricator,代码行数:33,代码来源:PhameBasicTemplateBlogSkin.php


示例4: calculatePatch

 /**
  * Calculate the DiffMatchPatch patch between two Phabricator files.
  *
  * @phutil-external-symbol class diff_match_patch
  */
 public static function calculatePatch(PhabricatorFile $old = null, PhabricatorFile $new = null)
 {
     $root = dirname(phutil_get_library_root('phabricator'));
     require_once $root . '/externals/diff_match_patch/diff_match_patch.php';
     $old_hash = self::EMPTY_HASH;
     $new_hash = self::EMPTY_HASH;
     if ($old !== null) {
         $old_hash = $old->getContentHash();
     }
     if ($new !== null) {
         $new_hash = $new->getContentHash();
     }
     $old_content = '';
     $new_content = '';
     if ($old_hash === $new_hash) {
         return null;
     }
     if ($old_hash !== self::EMPTY_HASH) {
         $old_content = $old->loadFileData();
     } else {
         $old_content = '';
     }
     if ($new_hash !== self::EMPTY_HASH) {
         $new_content = $new->loadFileData();
     } else {
         $new_content = '';
     }
     $dmp = new diff_match_patch();
     $dmp_patches = $dmp->patch_make($old_content, $new_content);
     return $dmp->patch_toText($dmp_patches);
 }
开发者ID:pugong,项目名称:phabricator,代码行数:36,代码来源:PhragmentPatchUtil.php


示例5: run

 public function run()
 {
     $roots = array();
     $roots['libphutil'] = dirname(phutil_get_library_root('phutil'));
     $roots['arcanist'] = dirname(phutil_get_library_root('arcanist'));
     foreach ($roots as $lib => $root) {
         echo "Upgrading {$lib}...\n";
         if (!Filesystem::pathExists($root . '/.git')) {
             throw new ArcanistUsageException("{$lib} must be in its git working copy to be automatically " . "upgraded. This copy of {$lib} (in '{$root}') is not in a git " . "working copy.");
         }
         $working_copy = ArcanistWorkingCopyIdentity::newFromPath($root);
         $configuration_manager = clone $this->getConfigurationManager();
         $configuration_manager->setWorkingCopyIdentity($working_copy);
         $repository_api = ArcanistRepositoryAPI::newAPIFromConfigurationManager($configuration_manager);
         $this->setRepositoryAPI($repository_api);
         // Require no local changes.
         $this->requireCleanWorkingCopy();
         // Require the library be on master.
         $branch_name = $repository_api->getBranchName();
         if ($branch_name != 'master') {
             throw new ArcanistUsageException("{$lib} must be on branch 'master' to be automatically upgraded. " . "This copy of {$lib} (in '{$root}') is on branch '{$branch_name}'.");
         }
         chdir($root);
         try {
             phutil_passthru('git pull --rebase');
         } catch (Exception $ex) {
             phutil_passthru('git rebase --abort');
             throw $ex;
         }
     }
     echo phutil_console_wrap(phutil_console_format("**Updated!** Your copy of arc is now up to date.\n"));
     return 0;
 }
开发者ID:ivoryxiong,项目名称:arcanist,代码行数:33,代码来源:ArcanistUpgradeWorkflow.php


示例6: buildBootSequence

 private function buildBootSequence()
 {
     if (!$this->bootSequence) {
         $files = array('utils/utils.php', 'object/Phobject.php', 'utils/PhutilRope.php', 'xsprintf/xsprintf.php', 'xsprintf/csprintf.php', 'xsprintf/PhutilCommandString.php', 'future/Future.php', 'future/FutureIterator.php', 'future/exec/ExecFuture.php', 'future/exec/CommandException.php', 'channel/PhutilChannel.php', 'channel/PhutilSocketChannel.php', 'channel/PhutilChannelChannel.php', 'channel/PhutilProtocolChannel.php', 'channel/PhutilJSONProtocolChannel.php', 'phage/agent/PhagePHPAgent.php');
         $main_sequence = new PhutilBallOfPHP();
         $root = phutil_get_library_root('phutil');
         foreach ($files as $file) {
             $main_sequence->addFile($root . '/' . $file);
         }
         $main_sequence->addText('id(new PhagePHPAgent($I))->execute();');
         $main_length = strlen($main_sequence->toString());
         $boot_sequence = new PhutilBallOfPHP();
         $boot = '
     $length = ' . $main_length . ';
     $buffer = "";
     while (strlen($buffer) < $length) {
       $data = fread($I, $length - strlen($buffer));
       if (!strlen($data)) {
         exit(1);
       }
       $buffer .= $data;
     }
     eval($buffer);';
         $boot_sequence->addText($boot);
         $boot_length = strlen($boot_sequence->toString());
         $boot_sequence->addText($main_sequence->toString());
         if (strlen($boot_length) > 8192) {
             throw new Exception("Stage 1 bootloader is too large!");
         }
         $this->bootSequence = $boot_sequence;
         $this->bootLength = $boot_length;
         $this->mainLength = $main_length;
     }
     return $this->bootSequence;
 }
开发者ID:jasteele12,项目名称:prb_lint_tests,代码行数:35,代码来源:PhagePHPAgentBootloader.php


示例7: run

 public function run()
 {
     $roots = array('libphutil' => dirname(phutil_get_library_root('phutil')), 'arcanist' => dirname(phutil_get_library_root('arcanist')));
     foreach ($roots as $lib => $root) {
         echo phutil_console_format("%s\n", pht('Upgrading %s...', $lib));
         $working_copy = ArcanistWorkingCopyIdentity::newFromPath($root);
         $configuration_manager = clone $this->getConfigurationManager();
         $configuration_manager->setWorkingCopyIdentity($working_copy);
         $repository = ArcanistRepositoryAPI::newAPIFromConfigurationManager($configuration_manager);
         if (!Filesystem::pathExists($repository->getMetadataPath())) {
             throw new ArcanistUsageException(pht("%s must be in its git working copy to be automatically upgraded. " . "This copy of %s (in '%s') is not in a git working copy.", $lib, $lib, $root));
         }
         $this->setRepositoryAPI($repository);
         // Require no local changes.
         $this->requireCleanWorkingCopy();
         // Require the library be on master.
         $branch_name = $repository->getBranchName();
         if ($branch_name != 'master') {
             throw new ArcanistUsageException(pht("%s must be on branch '%s' to be automatically upgraded. " . "This copy of %s (in '%s') is on branch '%s'.", $lib, 'master', $lib, $root, $branch_name));
         }
         chdir($root);
         try {
             phutil_passthru('git pull --rebase');
         } catch (Exception $ex) {
             phutil_passthru('git rebase --abort');
             throw $ex;
         }
     }
     echo phutil_console_format("**%s** %s\n", pht('Updated!'), pht('Your copy of arc is now up to date.'));
     return 0;
 }
开发者ID:lewisf,项目名称:arcanist,代码行数:31,代码来源:ArcanistUpgradeWorkflow.php


示例8: loadVersions

 private function loadVersions(PhabricatorUser $viewer)
 {
     $specs = array('phabricator', 'arcanist', 'phutil');
     $all_libraries = PhutilBootloader::getInstance()->getAllLibraries();
     // This puts the core libraries at the top:
     $other_libraries = array_diff($all_libraries, $specs);
     $specs = array_merge($specs, $other_libraries);
     $futures = array();
     foreach ($specs as $lib) {
         $root = dirname(phutil_get_library_root($lib));
         $futures[$lib] = id(new ExecFuture('git log --format=%s -n 1 --', '%H %ct'))->setCWD($root);
     }
     $results = array();
     foreach ($futures as $key => $future) {
         list($err, $stdout) = $future->resolve();
         if (!$err) {
             list($hash, $epoch) = explode(' ', $stdout);
             $version = pht('%s (%s)', $hash, phabricator_date($epoch, $viewer));
         } else {
             $version = pht('Unknown');
         }
         $results[$key] = $version;
     }
     return $results;
 }
开发者ID:endlessm,项目名称:phabricator,代码行数:25,代码来源:PhabricatorConfigVersionController.php


示例9: loadOneSkinSpecification

 public static function loadOneSkinSpecification($name)
 {
     // Only allow skins which we know to exist to load. This prevents loading
     // skins like "../../secrets/evil/".
     $all = self::loadAllSkinSpecifications();
     if (empty($all[$name])) {
         throw new Exception(pht('Blog skin "%s" is not a valid skin!', $name));
     }
     $paths = PhabricatorEnv::getEnvConfig('phame.skins');
     $base = dirname(phutil_get_library_root('phabricator'));
     foreach ($paths as $path) {
         $path = Filesystem::resolvePath($path, $base);
         $skin_path = $path . DIRECTORY_SEPARATOR . $name;
         if (is_dir($skin_path)) {
             // Double check that the skin really lives in the skin directory.
             if (!Filesystem::isDescendant($skin_path, $path)) {
                 throw new Exception(pht('Blog skin "%s" is not located in path "%s"!', $name, $path));
             }
             $spec = self::loadSkinSpecification($skin_path);
             if ($spec) {
                 $spec->setName($name);
                 return $spec;
             }
         }
     }
     return null;
 }
开发者ID:patelhardik,项目名称:phabricator,代码行数:27,代码来源:PhameSkinSpecification.php


示例10: getPatches

 public function getPatches()
 {
     $patches = array();
     foreach ($this->getOldPatches() as $old_name => $old_patch) {
         if (preg_match('/^db\\./', $old_name)) {
             $old_patch['name'] = substr($old_name, 3);
             $old_patch['type'] = 'db';
         } else {
             if (empty($old_patch['name'])) {
                 $old_patch['name'] = $this->getPatchPath($old_name);
             }
             if (empty($old_patch['type'])) {
                 $matches = null;
                 preg_match('/\\.(sql|php)$/', $old_name, $matches);
                 $old_patch['type'] = $matches[1];
             }
         }
         $patches[$old_name] = $old_patch;
     }
     $root = dirname(phutil_get_library_root('phabricator'));
     $auto_root = $root . '/resources/sql/autopatches/';
     $auto_list = Filesystem::listDirectory($auto_root, $include_hidden = false);
     sort($auto_list);
     foreach ($auto_list as $auto_patch) {
         $matches = null;
         if (!preg_match('/\\.(sql|php)$/', $auto_patch, $matches)) {
             throw new Exception(pht('Unknown patch "%s" in "%s", expected ".php" or ".sql" suffix.', $auto_patch, $auto_root));
         }
         $patches[$auto_patch] = array('type' => $matches[1], 'name' => $auto_root . $auto_patch);
     }
     return $patches;
 }
开发者ID:sethkontny,项目名称:phabricator,代码行数:32,代码来源:PhabricatorBuiltinPatchList.php


示例11: willRun

 protected function willRun()
 {
     parent::willRun();
     $phabricator = phutil_get_library_root('phabricator');
     $root = dirname($phabricator);
     require_once $root . '/scripts/__init_script__.php';
 }
开发者ID:endlessm,项目名称:phabricator,代码行数:7,代码来源:PhabricatorDaemon.php


示例12: getPEP8Path

 public function getPEP8Path()
 {
     $working_copy = $this->getEngine()->getWorkingCopy();
     $prefix = $working_copy->getConfig('lint.pep8.prefix');
     $bin = $working_copy->getConfig('lint.pep8.bin');
     if ($bin === null && $prefix === null) {
         $bin = csprintf('/usr/bin/env python2.6 %s', phutil_get_library_root('arcanist') . '/../externals/pep8/pep8.py');
     } else {
         if ($bin === null) {
             $bin = 'pep8';
         }
         if ($prefix !== null) {
             if (!Filesystem::pathExists($prefix . '/' . $bin)) {
                 throw new ArcanistUsageException("Unable to find PEP8 binary in a specified directory. Make sure " . "that 'lint.pep8.prefix' and 'lint.pep8.bin' keys are set " . "correctly. If you'd rather use a copy of PEP8 installed " . "globally, you can just remove these keys from your .arcconfig");
             }
             $bin = csprintf("%s/%s", $prefix, $bin);
             return $bin;
         }
         // Look for globally installed PEP8
         list($err) = exec_manual('which %s', $bin);
         if ($err) {
             throw new ArcanistUsageException("PEP8 does not appear to be installed on this system. Install it " . "(e.g., with 'easy_install pep8') or configure " . "'lint.pep8.prefix' in your .arcconfig to point to the directory " . "where it resides.");
         }
     }
     return $bin;
 }
开发者ID:nik-kor,项目名称:arcanist,代码行数:26,代码来源:ArcanistPEP8Linter.php


示例13: getPatchPath

 private function getPatchPath($file)
 {
     $root = dirname(phutil_get_library_root('phabricator'));
     $path = $root . '/resources/sql/patches/' . $file;
     // Make sure it exists.
     Filesystem::readFile($path);
     return $path;
 }
开发者ID:neoxen,项目名称:phabricator,代码行数:8,代码来源:PhabricatorBuiltinPatchList.php


示例14: __construct

 /**
  * @phutil-external-symbol class PHPMailerLite
  */
 public function __construct()
 {
     $root = phutil_get_library_root('phabricator');
     $root = dirname($root);
     require_once $root . '/externals/phpmailer/class.phpmailer-lite.php';
     $this->mailer = new PHPMailerLite($use_exceptions = true);
     $this->mailer->CharSet = 'utf-8';
 }
开发者ID:nexeck,项目名称:phabricator,代码行数:11,代码来源:PhabricatorMailImplementationPHPMailerLiteAdapter.php


示例15: buildClient

 /**
  * @phutil-external-symbol class Services_Twilio
  */
 private function buildClient()
 {
     $root = dirname(phutil_get_library_root('phabricator'));
     require_once $root . '/externals/twilio-php/Services/Twilio.php';
     $account_sid = PhabricatorEnv::getEnvConfig('twilio.account-sid');
     $auth_token = PhabricatorEnv::getEnvConfig('twilio.auth-token');
     return new Services_Twilio($account_sid, $auth_token);
 }
开发者ID:pugong,项目名称:phabricator,代码行数:11,代码来源:PhabricatorSMSImplementationTwilioAdapter.php


示例16: generateData

 public function generateData()
 {
     $lib_data = array();
     foreach (PhutilBootloader::getInstance()->getAllLibraries() as $lib) {
         $lib_data[$lib] = phutil_get_library_root($lib);
     }
     return array('config' => PhabricatorEnv::getAllConfigKeys(), 'libraries' => $lib_data);
 }
开发者ID:nguyennamtien,项目名称:phabricator,代码行数:8,代码来源:DarkConsoleConfigPlugin.php


示例17: __construct

 /**
  * @phutil-external-symbol function phabricator_read_config_file
  */
 public function __construct($config)
 {
     $root = dirname(phutil_get_library_root('phabricator'));
     require_once $root . '/conf/__init_conf__.php';
     $dictionary = phabricator_read_config_file($config);
     $dictionary['phabricator.env'] = $config;
     $this->setSource(new PhabricatorConfigDictionarySource($dictionary));
 }
开发者ID:denghp,项目名称:phabricator,代码行数:11,代码来源:PhabricatorConfigFileSource.php


示例18: willRunTests

 protected function willRunTests()
 {
     $root = dirname(phutil_get_library_root('phabricator'));
     require_once $root . '/scripts/__init_script__.php';
     $config = $this->getComputedConfiguration();
     if ($config[self::PHABRICATOR_TESTCONFIG_ISOLATE_LISK]) {
         LiskDAO::beginIsolateAllLiskEffectsToCurrentProcess();
     }
 }
开发者ID:netcomtec,项目名称:phabricator,代码行数:9,代码来源:PhabricatorTestCase.php


示例19: render

 public function render()
 {
     $user = $this->getUser();
     $trace = $this->trace;
     $libraries = PhutilBootloader::getInstance()->getAllLibraries();
     // TODO: Make this configurable?
     $path = 'https://secure.phabricator.com/diffusion/%s/browse/master/src/';
     $callsigns = array('arcanist' => 'ARC', 'phutil' => 'PHU', 'phabricator' => 'P');
     $rows = array();
     $depth = count($trace);
     foreach ($trace as $part) {
         $lib = null;
         $file = idx($part, 'file');
         $relative = $file;
         foreach ($libraries as $library) {
             $root = phutil_get_library_root($library);
             if (Filesystem::isDescendant($file, $root)) {
                 $lib = $library;
                 $relative = Filesystem::readablePath($file, $root);
                 break;
             }
         }
         $where = '';
         if (isset($part['class'])) {
             $where .= $part['class'] . '::';
         }
         if (isset($part['function'])) {
             $where .= $part['function'] . '()';
         }
         if ($file) {
             if (isset($callsigns[$lib])) {
                 $attrs = array('title' => $file);
                 try {
                     $attrs['href'] = $user->loadEditorLink('/src/' . $relative, $part['line'], $callsigns[$lib]);
                 } catch (Exception $ex) {
                     // The database can be inaccessible.
                 }
                 if (empty($attrs['href'])) {
                     $attrs['href'] = sprintf($path, $callsigns[$lib]) . str_replace(DIRECTORY_SEPARATOR, '/', $relative) . '$' . $part['line'];
                     $attrs['target'] = '_blank';
                 }
                 $file_name = phutil_tag('a', $attrs, $relative);
             } else {
                 $file_name = phutil_tag('span', array('title' => $file), $relative);
             }
             $file_name = hsprintf('%s : %d', $file_name, $part['line']);
         } else {
             $file_name = phutil_tag('em', array(), '(Internal)');
         }
         $rows[] = array($depth--, $lib, $file_name, $where);
     }
     $table = new AphrontTableView($rows);
     $table->setHeaders(array(pht('Depth'), pht('Library'), pht('File'), pht('Where')));
     $table->setColumnClasses(array('n', '', '', 'wide'));
     return phutil_tag('div', array('class' => 'exception-trace'), $table->render());
 }
开发者ID:patelhardik,项目名称:phabricator,代码行数:56,代码来源:AphrontStackTraceView.php


示例20: executeSend

 public function executeSend($body)
 {
     $key = PhabricatorEnv::getEnvConfig('amazon-ses.access-key');
     $secret = PhabricatorEnv::getEnvConfig('amazon-ses.secret-key');
     $root = phutil_get_library_root('phabricator');
     $root = dirname($root);
     require_once $root . '/externals/amazon-ses/ses.php';
     $service = newv('SimpleEmailService', array($key, $secret));
     return $service->sendRawEmail($body);
 }
开发者ID:hunterbridges,项目名称:phabricator,代码行数:10,代码来源:PhabricatorMailImplementationAmazonSESAdapter.php



注:本文中的phutil_get_library_root函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
PHP phutil_hashes_are_identical函数代码示例发布时间:2022-05-15
下一篇:
PHP phutil_format_relative_time_detailed函数代码示例发布时间:2022-05-15
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap