Opnieuw beginnen met PHP
Ondertussen al minstens 5 jaar gestopt met PHP etc. Maar probeer het momenteel weer op te pakken, mede door mijn omgeving.
Alleen nu merk ik dat het hier niet meer zo druk bezocht wordt als eerst maar ik zoek iemand die mij zo af en toe kan helpen. Ik wil niet gelijk alles hier posten, dus mijn vraag 'Wie kan mij even op gang helpen?'.
Dus heb je ervaring met PHP en ben je bereid af en toe te helpen (advies en controle) laat even een reactie achter en ik neem contact met je op.
M.v.g.
D. Mertens
Waarom ga je niet je geheugen even opfrissen via CodeAcademy? Dat kost je al het goed is niks ;-)
Als je vragen hebt waar je niet uitkomt, aarzel dan niet om ze hier op het forum te plaatsen.
Je bevindt je op een forum ;-)
Je kunt hier dus gewoon je vragen in de openbaarheid stellen.
Maar hier komt dan de eerste vraag.
In het kort:
Bestandsindeling:
config.inc.php
index.php
cls.admin.php objadmin
cls.design.php objdesign
In config haal ik de classes op en maak ik die aan. In index haal ik de config erbij. Nu is mijn vraag hoe ik in de class admin gebruik kan maken van de class design.
Ik was aan het testen in de class design met objadmin::login en dergelijke maar daar kreeg ik telkens fout meldingen op. Moet ik perse extends gebruiken?
Ik denk niet dat veel mensen zitten te wachten om jouw lappen code te lezen en dan jou gratis les te geven :-)
Maar de concrete vragen die je stelt daar kunnen we natuurlijk wel iets mee.
>> In config haal ik de classes op en maak ik die aan.
Hier krijg ik de kriebels van :p Een config bestand is bedoeld voor configuratie (klinkt logisch he :p) dus daar komen alleen instellingen in te staan zoals de host, gebruikersnaam en wachtwoord van je mysql server bijvoorbeeld.
Classes maak je niet aan. Je noemt dat declareren en later als je ze echt gaat gebruiken dan is het instantiëren.
Voor het declareren gebruik je voor iedere class een apart bestand. Als je de conventie van de grote spelers wilt aanhouden dan zou je de class naam in CamelCase schrijven en beginnen met een hoofdletter. Het bestand van de class krijgt dezelfde naam als de class maar dan met de extensie .php. Voorbeeld: UserManager en UserManager.php.
Nog even een stapje terug:
Er zijn grofweg drie soorten PHP bestanden:
- declaratie bestanden. Hierin worden de classes gedeclareerd. Kunnen buiten de webroot opgeslagen worden
- configuratie bestanden. Hierin staat de configuratie. Kunnen (moeten) buiten de webroot opgeslagen worden
- landingspagina's (zoals ik ze noem) Hierbij moet je denken aan index.php, about.php en contact.php. deze zijn vanuit de browser direct te benaderen.
Terug naar je probleem:
>> Nu is mijn vraag hoe ik in de class admin gebruik kan maken van de class design.
Door in ieder bestand dat deze class gaat gebruiken het volgende BOVEN AAN in het bestand te zetten:
Maar... This will be quick a hell of a job! Is er een beter alternatief?
Yes there is. Je zou met een autoloader PSR-4 en met namespaces moeten werken. (Google helpt je hier graag bij).
Hiermee los je twee problemen op:
a) iedere class die je gebruikt wordt volledig automatisch geladen.
b) Je hebt geen problemen meer met dubbele class namen.
Tot slot:
Ik wil je ten strengste adviseren om gewoon heel even te wachten met je eigen code te schrijven en in plaats daarvan je tijd te investeren in een aantal dingen:
- Object Oriented Programming
- De werking van een frontcontroller
- Namespaces en autoloading
- Het PHP framework Symfony (bij voorkeur).
(Blijkt er toch wél veel veranderd in vijf jaar tijd :p)
Toevoeging op 08/10/2016 23:53:19:
oh en een class extenden is NIET nodig. Tenzij je er een verdomd goede reden voor hebt. Daar kom je later vanzelf wel achter, laat het voor nu maar links liggen.
Gewijzigd op 08/10/2016 23:46:49 door Frank Nietbelangrijk