PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   Library/Class mit USE einbinden (http://www.selfphp.de/forum/showthread.php?t=26143)

AlexD 21.01.2019 18:58:28

Library/Class mit USE einbinden
 
Hallo zusammen,

da ja PHP aktuell in der Version 7.3 vorliegt und ich doch immer einigermaßen aktuell bleiben möchte tun sich mir hier ein Problem auf.

Nun ja, besser gesagt irgendwie versteh ich es einfach nicht - sitz auf der Leitung, wie auch immer.

Ich nutze pChart um mir Charts zu erstellen... die benötigten Datein wurden bisher einfach wie folgt eingebunden:
PHP-Code:

 /* pChart library inclusions */
 
include("./pChart/class/pData.class.php");
 include(
"./pChart/class/pDraw.class.php");
 include(
"./pChart/class/pImage.class.php"); 

Jetzt wurde das geändert und muss mit USE eingebunden werden..
PHP-Code:

use pChart{pDraw,pCharts,pColor}; 

hier der Link zu Github: https://github.com/bozhinov/pChart2.0-for-PHP7

Vielleicht könnt Ihr mir auf die Sprünge helfen... auf PHP.net hab ich mir USE schon angesehen, aber ehrlich gesagt wirklich verstanden hab ich's nicht.

Gruß
Alex

chorn 22.01.2019 08:54:35

AW: Library/Class mit USE einbinden
 
Was verstehst du nicht bzw. was ist das Problem? Hier ist ja ein Beispiel

https://github.com/bozhinov/pChart2....mple.basic.php

und wenn du in die bootstrap.php reinguckst siehst du den Autoloader.

AlexD 22.01.2019 12:05:39

AW: Library/Class mit USE einbinden
 
Hallo chorn,

vielen Dank für die Antwort.


Nun das Problem ist, das ich nicht ganz versteh von wo nun die Klassen geladen werden?!

Im Root-Verzeichnis hab ich einen Ordner "module" in dem sich der Ordner "pChart" befindet incl. Examples und Sandbox.
Ebenso im Verzeichnis des Webservers c:\PHP7x\includes\pchart in dem sich die ganzen Klassen sowie die Verzeichnisse "data, fonts, palettes, pCache, pImageMap" befinden.

So... lade ich die Sandbox bei Examples, so funktioniert alles auch wenn sich im Verzeichnis c:\PHP7x\includes\pchart NICHTS befindet.

Übernehme ich ein Example, includiere die bootstrap.php entsprechend kommt folgender Fehler (Klassen und Verzeichnisse sind im PHP-Verzeichnis "\includes\pchart" vorhanden)

Fatal error: Uncaught pChart\pException: pChart: Font path pChart/fonts/Forgotte.ttf does not exist! in C:\PHP7x\includes\pChart\pException.php:37 Stack trace: #0 C:\PHP7x\includes\pChart\pDraw.php(3878): pChart\pException::InvalidResourcePath('Font path pChar...') #1 E:\http\gira_qc\pchart_basic.php(39): pChart\pDraw->setFontProperties(Array) #2 {main} thrown in C:\PHP7x\includes\pChart\pException.php on line 37

pChart ist auch im entsprechenden PHP7x\includes Verzeichnis und auch der Ordner "fonts" wie auch "Forgotte.ttf" sind in diesem vorhanden.

chorn 22.01.2019 12:21:25

AW: Library/Class mit USE einbinden
 
Zitat:

von wo nun die Klassen geladen werden?!
Im Autoloader. Du solltest die Klassen nur noch mit ihrem Namespace instanziieren müssen, include/require entfällt.

AlexD 22.01.2019 14:31:54

AW: Library/Class mit USE einbinden
 
Irgendwie komm ich damit nicht zurecht.... die Klasse lädt er ja scheinbar, aber der Pfad zum Font passt nicht?!
Von wo aus bezieht sich der Pfad zum Font-Verzeichnis??

Grob die Verzeichnisstruktur
Root
|- gira_qc (hier soll das Diagram hin)
|- module -> pchart

AlexD 23.01.2019 12:38:32

AW: Library/Class mit USE einbinden
 
So bin nun einen Schritt weiter....


Hab mir den Code der Sandbox angesehen und da gibt's eine 'render.php'.
In dieser wird 'chdir()' wohl das Verzeichnis in das bootstrap.php gewechselt.

Im Script wechsle ich nun ebenfalls vor Aufruf in das Verzeichnis.... und siehe da, das Test-Diagram wird generiert und angezeigt.

PHP-Code:


chdir
("../module/pChart/examples"); <==

require_once(
"functions.inc.php");
require_once(
"myColors.php");
require_once(
"bootstrap.php");
use 
pChart{
    
pColor,
    
pDraw,
    
pCharts
};

/* Create the pChart object */
$myPicture = new pDraw(700,230); 



Alle Zeitangaben in WEZ +2. Es ist jetzt 07:34:43 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.