php class aanroepen vanuit ander bestand

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Hans -

Hans -

21/08/2015 12:11:24
Quote Anchor link
Beste allemaal,

ik heb een php systeem waar ik een header.php heb die op elke pagina wordt ingeladen. Deze header heeft een include erop staan die de config.php include, maar ook alle classes waaronder de query class. Deze query class heeft alles in huis dat je een query kunt uitvoeren. Nu wil ik vanuit het config bestand een query gaan uitvoeren. Hoe ga ik dit doen? Ik heb nu in de header alle libs (zoals query) ingeladen, en daar onder de config. Maar als ik dan de config inlaad en in de config een query wil uitvoeren lukt dat niet..

Klein voorbeeldje om het duidelijk te maken:

HEADER.PHP
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
include 'query.php'; //hier staat de query methode in die ik kan aanroepen met $query->runSelect() etc;
$query = new query();
include 'config.php'; //hier wil ik een query uitvoeren


Als ik in config.php dan niets doe, of $query = new query(); doet hij beide niets. Hij zegt dat hij query niet kent.

Iemand die dit kan verklaren?
 
PHP hulp

PHP hulp

04/05/2024 17:00:43
 
Obelix Idefix

Obelix Idefix

21/08/2015 13:32:17
Quote Anchor link
Ik zou de volgorde omdraaien: eerst config includen en daarna pas andere bestanden.
Er van uitgaande dat in config ook gegevens staan m.b.t. verbinden met database, etc.
 
Thomas van den Heuvel

Thomas van den Heuvel

21/08/2015 15:50:53
Quote Anchor link
Als je toe bent aan classes / object georienteerd programmeren zou je eens kunnen kijken naar een (eenvoudige) autoloader. Je hoeft dan niet meer allerlei bestanden eerste te includen (of wellicht beter, te requiren) maar deze worden automatisch geladen / opgezocht op het moment dat je een object van een klasse probeert aan te maken.

Het laden van deze bestanden gebeurt dan "on demand", en alleen als je ze echt gaat gebruiken.

De reden dat je geen foutmelding krijgt is waarschijnlijk omdat je foutenrapportage niet aan staat en/of niet wordt weergegeven.

Daarnaast produceert een include die mislukt enkel warnings terwijl een require die mislukt resulteert in een fatal error. Als je een bestand echt nodig hebt om een bepaalde taak uit te voeren, is het beter om require(_once) te gebruiken, of een autoloader.

Daarnaast is het dus handig dat je tijdens het ontwikkelen ook het rapporteren en weergeven van fouten aanzet. Voeg dit helemaal aan het begin van je code toe, bijvoorbeeld bovenaan in je config.php als dat het eerste bestand is wat je inlaad:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
error_reporting(E_ALL);
ini_set('display_errors', 'stdout');
?>
Gewijzigd op 21/08/2015 16:28:21 door Thomas van den Heuvel
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.