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

Zdravím,

chtěl jsem si vyzkoušet jak vlastně funguje composer i z té druhé strany. Vytvořil jsem si jednoduchou knihovnu a zkusil si ji v projektu nainstalovat přes composer.

Knihovna se mně do projektu nainstaluje. Když vytvářím v kódu (v PhpStormu) instanci, tak se lze přes název třídy prokliknout přímo do stažené knihovny.

Když spustím kód v prohlížeči, vyskočí chyba:

Class 'DbPerformance\MultiUpdate' not found

Trochu jsem experimentoval a přesunul celou staženou knihovnu do app/libs, stiskl F5 a všechno jede. Jako by nette tu knihovnu nevidělo ve složce vendor. Mazat cache jsem zkoušel.

Nesetkali jste se s tímto problémem?

composer.json

{
	"name": "db-performance/multi",
	"description": "Library for increase performance of db in Nette Database",
	"type": "library",
	"license": ["GPL-2.0+"],
	"require": {
		"php": ">= 5.3.7",
		"nette/nette": ">= 2.1.0"
	},
	"autoload": {
		"psr-0": {
			"DbPerformance\\": "src/"
		},
		"classmap": [
			"src/MultiInsert.php",
			"src/MultiUpdate.php"
		]
	}
}
enumag
Člen | 2118
+
0
-

Zřejmě špatná cesta k souboru, prostuduj si důkladně dokumentaci composeru.

Ve složce libs to funguje zřejmě protože tam ti to hledá RobotLoader, kterému jsou názvy souborů a cesty k nim lhostejné.