Wat is de class berichten, en wat verschilt hij met de berichten_controller? Waarvan controleert de berichten_controller de berichten? Wat is uberhaupt een bericht? (of vriendelijker: je definieert niet wat een bericht is, je hebt er geen class voor)
Je hebt een definitie van een bericht-object nodig, en je heb iets nodig waar je de berichten uit kan halen en in kan stoppen (wat jij de berichten_controller noemt?)
Nog een hint voor naamgeving: Probeer je classes altijd naar een enkelvoudig zelfstandig naamwoord te vernoemen, en je methods in de gebiedende wijs.
<?php
class Berichten_Store
{
public function getInbox()
{
return array(new Bericht(), new Bericht());
}
public function verwijder(Bericht $bericht)
{
return true;
}
public function verstuur(Bericht $bericht)
{
return true;
}
}
?>
En als je methods verzint, moet je eigenlijk ook meteen de argumenten voor die methods uitdenken. Bijvoorbeeld Bericht::controleer_titel() zou inderdaad een goeie method zijn van een class, maar Bericht::controleer_titel($titel) zou je als static kunnen aanmerken omdat het niet langer gebonden is aan één specifiek bericht; Je kan ermee de titel voor ieder willekeurig bericht controleren.
Opnieuw beginnen is zeker een goed plan, maar begin dan opnieuw met het herkennen van de objecten die je ziet. Lees vooral ook de hoofdstukken 'object georiënteerd denken' en 'foute denkwijze' uit die handleiding, dat is namelijk het punt waarop het bij jou nog fout gaat. Zodra je denkt dat je een overzicht van de benodigde objecten en hun functionaliteit, dan is het tijd om de classes voor die objecten te gaan schrijven.
Neem de tips van Jelmer mee en dan vooral die over de namen van je classes en methods. Daaruit kun je al afleiden of je op de goede weg bent.
Het lukt me niet om goeie namen voor de functions te verzinnen zoals jij op die tutorial goed uitlegt. Dan snap ik het wel. Maar als ik het in de werkelijkheid zelf moet maken ga ik de mist in