Může RobotLoader načítat Phar?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
jEhLa
Člen | 70
+
0
-

Dobrý den,
je nějak možné aby RobotLoader načítal složky zabalené v phar?

Filip Procházka
Moderator | 4668
+
0
-

Phar balíky jsou navržené tak, aby samy obsahovaly vlastní autolodery. Ale teoreticky by mohl. V současnosti to ale tuším neumí.

Pokud to potřebuješ, mohl bys zkusit poslat pullrequest, určitě to půjde snadno upravit :)

jEhLa
Člen | 70
+
0
-

Tak že bych to přímo nějak potřeboval, to zase ne. Ale napadlo mě to že by se to mohlo využít. Z celé složky ‚app‘ jsem si udělal Phar, v kterém se spouští samotný bootstrap.php. Při RobotLoader->addDirectory(__DIR__) se i přenese cesta přímo do Phar souboru. Problém nastane až v metodě addDirecotry:

public function addDirectory($path)
	{
		foreach ((array) $path as $val) {
			$real = realpath($val);
			if ($real === FALSE) {
				throw new Nette\DirectoryNotFoundException("Directory '$val' not found.");
			}
			$this->scanDirs[] = $real;
		}
		return $this;
	}

Protože funkce realpath() neumí pracovat s phar. Takže by asi stačilo jen toto upravit.