本文整理汇总了PHP中LocalRepo::fileExists方法的典型用法代码示例。如果您正苦于以下问题:PHP LocalRepo::fileExists方法的具体用法?PHP LocalRepo::fileExists怎么用?PHP LocalRepo::fileExists使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LocalRepo
的用法示例。
在下文中一共展示了LocalRepo::fileExists方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: isMissing
/**
* @return bool
*/
function isMissing() {
if ( $this->missing === null ) {
list( $fileExists ) = $this->repo->fileExists( $this->getVirtualUrl() );
$this->missing = !$fileExists;
}
return $this->missing;
}
示例2: getThumbnailSource
/**
* Returns the most appropriate source image for the thumbnail, given a target thumbnail size
* @param array $params
* @return array Source path and width/height of the source
*/
public function getThumbnailSource($params)
{
if ($this->repo && $this->getHandler()->supportsBucketing() && isset($params['physicalWidth']) && ($bucket = $this->getThumbnailBucket($params['physicalWidth']))) {
if ($this->getWidth() != 0) {
$bucketHeight = round($this->getHeight() * ($bucket / $this->getWidth()));
} else {
$bucketHeight = 0;
}
// Try to avoid reading from storage if the file was generated by this script
if (isset($this->tmpBucketedThumbCache[$bucket])) {
$tmpPath = $this->tmpBucketedThumbCache[$bucket];
if (file_exists($tmpPath)) {
return array('path' => $tmpPath, 'width' => $bucket, 'height' => $bucketHeight);
}
}
$bucketPath = $this->getBucketThumbPath($bucket);
if ($this->repo->fileExists($bucketPath)) {
$fsFile = $this->repo->getLocalReference($bucketPath);
if ($fsFile) {
return array('path' => $fsFile->getPath(), 'width' => $bucket, 'height' => $bucketHeight);
}
}
}
// Thumbnailing a very large file could result in network saturation if
// everyone does it at once.
if ($this->getSize() >= 10000000.0) {
// 10MB
$that = $this;
$work = new PoolCounterWorkViaCallback('GetLocalFileCopy', sha1($this->getName()), array('doWork' => function () use($that) {
return $that->getLocalRefPath();
}));
$srcPath = $work->execute();
} else {
$srcPath = $this->getLocalRefPath();
}
// Original file
return array('path' => $srcPath, 'width' => $this->getWidth(), 'height' => $this->getHeight());
}
示例3: purgeFromArchiveTable
protected function purgeFromArchiveTable(LocalRepo $repo, LocalFile $file)
{
$dbr = $repo->getSlaveDB();
$res = $dbr->select('filearchive', array('fa_archive_name'), array('fa_name' => $file->getName()), __METHOD__);
foreach ($res as $row) {
if ($row->fa_archive_name === null) {
// Was not an old version (current version names checked already)
continue;
}
$ofile = $repo->newFromArchiveName($file->getTitle(), $row->fa_archive_name);
// If there is an orphaned storage file still there...delete it
if (!$file->exists() && $repo->fileExists($ofile->getPath())) {
$dpath = $this->getDeletedPath($repo, $ofile);
if ($repo->fileExists($dpath)) {
// Sanity check to avoid data loss
$repo->getBackend()->delete(array('src' => $ofile->getPath()));
$this->output("Deleted orphan file: {$ofile->getPath()}.\n");
} else {
$this->error("File was not deleted: {$ofile->getPath()}.\n");
}
}
$file->purgeOldThumbnails($row->fa_archive_name);
}
}
示例4: transform
/**
* Transform a media file
*
* @param array $params an associative array of handler-specific parameters.
* Typical keys are width, height and page.
* @param int $flags A bitfield, may contain self::RENDER_NOW to force rendering
* @return MediaTransformOutput|bool False on failure
*/
function transform($params, $flags = 0)
{
global $wgUseSquid, $wgIgnoreImageErrors, $wgThumbnailEpoch;
wfProfileIn(__METHOD__);
do {
if (!$this->canRender()) {
$thumb = $this->iconThumb();
break;
// not a bitmap or renderable image, don't try
}
// Get the descriptionUrl to embed it as comment into the thumbnail. Bug 19791.
$descriptionUrl = $this->getDescriptionUrl();
if ($descriptionUrl) {
$params['descriptionUrl'] = wfExpandUrl($descriptionUrl, PROTO_CANONICAL);
}
$handler = $this->getHandler();
$script = $this->getTransformScript();
if ($script && !($flags & self::RENDER_NOW)) {
// Use a script to transform on client request, if possible
$thumb = $handler->getScriptedTransform($this, $script, $params);
if ($thumb) {
break;
}
}
$normalisedParams = $params;
$handler->normaliseParams($this, $normalisedParams);
$thumbName = $this->thumbName($normalisedParams);
$thumbUrl = $this->getThumbUrl($thumbName);
$thumbPath = $this->getThumbPath($thumbName);
// final thumb path
if ($this->repo) {
// Defer rendering if a 404 handler is set up...
if ($this->repo->canTransformVia404() && !($flags & self::RENDER_NOW)) {
wfDebug(__METHOD__ . " transformation deferred.\n");
// XXX: Pass in the storage path even though we are not rendering anything
// and the path is supposed to be an FS path. This is due to getScalerType()
// getting called on the path and clobbering $thumb->getUrl() if it's false.
$thumb = $handler->getTransform($this, $thumbPath, $thumbUrl, $params);
break;
}
// Clean up broken thumbnails as needed
$this->migrateThumbFile($thumbName);
// Check if an up-to-date thumbnail already exists...
wfDebug(__METHOD__ . ": Doing stat for {$thumbPath}\n");
if (!($flags & self::RENDER_FORCE) && $this->repo->fileExists($thumbPath)) {
$timestamp = $this->repo->getFileTimestamp($thumbPath);
if ($timestamp !== false && $timestamp >= $wgThumbnailEpoch) {
// XXX: Pass in the storage path even though we are not rendering anything
// and the path is supposed to be an FS path. This is due to getScalerType()
// getting called on the path and clobbering $thumb->getUrl() if it's false.
$thumb = $handler->getTransform($this, $thumbPath, $thumbUrl, $params);
$thumb->setStoragePath($thumbPath);
break;
}
} elseif ($flags & self::RENDER_FORCE) {
wfDebug(__METHOD__ . " forcing rendering per flag File::RENDER_FORCE\n");
}
}
// If the backend is ready-only, don't keep generating thumbnails
// only to return transformation errors, just return the error now.
if ($this->repo->getReadOnlyReason() !== false) {
$thumb = $this->transformErrorOutput($thumbPath, $thumbUrl, $params, $flags);
break;
}
// Create a temp FS file with the same extension and the thumbnail
$thumbExt = FileBackend::extensionFromPath($thumbPath);
$tmpFile = TempFSFile::factory('transform_', $thumbExt);
if (!$tmpFile) {
$thumb = $this->transformErrorOutput($thumbPath, $thumbUrl, $params, $flags);
break;
}
$tmpThumbPath = $tmpFile->getPath();
// path of 0-byte temp file
// Actually render the thumbnail...
wfProfileIn(__METHOD__ . '-doTransform');
$thumb = $handler->doTransform($this, $tmpThumbPath, $thumbUrl, $params);
wfProfileOut(__METHOD__ . '-doTransform');
$tmpFile->bind($thumb);
// keep alive with $thumb
if (!$thumb) {
// bad params?
$thumb = null;
} elseif ($thumb->isError()) {
// transform error
$this->lastError = $thumb->toText();
// Ignore errors if requested
if ($wgIgnoreImageErrors && !($flags & self::RENDER_NOW)) {
$thumb = $handler->getTransform($this, $tmpThumbPath, $thumbUrl, $params);
}
} elseif ($this->repo && $thumb->hasFile() && !$thumb->fileIsSource()) {
// Copy the thumbnail from the file system into storage...
$disposition = $this->getThumbDisposition($thumbName);
//.........这里部分代码省略.........
示例5: getThumbnailSource
/**
* Returns the most appropriate source image for the thumbnail, given a target thumbnail size
* @param array $params
* @return array Source path and width/height of the source
*/
public function getThumbnailSource($params)
{
if ($this->repo && $this->getHandler()->supportsBucketing() && isset($params['physicalWidth']) && ($bucket = $this->getThumbnailBucket($params['physicalWidth']))) {
if ($this->getWidth() != 0) {
$bucketHeight = round($this->getHeight() * ($bucket / $this->getWidth()));
} else {
$bucketHeight = 0;
}
// Try to avoid reading from storage if the file was generated by this script
if (isset($this->tmpBucketedThumbCache[$bucket])) {
$tmpPath = $this->tmpBucketedThumbCache[$bucket];
if (file_exists($tmpPath)) {
return array('path' => $tmpPath, 'width' => $bucket, 'height' => $bucketHeight);
}
}
$bucketPath = $this->getBucketThumbPath($bucket);
if ($this->repo->fileExists($bucketPath)) {
$fsFile = $this->repo->getLocalReference($bucketPath);
if ($fsFile) {
return array('path' => $fsFile->getPath(), 'width' => $bucket, 'height' => $bucketHeight);
}
}
}
// Original file
return array('path' => $this->getLocalRefPath(), 'width' => $this->getWidth(), 'height' => $this->getHeight());
}