map() 공개 정적인 메소드

Once a class is associtated to a path using lithium\core\Libraries::map() the PSR-0 loader or custom class loader setted using the transform or loader option of lithium\core\Libraries::add() are ignored and the associtated path is used instead.
public static map ( array $classes ) : void
$classes array An array of fully-namespaced class names (as keys) and their correponding file's paths (as values).
리턴 void
예제 #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();
 }