for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
/*
* This file is part of the Behat Gherkin.
* (c) Konstantin Kudryashov <[email protected]>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Behat\Gherkin\Loader;
/**
* Abstract filesystem loader.
* @author Konstantin Kudryashov <[email protected]>
abstract class AbstractFileLoader implements FileLoaderInterface
{
protected $basePath;
* Sets base features path.
* @param string $path Base loader path
public function setBasePath($path)
$this->basePath = realpath($path);
}
* Finds relative path for provided absolute (relative to base features path).
* @param string $path Absolute path
* @return string
protected function findRelativePath($path)
if (null !== $this->basePath) {
return strtr($path, array($this->basePath . DIRECTORY_SEPARATOR => ''));
return $path;
* Finds absolute path for provided relative (relative to base features path).
* @param string $path Relative path
protected function findAbsolutePath($path)
if (is_file($path) || is_dir($path)) {
return realpath($path);
if (null === $this->basePath) {
return false;
if (is_file($this->basePath . DIRECTORY_SEPARATOR . $path)
|| is_dir($this->basePath . DIRECTORY_SEPARATOR . $path)) {
return realpath($this->basePath . DIRECTORY_SEPARATOR . $path);