Includen van bestanden / Kennis verrijken
Ik wil graag mijn ervaringen met PHP vergroten en aarom stel ik het volgende op dit forum:
Ik heb inmiddels verschillende applicaties gebouwd en kom tot de slotsom dat ik in al mijn applicaties steeds op dezelfde wijze variabelen declareer. Dit doe ik door een specifiek .inc-bestand in te sluiten. In dit .inc-bestand zijn een groot aantal vaste variabelen opgenomen die ik gebruik bij o.a. het genereren van foutberichten en e-mailberichten.
Nu is het zo dat ik deze .inc-bestanden steeds in elk .php-bestand insluit. Dit lijkt mij echter wel wat overdreven.
Ik ben dus nu ook op zoek naar een instructie die ik eenmalig kan insluiten in mijn index.php en die blijft functioneren, ongeacht in welk .php-document ik mij ook bevind.
De vragen zijn:
1. Is er een instructie danwel routine in php beschikbaar waarmee ik dit kan bereiken?
2. Heeft iemand een voorbeeld hiervan?
Als voorbeeld hierbij de code van de in te sluiten variabelen:
Code (php)
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
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
/**
* @author George van Baasbank
* @copyright 2012
*
* Idee: George vasn Baasbank
* Release: 18 februari 2012
* Versie: 1.0
* Bestandsnaam: esv.inc
* Doelstelling: Deze file wordt door elk .phpbestand ingelezen en bevat
* de variabelen welke specifiek ijn voor de applicatie.
* Alle variabelen beginnen met het kenmerk $ESV_ (Ermelo Software Variabele)
*
*
*/
// Applicatievariabelen
$ESV_applicatie = "<Hier komt de applicatienaam>";
$ESV_versie = "<Hier komt het versienummer>";
$ESV_release = "<Hier komt de releasedatum>";
$ESV_taal = "Nederlands";
$ESV_php = "5.2";
$ESV_css = "CSS3";
$ESV_html = "HTML 5";
// Credits
$ESV_ontwerp = "George van Baasbank";
$ESV_design = "BENX Creativity";
$ESV_plaats = "Harderwijk";
$ESV_email = "[email protected]";
* @author George van Baasbank
* @copyright 2012
*
* Idee: George vasn Baasbank
* Release: 18 februari 2012
* Versie: 1.0
* Bestandsnaam: esv.inc
* Doelstelling: Deze file wordt door elk .phpbestand ingelezen en bevat
* de variabelen welke specifiek ijn voor de applicatie.
* Alle variabelen beginnen met het kenmerk $ESV_ (Ermelo Software Variabele)
*
*
*/
// Applicatievariabelen
$ESV_applicatie = "<Hier komt de applicatienaam>";
$ESV_versie = "<Hier komt het versienummer>";
$ESV_release = "<Hier komt de releasedatum>";
$ESV_taal = "Nederlands";
$ESV_php = "5.2";
$ESV_css = "CSS3";
$ESV_html = "HTML 5";
// Credits
$ESV_ontwerp = "George van Baasbank";
$ESV_design = "BENX Creativity";
$ESV_plaats = "Harderwijk";
$ESV_email = "[email protected]";
Ik kijk uit naar de reacties.
George van Baasbank
constants. Daar zijn ze iets meer voor gebaseerd.
Wat je kan doen is dat bestand toevoegen aan de php.ini include_path onder Paths and Directories.
Maar dat lijkt me niet echt geschikt. Ik denk dat het logischer is en praktischer om het gewoon in elk bestand met procedurele code te plaatsen (dus niet de bestanden waarin je alle classes zet, mocht je dat al gebruiker).
Ik zou deze dingen niet in variabele stoppen, maar in Wat je kan doen is dat bestand toevoegen aan de php.ini include_path onder Paths and Directories.
Maar dat lijkt me niet echt geschikt. Ik denk dat het logischer is en praktischer om het gewoon in elk bestand met procedurele code te plaatsen (dus niet de bestanden waarin je alle classes zet, mocht je dat al gebruiker).
Als ik constanten gebruik, moet ik die dan ook in elk php-bestand includen?
George
Je kunt er ook voor kiezen om een klasse aan te maken, singleton op toe te passen, en zo variablen op te halen.
Een voorbeeldje:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$projectName = 'PHPhulp++';
echo $projectName; // PHPhulp++
$projectName = 'PHPhulp--';
echo $projectName; // PHPhulp--
// aah dit willen we niet, we gebruiken constants:
define('PROJECT_NAME', 'PHPhulp++');
echo PROJECT_NAME; // PHPhulp++
PROJECT_NAME = 'PHPhulp--'; // error (waarschijnlijk unexpected token = expected ;
?>
$projectName = 'PHPhulp++';
echo $projectName; // PHPhulp++
$projectName = 'PHPhulp--';
echo $projectName; // PHPhulp--
// aah dit willen we niet, we gebruiken constants:
define('PROJECT_NAME', 'PHPhulp++');
echo PROJECT_NAME; // PHPhulp++
PROJECT_NAME = 'PHPhulp--'; // error (waarschijnlijk unexpected token = expected ;
?>
@Wim, dan moet je alsnog die class includen dus dat maakt qua dit probleem niet heel veel uit. Tevens zou ik dan de class niet singleton laten zijn, maar gewoon een Registery class hiervoor gebruiken.
Gewijzigd op 18/02/2012 12:06:06 door Wouter J
Ik zie de laatste tijd veel over Singleton. Wat is dit?