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!