realPath() 공개 정적인 메소드

Wraps the PHP realpath() function to add support for finding paths to files inside Phar archives.
public static realPath ( string $path ) : string
$path string An unresolved path to a file inside a Phar archive which may or may not exist.
리턴 string If `$path` is a valid path to a file inside a Phar archive, returns a string in the format `'phar:///'`. Otherwise returns `null`.
예제 #1
0
 /**
  * Tests that `Libraries::map()` and `Libraries::unmap()`
  *
  */
 public function testMapUnmap()
 {
     $testApp = Libraries::get(true, 'resources') . '/tmp/tests/test_app';
     mkdir($testApp, 0777, true);
     Libraries::add('test_app', array('path' => $testApp));
     mkdir($testApp . '/lib', 0777);
     mkdir($testApp . '/_patch', 0777);
     file_put_contents($testApp . '/lib/LibTest.php', "<?php namespace test_app\\lib;\n\n\t\t\tclass LibTest{ public function testMe() {\n\t\t\t\treturn 'core class';\n\t\t\t}}");
     file_put_contents($testApp . '/_patch/PatchedLibTest.php', "<?php namespace test_app\\lib;\n\n\t\t\tclass LibTest{ public function testMe() {\n\t\t\t\treturn 'patched class';\n\t\t\t}}");
     $expected = $result = Libraries::realPath($testApp . '/lib/LibTest.php');
     $result = Libraries::path('test_app\\lib\\LibTest');
     $this->assertEqual($expected, $result);
     Libraries::map(array('test_app\\lib\\LibTest' => $testApp . '/_patch/PatchedLibTest.php'));
     $expected = $result = Libraries::realPath($testApp . '/_patch/PatchedLibTest.php');
     $result = Libraries::path('test_app\\lib\\LibTest');
     Libraries::unmap(array('test_app\\lib\\LibTest'));
     $expected = $result = Libraries::realPath($testApp . '/lib/LibTest.php');
     $result = Libraries::path('test_app\\lib\\LibTest');
     $this->assertEqual($expected, $result);
     Libraries::map(array('test_app\\lib\\LibTest' => $testApp . '/_patch/PatchedLibTest.php'));
     Libraries::unmap('test_app\\lib\\LibTest');
     $expected = $result = Libraries::realPath($testApp . '/lib/LibTest.php');
     $result = Libraries::path('test_app\\lib\\LibTest');
     Libraries::map(array('test_app\\lib\\LibTest' => $testApp . '/_patch/PatchedLibTest.php'));
     $object = new \test_app\lib\LibTest();
     $result = $object->testMe();
     $this->assertEqual('patched class', $result);
     $this->_cleanUp();
 }
예제 #2
0
 /**
  * Tests that `Libraries::realPath()` correctly resolves paths to files inside Phar archives.
  *
  * @return void
  */
 public function testPathsInPharArchives()
 {
     $base = Libraries::get('lithium', 'path');
     $path = "{$base}/console/command/create/template/app.phar.gz";
     $expected = "phar://{$path}/controllers/HelloWorldController.php";
     $result = Libraries::realPath($expected);
     $this->assertEqual($expected, $result);
 }