Database class
Voor een nieuwe baan als programmeur moet ik mijn kennis bijschaven aangezien ik erg lang niet geprogrammeerd heb en uberhaupt niet op het niveau wat wordt gevraagd straks. Ik heb een project meegekregen en hierin vind ik het volgende:
Database classes
Maak voor elke tabel een class. Deze class moet uit/in de bijbehorende tabel gegevens kunnen
ophalen, toevoegen, wijzigen en verwijderen.
nu heb ik meerdere tutorials gekeken op youtube en veel gelezen:
https://www.killerphp.com/tutorials/php-objects-page-1/
ik vind het erg moeilijk te begrijpen maar nog moeilijker te vertalen naar mijn project en hoop dat jullie mij een kickstart kunnen geven.
Ik heb een database (gegevens) met 4 tabellen
persoonsgegevens (user_id , voornaam , achternaam)
adresgegevens (user_id , adres_id , straat , plaats)
contactgegevens (user_id , contact_id , email , telefoonnummer)
bijlage ( moet ik nog mee bezig maar een vriend van mij heeft me geadviseerd dit op een later moment in het project te doen)
in de aanloop naar deze uitbreiding van het project is dit erbij gekomen.
tot nu toe heb ik een simpele mysql_connect gehad die ik include die er als volgt uit ziet:
Code (php)
weet iemand een site / video die ik kan gebruiken om mijn kennis hiervan uit te breiden zodat ik het kan toepassen?
en kan iemand mij een globale structuurtip geven zodat ik een begin kan maken.
Ik zit nu namelijk met de handen in het haar omdat ik niet weet waar en hoe ik moet beginnen...
Alvast bedankt!
Dennis de PHP-noob
Waarom heb je die baan dan gekregen? (niet lullig bedoeld)
Ozzie PHP op 19/09/2017 17:24:52:
Waarom heb je die baan dan gekregen? (niet lullig bedoeld)
Motivatie en wil om te leren!
Object oriented programming is in het begin best lastig te doorgronden. Veel cursussen bieden erg droge kost aan en maken je alles behalve enthousiast zo is mijn ervaring.
Een paar (zoek)termen:
MVC
Model, View en Controller. Aan de hand van de URL (of route) wordt bepaald welke controller class aangeroepen moet worden. Deze controller gaat vervolgens data verzamelen die nodig is om de output te genereren. Vaak komt de data uit de database maar de controller gaat geen queries schrijven want dat is de de verantwoordelijkheid van de Model! De Controller roept gewoon een method (functie) aan van de Model class en gaat er klakkeloos van uit dat deze de data terug geeft die nodig is. Daarna zal de View geladen worden. Dit is (meestal) de feitelijke HTML of template. Als de template is omgetoverd in een complete HTML pagina dan wordt deze pagina naar browser teruggestuurd en vormt deze dus de Response.
Separation of concerns
Dat is een mooie uitdrukking. Deel je applicatie onder in verschillende taken alsof het aparte afdelingen in een bedrijf zijn. Iedere afdeling heeft zijn eigen specialiteit. Bijvoorbeeld het communiceren met de database of het genereren van een PDF. Vaak hebben die afdelingen ook een aparte directory in je systeem.
Frontcontroller of "Single point of entry"
Wat de URL ook is, er wordt altijd het zelfde php script gestart.
Router
Welke controller en method moet aangeroepen worden bij welke route?
Code (php)
1
2
3
2
3
/ ==> DefaultController::indexAction()
/contact ==> ContactController::contactAction()
/contact/confirmation ==> ContactController::confirmationAction()
/contact ==> ContactController::contactAction()
/contact/confirmation ==> ContactController::confirmationAction()
PDO
Database abstract layer. Kan met verschillende soorten databases werken.
Prepared statements
Nieuwe verbeterde en veiligere manier om je queries op te bouwen.
Deze zaken zijn echt van belang. Een goed middel kan zijn om eens naar een PHP framework te kijken. Een beetje modern framework heeft deze zaken in zich en helpen je om gestructureerd te programmeren. Bekende frameworks zijn Laravel, Symfony en CodeIgniter.
De laatste is wat mij betreft niet de beste maar misschien wel de beste keuze om mee te beginnen zodat je snel inzicht krijgt in de opbouw van een MVC framework.
Toevoeging op 19/09/2017 18:32:24:
Even terugkomend op de database classen:
http://designpatternsphp.readthedocs.io/en/latest/Structural/DataMapper/README.html
Gewijzigd op 19/09/2017 17:59:38 door Frank Nietbelangrijk