Na mijn eerdere mislukte post heb ik een andere vraag waar ik daadwerkelijk niet uit kom. In mijn package hanteer ik het PSR-0 standaard. In mijn geval zijn mijn namespaces vanaf de derde deel gelijk aan de mappenstructuur. Mijn mappenstructuur ziet er als volgt uit:
Het beginsel van mijn namespaces zijn in dit pakket altijd: MvH\Core\. Dus ik heb in de composer.json van mijn pakket de volgende regels staan:
De top van het Starter.php bestand staat als volgt:
Via de volgende test bestand kom ik erachter dat er iets toch niet goed is ingesteld:
Want ik krijg namelijk de volgende error...
De autoload_namespaces.php van composer zelf wordt na mijn idee wel goed gegeneerd:
Ik heb geprobeerd:
Ik ben radeloos!
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| Source - Helpers - Implementations -- ActionResults -- Environments -- Handlers -- ModelBinders -- Starters -- Transformers - Interfaces -- ActionResults -- Environments -- Handlers -- ModelBinders -- Starters --- Starter.php -- Transformers |
Het beginsel van mijn namespaces zijn in dit pakket altijd: MvH\Core\. Dus ik heb in de composer.json van mijn pakket de volgende regels staan:
code:
1
2
3
| "autoload": { "psr-0": { "MvH\\Core\\" : "Source/" } } |
De top van het Starter.php bestand staat als volgt:
code:
1
2
3
4
| namespace MvH\Core\Implementations\Starters; use MvH\Core\Interfaces\Handlers\ICoreRouteHandler; use MvH\Core\Interfaces\Starters\IStarter; |
Via de volgende test bestand kom ik erachter dat er iets toch niet goed is ingesteld:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
| <?php require_once "./vendor/autoload.php"; use MvH\Core\Implementations\Starters\Starter; error_reporting(E_ALL); ini_set('display_errors', '1'); class test extends Starter { /** * Instantie van een ICoreRouteHandler. * @return \MvH\Core\Interfaces\Handlers\ICoreRouteHandler */ public function DefaultHandler() { // TODO: Implement DefaultHandler() method. } /** * Functie om te controleren of de default handler gestart * moet worden. * @return bool */ public function StartDefaultHandler() { // TODO: Implement StartDefaultHandler() method. } } |
Want ik krijg namelijk de volgende error...
code:
1
| Fatal error: Class 'MvH\Core\Implementations\Starters\Starter' not found in D:\*knip*\Websites\test\index.php on line 19 |
De autoload_namespaces.php van composer zelf wordt na mijn idee wel goed gegeneerd:
code:
1
2
3
| return array( 'MvH\\Core' => array($vendorDir . '/mvh/core/Source'), ); |
Ik heb geprobeerd:
- Om de map 'core' te veranderen in 'Core' om vervolgens maar één 'hoofd-namespace' te definiëren maar dat werkte ook niet.
- Gekeken op internet of ik misschien de autoload verkeerd had gedefinieerd maar dat leek niet het geval.
- Gekeken of het uit maakt of de website lokaal of op een server draait, maar dat leek ook niet het geval.
Ik ben radeloos!