Opnieuw beginnen met PHP

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Dennis Mertens

Dennis Mertens

08/10/2016 16:00:48
Quote Anchor link
Goede middag,

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
 
PHP hulp

PHP hulp

24/12/2024 15:13:05
 
- Ariën  -
Beheerder

- Ariën -

08/10/2016 16:51:28
Quote Anchor link
Aan de basis is niet echt veel veranderd sinds 5 jaar. Wel zijn de functies van MySQL aangepast (MySQLi of PDO).

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.
 
Ozzie PHP

Ozzie PHP

08/10/2016 17:55:43
Quote Anchor link
>> 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.

Je bevindt je op een forum ;-)

Je kunt hier dus gewoon je vragen in de openbaarheid stellen.
 
Dennis Mertens

Dennis Mertens

08/10/2016 18:30:08
Quote Anchor link
Ozzie PHP, dat was mij al duidelijk. Alleen het grote nadeel is, is dat als ik wil laten controleren of mijn code goed in elkaar zit, ik alles gelijk moet posten. En dat wil ik niet altijd gelijk doen.

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?
 
Ben van Velzen

Ben van Velzen

08/10/2016 23:15:39
 
Frank Nietbelangrijk

Frank Nietbelangrijk

08/10/2016 23:41:26
Quote Anchor link
Hoi Dennis welkom terug dan maar.

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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
require_once('src/library/Design.php');
?>


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
 
Marthijn Buijs

Marthijn Buijs

09/10/2016 12:40:26
Quote Anchor link
Kijk eens naar Composer, dit is een tool voor de Command Line Interface. Dit maakt het jou makkelijker om gebruik te maken van autoload (zie vorige reactie van Frank). Ook kan je hiermee makkelijker aan het door Frank vermelde framework komen: Symfony; andere frameworks zoals Laravel en vele andere packages.

Zie: https://getcomposer.org/
Gewijzigd op 09/10/2016 12:42:27 door Marthijn Buijs
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.