abonnement Unibet Coolblue Bitvavo
pi_45820936
Ik gebruik bijna alleen maar OO-implementaties in PHP, maar alleen wanneer dit het werken makkelijker maakt of als ik nut zie in het opbouwen van verschillende lagen (extenden).

Als ik met meerdere databases tegelijk moet werken is het geweldig om het hele idee van link resources in een class weg te werken, het bespaart code en queries zijn makkelijker op één plek goed te debuggen.

Het extenden heeft voor mij ook ontzettend veel nut; ik heb bijvoorbeeld ooit een basisimplementatie van een tree-index in een class gemaakt. Vervolgens heb ik deze extended naar classes die elk op verschillende manieren gebruik maakten van die index, en er uiteindelijk ook verschillende dingen in konden opslaan en/of op andere manieren konden opvragen.

Had ik dat proceduraal gedaan, dan had ik op een gegeven moment door de bomen de tree niet meer gezien.
pi_45821758
Bij PHP kan je natuurlijk een authenticatie object maken voor alles wat daar mee te maken heeft er in mikken. Idem voor database interactie.

Maar het vereist denk ik een andere denkwijze. Idem met een MVC benadering, je kan natuurlijk dbase queries in een template stoppen omdat het zo makkelijk is. Als je echt met OO aan de slag wil kan je eens kijken naar Rubyonrails.

Bovendien kan je met OO ook allerlei handige methodes gebruiken zoals UML voordat je meteen gaat coden.

Simpel voorbeeldje van wat OO:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
class SimpelLampje {
    
private $enabled false;
    
private $voltage "220v";
    
private $kleur "groen";

   
public function __construct()
   {
     echo 
"Ik ben een simpel lampje die aan en uit kan n";
   }

    
public function AanUit() {
      
$this->enabled = !$this->enabled;
   }

    
public function Rapporteer()
   {
     
$status = ($this->enabled) ? "Aan" "Uit";
      
printf("Het lampje is nu %s n",$status);
   }

}

class 
BeterLampje extends Simpellampje {
   
public function __construct()
   {
    
parent::__construct();
   echo 
"Maar ik kan nu meer n";
   }

   
public function dim($percentage 100)
   {
   
printf"Het licht wordt gedimmed tot %d procent n",$percentage);
   }

}

$simpel = new SimpelLampje;
$simpel->Rapporteer();
$beter = new BeterLampje;
$beter->AanUit();
$beter->Rapporteer();
$beter->dim(50);
?>


Dit geeft ->

1
2
3
4
5
6
Ik ben een simpel lampje die aan en uit kan
Het lampje is nu Uit
Ik ben een simpel lampje die aan en uit kan
Maar ik kan nu meer
Het lampje is nu Aan
Het licht wordt gedimmed tot 50 procent


Hoewel erg triviaal, geeft het toch al een beetje de basics van OO weer. Zo hoef je gedeelde functionaliteit (methods, properties) zoals de AanUit en Rapporteer functie maar 1 keer te definieeren.
Al die basisfunctionaliteit erft de verbetere lamp automatisch.

En zo kan je natuurlijk ook de AanUit method in BeterLampje opnieuw schrijven zodat ie niet alleen aan of uit kan zijn, maar ook gedimd kan zijn.
  dinsdag 30 januari 2007 @ 13:59:19 #203
12880 CraZaay
prettig gestoord
pi_45822351
quote:
Op dinsdag 30 januari 2007 13:40 schreef smesjz het volgende:

Als je echt met OO aan de slag wil kan je eens kijken naar Rubyonrails.
Halleluja! Wij doen echt alles met Ruby on Rails, tenzij een opdrachtgever expliciet PHP of Java wil.

Al is RoR wel iets totaal anders dan PHP (of hoe de meesten hier PHP gebruiken). Rails is bijv. een MVC-framework (een concept dat de meesten hier niet gebruiken en/of kennen). Maarrr... als je eenmaal RoR gebruikt hebt wil je niet meer terug (al was het maar voor de ActiveRecord implementatie ).

Voor de PHP'ers die langzaamaan willen wennen aan MVC zou ik eens naar Code Igniter of CakePHP kijken.
pi_45822681
quote:
Op maandag 29 januari 2007 18:33 schreef keeper het volgende:
Ik probeer een pagina op een website binnen te halen middels file_get_contents(). Gaat allemaal goed, alleen omdat dit een beveiligde pagina is (joomla-cms) krijg ik dan niet de hele inhoud van de pagina te zien, maar de mededeling "je bent niet gemachtigd, etc". Logisch, want ik ben niet ingelogd op die site.

Okay, cookies meesturen. Maar hoe werkt dit (of specifieker, hoe werkt dit bij een Joomla pagina)? Welke cookies zijn belangrijk? Ik heb nu deze code:
[ code verwijderd ]

Waarbij die laatste waarde in de cookie (419..) een 32 tekens lange Hex-waarde is met als waarde (532...) een 67 tekens lange hex-waarde. Als ik dit zo stuur krijg ik een error "Redirection limit reached". Kan ik daaruit concluderen dat de login op zich werkt, alleen dat ik word teruggestuurd naar de pagina en dat er daar wat mis gaat (ik draai dat script vanaf www.mijnsite.nl/script.php)? Of gaat die login sowieso niet goed? Als ik die laatste waarde met al die hex-shit weglaat, krijg ik gewoon de "niet gemachtigd deze pagina te bekijken error".

Weet iemand of dit gaat werken? Of kijkt Joomla naar meer dingen tijdens het inloggen, zoals IP waar het vandaan komt of User-Agent? En is dat dan nog ergens mee te nemen?

disclaimer: het gaat om het automatisch inlezen van een grote pagina met data waar ik wel toegang tot heb via de browser, maar dus niet via een script
Iemand hier nog sterke ideeën over?

Of versimpeld: hoe is het mogelijk om via een script te faken dat je bent ingelogd op een site, zodat je gegevens die achter die login staan automatisch binnen kan trekken?
Die Welt ist alles was der Fall ist.
  FOK!-Schrikkelbaas dinsdag 30 januari 2007 @ 14:11:03 #205
1972 Swetsenegger
Egocentrische Narcist
pi_45822715
quote:
Op dinsdag 30 januari 2007 13:40 schreef smesjz het volgende:
Bij PHP kan je natuurlijk een authenticatie object maken voor alles wat daar mee te maken heeft er in mikken. Idem voor database interactie.

Maar het vereist denk ik een andere denkwijze. Idem met een MVC benadering, je kan natuurlijk dbase queries in een template stoppen omdat het zo makkelijk is. Als je echt met OO aan de slag wil kan je eens kijken naar Rubyonrails.

Bovendien kan je met OO ook allerlei handige methodes gebruiken zoals UML voordat je meteen gaat coden.

Simpel voorbeeldje van wat OO:
[ code verwijderd ]

Dit geeft ->
[ code verwijderd ]

Hoewel erg triviaal, geeft het toch al een beetje de basics van OO weer. Zo hoef je gedeelde functionaliteit (methods, properties) zoals de AanUit en Rapporteer functie maar 1 keer te definieeren.
Al die basisfunctionaliteit erft de verbetere lamp automatisch.

En zo kan je natuurlijk ook de AanUit method in BeterLampje opnieuw schrijven zodat ie niet alleen aan of uit kan zijn, maar ook gedimd kan zijn.
Hmmm, dit wordt me al duidelijker dan de over bekende 'auto' en 'raceauto' klasses die ik altijd als voorbeeld zie.

Heb je geen zin om eens een tut te schrijven voor dit topic?
Sowieso, is het niet voor ons allemaal eens een goed idee om tutorials te maken. Ik kan me voorstellen dat prutsers zoals mijzelf de wat simpelere tuts schrijven, (database results over meerdere pages spreiden enzo) en de goden schrijven dan OO tuts.

Op die manier krijg je dan in php voor dummies een mooie leercurve. Want een goede tut linken we natuurlijk in de OP.
pi_45822740
Ruby on Rails en alle andere implementaties van een geautomatiseerd MVC-concept zullen bij mij nooit de voorkeur krijgen. Als er iets is wat ik haat dan is het wel code obfuscatie door generatie. Als ik ooit een performanceprobleem in een applicatie heb is het nu ontzettend gemakkelijk in mijn MVC-model om het probleem te traceren en te debuggen, terwijl bij RoR een bugje in RoR de oorzaak kan zijn. Tuurlijk kan het in PHP ook, maar bij RoR heb je er nog een extra laag bovenop.

Verder is Ruby echt een kotstaal. [/mening]
pi_45822750
Hey mensen, ff een kort vraagje regarding SQL

Ik heb een tabel waar mensen staan ingecheckt om te vertrekken met een vlucht, dit in 2006-10-30 13:30:00.000
versie. Nu wil ik een passagier zoeken die vandaag vertrekt, vandaag veranderd dus elke dag.. hoe los ik dit op? now() statement werkt niet in query analyzer of now(day)..
  FOK!-Schrikkelbaas dinsdag 30 januari 2007 @ 14:12:27 #208
1972 Swetsenegger
Egocentrische Narcist
pi_45822760
quote:
Op dinsdag 30 januari 2007 14:10 schreef keeper het volgende:

[..]

Iemand hier nog sterke ideeën over?

Of versimpeld: hoe is het mogelijk om via een script te faken dat je bent ingelogd op een site, zodat je gegevens die achter die login staan automatisch binnen kan trekken?
Nee, dat zou het wel erg onveilig maken he
Als je weet hoe de login werkt (sessie) kan je die zetten natuurlijk.
pi_45822781
quote:
Op dinsdag 30 januari 2007 14:12 schreef Swetsenegger het volgende:

[..]

Nee, dat zou het wel erg onveilig maken he
Als je weet hoe de login werkt (sessie) kan je die zetten natuurlijk.
Het kan gerust hoor, je hebt alleen wat verstand nodig van het HTTP protocol (en verder is CURL dan een goede optie).
pi_45823030
quote:
Op dinsdag 30 januari 2007 14:11 schreef Swetsenegger het volgende:

[..]

Hmmm, dit wordt me al duidelijker dan de over bekende 'auto' en 'raceauto' klasses die ik altijd als voorbeeld zie.

Heb je geen zin om eens een tut te schrijven voor dit topic?
Sowieso, is het niet voor ons allemaal eens een goed idee om tutorials te maken. Ik kan me voorstellen dat prutsers zoals mijzelf de wat simpelere tuts schrijven, (database results over meerdere pages spreiden enzo) en de goden schrijven dan OO tuts.

Op die manier krijg je dan in php voor dummies een mooie leercurve. Want een goede tut linken we natuurlijk in de OP.
Dat lijkt me wel wat. Zelf ben ik nog een enorme prutser, dus tuts schrijven lijkt me nog geen goede optie
  FOK!-Schrikkelbaas dinsdag 30 januari 2007 @ 14:27:54 #211
1972 Swetsenegger
Egocentrische Narcist
pi_45823237
quote:
Op dinsdag 30 januari 2007 14:13 schreef JeRa het volgende:

[..]

Het kan gerust hoor, je hebt alleen wat verstand nodig van het HTTP protocol (en verder is CURL dan een goede optie).
Hoezo kan het gerust als je niet weet welke sessie info ik set en controleer bij de login?
  dinsdag 30 januari 2007 @ 14:29:01 #212
18008 hornage
FOK! Movie Trivia-Prijsmeester
pi_45823276
quote:
Op dinsdag 30 januari 2007 14:12 schreef Sjoe538 het volgende:
Hey mensen, ff een kort vraagje regarding SQL

Ik heb een tabel waar mensen staan ingecheckt om te vertrekken met een vlucht, dit in 2006-10-30 13:30:00.000
versie. Nu wil ik een passagier zoeken die vandaag vertrekt, vandaag veranderd dus elke dag.. hoe los ik dit op? now() statement werkt niet in query analyzer of now(day)..
uhm? Hoezo werkt now() niet? Ik weet natuurlijk niet je db in elkaar zit maar zoiets moet wel werken:
1
2
3
SELECT Name, Flight
FROM CheckedIN
WHERE DepartDate = Now()

DepartDate is dan een datetime. Ik weet niet zeker of dit ook goed werkt als dit alleen een date is, maar lijkt me wel
Test je filmkennis! Speel mee met FOK! Movie Trivia en win prijzen!
pi_45823336
quote:
Op dinsdag 30 januari 2007 14:27 schreef Swetsenegger het volgende:

[..]

Hoezo kan het gerust als je niet weet welke sessie info ik set en controleer bij de login?
Als ik een login bij jou heb en kan inloggen, dan hoef ik (vrijwel altijd) alleen maar rekening te houden met:
- het IP-adres waarvan ik communiceer
- de HTTP-headers die ik meestuur (User-Agent, Referer, etc)

Door een beetje te testen kun je er vrij simpel achterkomen waar jij op controleert
pi_45823457
[SQL] datum / tijd functies
quote:
Op dinsdag 30 januari 2007 14:28 schreef Sjoe538 het volgende:
Hallo,

Ik zit met het volgende probleem, ik wil een passagier die is ingecheckt vergelijken met een vlucht zijn vertrektijd. Maar de query die ik heb gemaakt moet het dus voor 'vandaag' opgeven, oftewel, alle passagiers die vandaag vertrekken. Maar dit kan dus elke dag veranderen.. Hoe los ik dit op? Met day vergelijk ik alleen de dag.. dus hoe pas ik de now() functie toe?
1
2
WHERE date(vlucht.vertrektijd) = 
  day(passagier.inchecktijdstip)
  FOK!-Schrikkelbaas dinsdag 30 januari 2007 @ 14:35:01 #215
1972 Swetsenegger
Egocentrische Narcist
pi_45823485
quote:
Op dinsdag 30 januari 2007 14:30 schreef JeRa het volgende:

[..]

Als ik een login bij jou heb en kan inloggen, dan hoef ik (vrijwel altijd) alleen maar rekening te houden met:
- het IP-adres waarvan ik communiceer
- de HTTP-headers die ik meestuur (User-Agent, Referer, etc)

Door een beetje te testen kun je er vrij simpel achterkomen waar jij op controleert
Dan ga je er dus al vanuit dat je kan inloggen
pi_45823517
quote:
Op dinsdag 30 januari 2007 14:35 schreef Swetsenegger het volgende:

[..]

Dan ga je er dus al vanuit dat je kan inloggen
Ja...dat was het hele idee toch? (zie de post van keeper)
pi_45823626
quote:
Op dinsdag 30 januari 2007 14:12 schreef Sjoe538 het volgende:
Hey mensen, ff een kort vraagje regarding SQL

Ik heb een tabel waar mensen staan ingecheckt om te vertrekken met een vlucht, dit in 2006-10-30 13:30:00.000
versie. Nu wil ik een passagier zoeken die vandaag vertrekt, vandaag veranderd dus elke dag.. hoe los ik dit op? now() statement werkt niet in query analyzer of now(day)..
Is het veld dat je controleerd wel een DATETIME veld of iets in die richting?
  FOK!-Schrikkelbaas dinsdag 30 januari 2007 @ 14:39:25 #218
1972 Swetsenegger
Egocentrische Narcist
pi_45823645
quote:
Op dinsdag 30 januari 2007 14:36 schreef JeRa het volgende:

[..]

Ja...dat was het hele idee toch? (zie de post van keeper)
Daarin werd mij niet duidelijk dat hij een login had
pi_45823715
quote:
Op dinsdag 30 januari 2007 14:11 schreef Swetsenegger het volgende:
Sowieso, is het niet voor ons allemaal eens een goed idee om tutorials te maken. Ik kan me voorstellen dat prutsers zoals mijzelf de wat simpelere tuts schrijven, (database results over meerdere pages spreiden enzo) en de goden schrijven dan OO tuts.
Ik ga ff offtopic, maar puik idee (pleur het op de wiki, zo zijn er meerdere onderwerpen - die niks met dit topic te maken hebben) waar we FAQ's / HOWTO's / tutorials voor kunnen gebruiken/aanmaken.
pi_45823770
quote:
Op dinsdag 30 januari 2007 14:39 schreef Swetsenegger het volgende:

[..]

Daarin werd mij niet duidelijk dat hij een login had
Mij wel
quote:
Ik probeer een pagina op een website binnen te halen middels file_get_contents(). Gaat allemaal goed, alleen omdat dit een beveiligde pagina is (joomla-cms) krijg ik dan niet de hele inhoud van de pagina te zien, maar de mededeling "je bent niet gemachtigd, etc". Logisch, want ik ben niet ingelogd op die site.

(...)

disclaimer: het gaat om het automatisch inlezen van een grote pagina met data waar ik wel toegang tot heb via de browser, maar dus niet via een script
pi_45823856
quote:
Op dinsdag 30 januari 2007 13:59 schreef CraZaay het volgende:
Halleluja! Wij doen echt alles met Ruby on Rails, tenzij een opdrachtgever expliciet PHP of Java wil.
Doe de groeten aan Thijs als je hem ziet.
pi_45824111
quote:
Op dinsdag 30 januari 2007 14:11 schreef JeRa het volgende:
Ruby on Rails en alle andere implementaties van een geautomatiseerd MVC-concept zullen bij mij nooit de voorkeur krijgen. Als er iets is wat ik haat dan is het wel code obfuscatie door generatie. Als ik ooit een performanceprobleem in een applicatie heb is het nu ontzettend gemakkelijk in mijn MVC-model om het probleem te traceren en te debuggen, terwijl bij RoR een bugje in RoR de oorzaak kan zijn. Tuurlijk kan het in PHP ook, maar bij RoR heb je er nog een extra laag bovenop.

Verder is Ruby echt een kotstaal. [/mening]
Als er een bug in RoR code zit, wordt dat meestal al heel snel opgemerkt omdat veel mensen het gebruiken. Ik heb wel eens last gehad van een memory leak in RoR waardoor een app ontzettend traag was als ie in debug mode wordt gedraaid. Dan is die extra laag wel een nadeel.
Maar ik vind het zonde van m'n tijd om alle code zelf te schrijven als ik bijv. een attachment wil toevoegen aan een mail om maar iets te noemen of een heel MVC framework neer te mikken.

Die magic methods van Ruby zoals: Lamp.find_by_kleur('groen') vind ik alleen maar makkelijk. Scheelt mij weer gepruts met SQL.

Maar ik ga ook maar weer eens ontopic
pi_45824222
quote:
Op dinsdag 30 januari 2007 14:12 schreef Sjoe538 het volgende:
Hey mensen, ff een kort vraagje regarding SQL

Ik heb een tabel waar mensen staan ingecheckt om te vertrekken met een vlucht, dit in 2006-10-30 13:30:00.000
versie. Nu wil ik een passagier zoeken die vandaag vertrekt, vandaag veranderd dus elke dag.. hoe los ik dit op? now() statement werkt niet in query analyzer of now(day)..
pi_45824322
quote:
Op dinsdag 30 januari 2007 14:11 schreef Swetsenegger het volgende:
Heb je geen zin om eens een tut te schrijven voor dit topic?
Sowieso, is het niet voor ons allemaal eens een goed idee om tutorials te maken. Ik kan me voorstellen dat prutsers zoals mijzelf de wat simpelere tuts schrijven, (database results over meerdere pages spreiden enzo) en de goden schrijven dan OO tuts.

Op die manier krijg je dan in php voor dummies een mooie leercurve. Want een goede tut linken we natuurlijk in de OP.
Een tutorial schrijven in het Nederlands kan ik wel doen, maar ik heb zo het gevoel dat zoiets er al is.
Maar ik zou het dan graag met oefeningen uitbereiden, waarbij voor mij part alleen met pseudo-code gewerkt wordt. Een goede voorbereiding en goede eerste opzet van classes is het belangrijkst.

Een auth class maken in een tutorial kan wel aardig zijn, maar het moet iets uitdagenders zijn, en niet al te complex omdat anders niet meer te volgen is.
pi_45824631
quote:
Op dinsdag 30 januari 2007 14:57 schreef Sjoe538 het volgende:

[..]
Je wilt dus gewoon de huidige dag hebben? Volgens mij kan dat met day(currentdate()), of day(now()), afhankelijk van wat je gebruikt. Wel een tijdje geleden dat ik iets met SQL heb gedaan, dus kan er naast zitten
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')