Composer: Autoload enthält eigene Klasse nicht
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
code
dank
datei
dateiname
eintrag
falsch mache
generellen verbesserungsvorschlag
genereller verbesserungsvorschlag
helfen
http
index
konvention
route
update
url
versuch
versuchen
-
Moin,
ich versuche gerade, Composer meine eigenen PHP-Dateien beizubring. In einem Versuch ist folgendes entstanden:
"composer.json"
{ "name": "NEC/gallery", "require": { "twig/twig": "^2.0", "nikic/fast-route": "^1.2" }, "autoload": { "psr-4": {"NEC\\": "_source/"} } }
"_source/NEC_tools.php"
<?php namespace NEC; class Tools { public function get_clean_filename($path) { $splitted_path = explode("/", $path); $no_dir = end($splitted_path); $no_ext = explode(".", $no_dir)[0]; return $no_ext; } } ?>
"index.php"
<?php require_once __DIR__ . '/vendor/autoload.php'; // Load helper functions. $tools = new NEC\Tools(); ?>
"composer update" hatte ich natürlich ausgeführt, nachdem der Autoload-Eintrag hinzugefügt wurde. Ich sehe leider nicht, was ich falsch mache, hoffentlich könnt ihr mir helfen. :)
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Du definierst deine Klasse als PSR-4 [1] konform. Soweit ich das sehe stimmt dein Dateiname allerdings nicht mit der Konvention überein.
Lösungsvorschlag:
und anschließendmv _source/NEC_tools.php _source/Tools.php
composer dump-autoload
Genereller Verbesserungsvorschlag:
Datei: /src/Nec/Tools.php
Composer: [...] "psr-4": {"Nec\\": "src/Nec/"} [...]
[1] http://www.php-fig.org/psr/psr-4/ -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage