for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
/* this file is part of pipelines */
namespace Ktomk\Pipelines\Runner\Docker\Binary;
use Ktomk\Pipelines\LibFs;
use Ktomk\Pipelines\Yaml\Yaml;
/**
* Class BinaryPackageYmlReader
*
* Read binary package information from a YAML file
*/
class PackageYamlFileReader implements PackageInterface
{
* @var string
private $file;
* BinaryPackageYmlReader constructor.
* @param string $file
public function __construct($file)
$this->file = LibFs::normalizePathSegments($file);
}
* @return array
public function asPackageArray()
$package = Yaml::file($this->file);
$this->resolveUri($package['uri']);
return $package;
* resolve local path URI relative to document location
* @param string $uri
private function resolveUri(&$uri)
if (null === $uri) {
null === $uri
false
return;
// http/s is the only remote transport considered to be remote so far
// as it is the only one used
if (1 === preg_match('(^https?://)i', $uri)) {
if (LibFs::isAbsolutePath($uri)) {
$baseDir = dirname($this->file);
$buffer = $baseDir . '/' . $uri;
$uri = LibFs::normalizePathSegments($buffer);