overkill OOP?
Ja alweer een OOP vraagje van mijn kant.
ik ben bezig met een standaard nieuws systeem in OOP te maken en heb voor het ophalen van gegevens het volgende:
Nu werkt deze code opzich goed. en word aangeroepen via
en hij echo'd precies wat ik wil.
Alleen schiet ik nu niet door om op deze manier alles te regelen,
kan ik niet beter de funcite as-is in mijn php gebruiken?
of is dit wel netjes en is dit ook hoe oop bedoeld is.
wat ik nu een beetje het gevoel heb is dat ik zelf's mijn returns niet gewoon true of false laat zijn maar hele echo's er in verwerk.
ik ben bezig met een standaard nieuws systeem in OOP te maken en heb voor het ophalen van gegevens het volgende:
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class newsItem {
var $returnList;
function getTitle() {
require_once('connector.php');
$connector = new Connector();
$selectQuery = "SELECT * FROM newsitem LIMIT 0,10";
$result = $connector->query($selectQuery);
while ($row = $connector->fetchArray($result)) {
$time = substr(date($row['date']), 11, 5);
$this->returnList[] = $time . "<a href=test.nl/getarticle.php?id=".$row['id']."'>".$row['title']."</a>";
}
return implode('<br>', $this->returnList);
}
}
var $returnList;
function getTitle() {
require_once('connector.php');
$connector = new Connector();
$selectQuery = "SELECT * FROM newsitem LIMIT 0,10";
$result = $connector->query($selectQuery);
while ($row = $connector->fetchArray($result)) {
$time = substr(date($row['date']), 11, 5);
$this->returnList[] = $time . "<a href=test.nl/getarticle.php?id=".$row['id']."'>".$row['title']."</a>";
}
return implode('<br>', $this->returnList);
}
}
Nu werkt deze code opzich goed. en word aangeroepen via
en hij echo'd precies wat ik wil.
Alleen schiet ik nu niet door om op deze manier alles te regelen,
kan ik niet beter de funcite as-is in mijn php gebruiken?
of is dit wel netjes en is dit ook hoe oop bedoeld is.
wat ik nu een beetje het gevoel heb is dat ik zelf's mijn returns niet gewoon true of false laat zijn maar hele echo's er in verwerk.
nee dit is volgens mij verkeerd. zo ie zo hier al bij je query je wil alleen de titel weten maar je vraag * alles dus.
het is wel en beetje zinloos alleen en title te vragen waarom maak je niet object newsItem aan en vraag je aan dat object wat zijn titel is ?
het is wel en beetje zinloos alleen en title te vragen waarom maak je niet object newsItem aan en vraag je aan dat object wat zijn titel is ?
Jouw methode getTitle levert als return waarde geen titel, maar html code. getTitle moet een titel terug leveren.
mja, ik kan hem rename naar het volgende:
en als select
wat hij namenlijk returned is het volgende:
HH/MM Titel van bericht 1
HH/MM Titel van bericht 2
HH/MM Titel van bericht 3
en dat zijn allemaal linkjes naar www.test.nl/viewArticle.php?id=1/2/3
en als select
wat hij namenlijk returned is het volgende:
HH/MM Titel van bericht 1
HH/MM Titel van bericht 2
HH/MM Titel van bericht 3
en dat zijn allemaal linkjes naar www.test.nl/viewArticle.php?id=1/2/3
Var = PHP4... Gebruik public, private, protected bijv. :)
@iChris: check ;)
maar vraag blijft: schrijf ik hier nu oop of gewoon rubbish wat nergens op lijkt maar wel werkt ;)?
maar vraag blijft: schrijf ik hier nu oop of gewoon rubbish wat nergens op lijkt maar wel werkt ;)?
Het voorbeeldje dat je geeft kun je inderdaad beter als functie overschrijven, omdat je daar niet echt de waarde van Object Georienteerd Programmeren mee opslaat.
Zie OOP meer als bouwen met Lego-blokjes, waarbij je met een vrij kleine verzameling blokjes toch al snel wrede dingen in elkaar kunt zetten. Ik kan je adviseren om gewoon verder te pielen met Objecten e.d.
Als een voorbeeld:
Je zou als basis een ContentBlok kunnen definieren, welke inhoud heeft om weer te geven (wellicht uit de database). Methodes voor dit object: Aanmaken, Bestaande Wijzigen, Weergeven en verwijderen. Ook heeft dit content-blok wat eigenschappen die weergegeven moeten worden.
Dan heb je een NieuwsItem, wat in essentie dezelfde dingen moet kunnen als een content-blok, maar met bijvoorbeeld een alternatieve weergave!
en zo kun je het voorbeeld natuurlijk oneindig uitbreiden.
Zie OOP meer als bouwen met Lego-blokjes, waarbij je met een vrij kleine verzameling blokjes toch al snel wrede dingen in elkaar kunt zetten. Ik kan je adviseren om gewoon verder te pielen met Objecten e.d.
Als een voorbeeld:
Je zou als basis een ContentBlok kunnen definieren, welke inhoud heeft om weer te geven (wellicht uit de database). Methodes voor dit object: Aanmaken, Bestaande Wijzigen, Weergeven en verwijderen. Ook heeft dit content-blok wat eigenschappen die weergegeven moeten worden.
Dan heb je een NieuwsItem, wat in essentie dezelfde dingen moet kunnen als een content-blok, maar met bijvoorbeeld een alternatieve weergave!
en zo kun je het voorbeeld natuurlijk oneindig uitbreiden.
Als tip, twee basis classes die je echt super kunt gebruiken zijn:
debug class, met als methode AddDebugLine. Filehandle openen bij de construct. Lijkt misschien heel makkelijk, je kan hem uitbreiden naar singleton design pattern, een heeft veel nut verderop in je applicatie, als je met ingewikkeldere classes gaat klooien.
En een andere is een DB class, is altijd makkelijk, en ook weer heel goed te gebruiken. Methodes: GetArray, GetObject, GetRow, ExecSql en kan ook worden uitgebreid naar singleton design pattern.
Zijn alle twee prima basisbouwstenen voor een applicatie. En gaande weg zal je ze blijven uit breiden.
debug class, met als methode AddDebugLine. Filehandle openen bij de construct. Lijkt misschien heel makkelijk, je kan hem uitbreiden naar singleton design pattern, een heeft veel nut verderop in je applicatie, als je met ingewikkeldere classes gaat klooien.
En een andere is een DB class, is altijd makkelijk, en ook weer heel goed te gebruiken. Methodes: GetArray, GetObject, GetRow, ExecSql en kan ook worden uitgebreid naar singleton design pattern.
Zijn alle twee prima basisbouwstenen voor een applicatie. En gaande weg zal je ze blijven uit breiden.




