abonnement Unibet Coolblue
  maandag 26 maart 2012 @ 22:19:40 #101
75592 GlowMouse
l'état, c'est moi
pi_109549898
quote:
0s.gif Op maandag 26 maart 2012 22:14 schreef kucher het volgende:
Je hoeft het niet te verwijderen, dat doet PHP zelf al.
dat moet wel, aangezien je niet altijd files uit de upload_tmp_dir mag lezen (oa. als safe mode aanstaat of open_basedir ingesteld is) en je dus eerst move_uploaded_file moet aanroepen
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  dinsdag 27 maart 2012 @ 16:12:57 #102
25889 Sitethief
Fulltime Flapdrol
pi_109571112
Dillema

Ik heb een class waarin enkele debug en log functies staan die vooral gebruikt worden om fouten te ontdekken, debuggen, en loggen. Dat loggen gebeurt in sommige gevallen naar de database. En de database class logt wanneer er iets verkeerd gaat...

Zie hier mijn dillema, ik kan natuurlijk mijn debug.log class opsplitsen, maar ergens vind ik dat geen ideale oplossing.
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht >:)
  dinsdag 27 maart 2012 @ 16:50:44 #103
298746 Dalando
18, niet meer gefrustreerd
pi_109572586
Ik kwam deze tegen en ik dacht ik laat hem even hier achter, misschien goed voor in de OP.

http://phptuts.nl/home/
Spel-, taal- en grammaticafouten voorbehouden.
994a040db3f025e25771e045468fc121
pi_109575426
quote:
2s.gif Op dinsdag 27 maart 2012 16:50 schreef Dalando het volgende:
Ik kwam deze tegen en ik dacht ik laat hem even hier achter, misschien goed voor in de OP.

http://phptuts.nl/home/
Goede site, tutorials zijn lekker uptodate (zoals het hoort). Dit durf ik tenminste te geven aan een beginner! Zeker een aanrader.
  Redactie Sport / Supervogel dinsdag 27 maart 2012 @ 18:22:05 #105
270182 crew  Pino112
Pino van Luna O+
pi_109575637
quote:
0s.gif Op dinsdag 27 maart 2012 18:14 schreef totalvamp het volgende:

[..]

Goede site, tutorials zijn lekker uptodate (zoals het hoort). Dit durf ik tenminste te geven aan een beginner! Zeker een aanrader.
Sarcastisch?
pi_109575659
quote:
14s.gif Op dinsdag 27 maart 2012 18:22 schreef Pino112 het volgende:

[..]

Sarcastisch?
Nee, anders zou ik wel zeggen dat de site klote is... en dat holbewoners zelfs niet gebruik maakten van globals.

[ Bericht 5% gewijzigd door #ANONIEM op 27-03-2012 18:23:21 ]
  Redactie Sport / Supervogel dinsdag 27 maart 2012 @ 18:23:23 #107
270182 crew  Pino112
Pino van Luna O+
pi_109575683
quote:
0s.gif Op dinsdag 27 maart 2012 18:22 schreef totalvamp het volgende:

[..]

Nee, anders zou ik wel zeggen dat de site klote is...
Ik zag tuts uit 2008 staan, dus daarom mijn twijfels. :)
pi_109575697
quote:
0s.gif Op dinsdag 27 maart 2012 18:22 schreef totalvamp het volgende:

[..]

Nee, anders zou ik wel zeggen dat de site klote is...
De laatste tutorial stamt uit eind 2009. Ik kan dat nou niet bepaald 'up-to-date' noemen...
pi_109575724
quote:
0s.gif Op dinsdag 27 maart 2012 18:23 schreef The_Terminator het volgende:

[..]

De laaste tutorial stamt uit eind 2009. Ik kan dat nou niet bepaald 'up-to-date' noemen...
Als je kijkt zie je dat de techniek die gebruikt wordt gewoon goed is. Ik had eerst ook mijn twijfels erover, maar zeker voor een beginner is dit een betere start dan een PHP for Dummies boek.
  dinsdag 27 maart 2012 @ 19:49:42 #110
111382 Ofyles2
Bestemming: onbekend
pi_109579178
quote:
14s.gif Op dinsdag 27 maart 2012 18:23 schreef Pino112 het volgende:

[..]

Ik zag tuts uit 2008 staan, dus daarom mijn twijfels. :)
Momenteel is PHP6 nog niet wijdverbreid.
  dinsdag 27 maart 2012 @ 21:32:29 #111
370539 kucher
is snucher
pi_109584648
PHP6 is dood, maar het verschil tussen 5.2 en 5.4 is wel groot.
pi_109589736
quote:
15s.gif Op dinsdag 27 maart 2012 21:32 schreef kucher het volgende:
PHP6 is dood, maar het verschil tussen 5.2 en 5.4 is wel groot.
Dat wel, maar om dat een beginner te gaan leren ;) alhoewel misschien is namespacing wel een goede start :P
pi_109589900
quote:
0s.gif Op dinsdag 27 maart 2012 22:49 schreef totalvamp het volgende:

[..]

Dat wel, maar om dat een beginner te gaan leren ;) alhoewel misschien is namespacing wel een goede start :P
namespaces is iets van PHP 5.3. Als je iets typisch PHP 5.4 als vorobeeld wilt geven, kun je bijvoorbeeld traits nemen. Maar om dat nou bij een beginner uit te leggen, lijkt me niet slim...
pi_109597076
quote:
0s.gif Op dinsdag 27 maart 2012 22:49 schreef totalvamp het volgende:

[..]

Dat wel, maar om dat een beginner te gaan leren ;) alhoewel misschien is namespacing wel een goede start :P
Ik zie het nut van namespaces bij PHP niet helemaal in. Je moet de bestanden toch includen dus die tijd ben je al kwijt. Als PHP goed omgaat met niet geheel inlezen van de bestanden totdat de namespace wordt aangeroepen, dan heeft het wel een voordeel aangezien hij dan pas gaat inlezen wat hij nodig heeft.

Enige wat ik trouwens van PHP zag dat nog een verbetering was is het gebruik van woord "static" n functies. Dat hij het afdwingt deze functies beter te gebruiken. Liever had ik punten gezien als:
• betere type casting $var1 = string en blijft een string, niet dat het halvewege de code ineens een integer kan worden.
• Return types in functie name, zodat je precies weet wat je terug krijgt.
• Verplicht parameter types opgeven
• Functie overloading
pi_109611415
quote:
0s.gif Op woensdag 28 maart 2012 09:16 schreef Pakspul het volgende:

[..]

Ik zie het nut van namespaces bij PHP niet helemaal in. Je moet de bestanden toch includen dus die tijd ben je al kwijt. Als PHP goed omgaat met niet geheel inlezen van de bestanden totdat de namespace wordt aangeroepen, dan heeft het wel een voordeel aangezien hij dan pas gaat inlezen wat hij nodig heeft.

Enige wat ik trouwens van PHP zag dat nog een verbetering was is het gebruik van woord "static" n functies. Dat hij het afdwingt deze functies beter te gebruiken. Liever had ik punten gezien als:
• betere type casting $var1 = string en blijft een string, niet dat het halvewege de code ineens een integer kan worden.
• Return types in functie name, zodat je precies weet wat je terug krijgt.
• Verplicht parameter types opgeven
• Functie overloading
Het nut is dat je nooit meer 2 dezelfde classes kan aanroepen. Aangezien er meerdere classes kunnen bestaan met dezelfde naamgeving is dat dus handig. Ook hoeft includen dus niet meer. voor mijn huidige applicatie is dit perfect!

static methods bestaat al een tijdje hoor ;)

Ik ben het wel eens met je dat method parameter types aangegeven moeten kunnen worden in een interface/abstract class.
overloading bestaat al
waarom zou je return types in de functienaam willen? Je hoort gewoon iets terug te geven en dat zet je in een comment boven de functie.
pi_109620123
quote:
0s.gif Op woensdag 28 maart 2012 16:11 schreef totalvamp het volgende:

[..]

Het nut is dat je nooit meer 2 dezelfde classes kan aanroepen. Aangezien er meerdere classes kunnen bestaan met dezelfde naamgeving is dat dus handig. Ook hoeft includen dus niet meer. voor mijn huidige applicatie is dit perfect!
Hoe weet PHP dan waar de classes staan als includen niet meer hoeft?
quote:
static methods bestaat al een tijdje hoor ;)
Weet ik, maar waar ik op doel is dat het volgende mogelijk is zonder foutmelding
1
2
3
4
5
6
7
8
9
10
11
<?php
class Foo
{
    public function 
Bar()
    {
        echo 
"Foo::Bar!!!";
    }
}

Foo::Bar();
?>

Dit mag niet, static moet er bij anders klopt het gewoon niet.
quote:
Ik ben het wel eens met je dat method parameter types aangegeven moeten kunnen worden in een interface/abstract class.
*O*
quote:
overloading bestaat al
Dit kan in PHP niet:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
class Foo
{
    public function 
Bar(PrimaryClass $var)
    {
        
// do something
    
}

    public function 
Bar(SecondaryClass $var)
    {
        
// do something
    
}

    public function 
Bar(TertiaryClass $var)
    {
        
// do something
    
}
}
?>

Wat wel heel handig is.
quote:
waarom zou je return types in de functienaam willen? Je hoort gewoon iets terug te geven en dat zet je in een comment boven de functie.
Commentaar dwingt het niet af en dat zou wel ideaal zijn. Ook voor het opvoeden van de programmeur die wordt dan gedwongen om goed om te gaan met types.
pi_109621581
quote:
0s.gif Op woensdag 28 maart 2012 19:37 schreef Pakspul het volgende:
Hoe weet PHP dan waar de classes staan als includen niet meer hoeft?
Ik maak zelf gebruik van een autoloader (zoals je normaal ook zou hebben).
quote:
Weet ik, maar waar ik op doel is dat het volgende mogelijk is zonder foutmelding
[ code verwijderd ]
Dit mag niet, static moet er bij anders klopt het gewoon niet.
Dat is toch logisch? het voordeel van static is dat er geen instance gemaakt hoeft te worden van de class. Dit is gewoon zoals het hoort imo.

quote:
Dit kan in PHP niet:
[ code verwijderd ]

Wat wel heel handig is.
overloading houdt iets anders is.
http://php.net/manual/en/language.oop5.overloading.php

quote:
Commentaar dwingt het niet af en dat zou wel ideaal zijn. Ook voor het opvoeden van de programmeur die wordt dan gedwongen om goed om te gaan met types.
Ik neem dan aan dat je zoiets zou willen:
1
2
3
4
5
<?php

function foo(int $int, @return string) {
  return 
'het getal is: '.$int;
}

dat zou inderdaad wel van pas komen.
pi_109622108
quote:
0s.gif Op woensdag 28 maart 2012 20:03 schreef totalvamp het volgende:

[..]

Ik maak zelf gebruik van een autoloader (zoals je normaal ook zou hebben).
Dan worden de bestanden toch nog gewoon geinclude? Maar goed, dubbel class namen kan handig zijn.
quote:
[..]

Dat is toch logisch? het voordeel van static is dat er geen instance gemaakt hoeft te worden van de class. Dit is gewoon zoals het hoort imo.
Nee, want je static functie kan anders zijn dan je normale funtie. In je normale functie kun je gebruik maken van je $this variabel.

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
<?php
class String
{
    public 
$Value;

    public function 
__construct($val)
    {
        
$this->Value $var;
    }

    public function 
ConCat(String $var)
    {
        return new 
String($this->Value $var->Value);
    }

    public static function 
ConCat(String $v1String $v2)
    {
        return new 
String($v1->Value $v2->Value);
    }
}

$query = new String('SELECT ');
$query $query->ConCat(new String('FROM ');

$query2 String::ConCat(new String('SELECT '), new String('FROM '));
?>

Zo programmeer je static functies (niet kijken naar de classes, kon even niets beters verzinnen :P ), maar je niet zomaar een static functie als een normale functie gebruiken. Dan komt het overloaden verhaal weer om de hoek kijken.

quote:
[..]

overloading houdt iets anders is.
http://php.net/manual/en/language.oop5.overloading.php
Duidelijk dat PHP en OO wereld twee andere dingen bedoelen. Ik doel op hoe het in OO wereld hoort: http://en.wikipedia.org/wiki/Function_overloading
quote:
[..]

Ik neem dan aan dat je zoiets zou willen:
[ code verwijderd ]

dat zou inderdaad wel van pas komen.
Liever op de c# manier
1public int Drive(int miles, int speed) { return 0; }
pi_109622589
quote:
0s.gif Op woensdag 28 maart 2012 20:13 schreef Pakspul het volgende:

[..]

Dan worden de bestanden toch nog gewoon geinclude? Maar goed, dubbel class namen kan handig zijn.
Ja maar het aanroepen van de class gaat dus anders ;) Op namespace en niet op naam en die kijkt in een folder etc.

quote:
Nee, want je static functie kan anders zijn dan je normale funtie. In je normale functie kun je gebruik maken van je $this variabel.
[ code verwijderd ]

Zo programmeer je static functies (niet kijken naar de classes, kon even niets beters verzinnen :P ), maar je niet zomaar een static functie als een normale functie gebruiken. Dan komt het overloaden verhaal weer om de hoek kijken.
Je kunt in static functies gebruik maken van self::

quote:
Duidelijk dat PHP en OO wereld twee andere dingen bedoelen. Ik doel op hoe het in OO wereld hoort: http://en.wikipedia.org/wiki/Function_overloading
Hmm interessant, ik kan begrijpen waarom je dat zou willen ja. Nu ik erover nadenk... waarom ik dat wel zou willen ;)

quote:
Liever op de c# manier
[ code verwijderd ]

Ik zou het dan liever zo zien, ik vind het wel fijn als er ook echt function bij staat :P
1public function int Drive()

Voorbeeldje van mijn autoloader:

1
2
3
4
5
6
7
8
9
10
<?php
namespace Traffic\System\Core;

function Autoloader($className)
{
    //echo 'The following class was loaded:'. $className. '<br />';
    $className = str_replace('\\', DIRECTORY_SEPARATOR, $className) . '.php';
    require $className;
}
?>

Hoe ik in bestanden iets aanroep:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
require 'Traffic/System/Core/Autoloader.php';
    spl_autoload_register('\\Traffic\\System\\Core\\Autoloader');
    define('DIRSEP', DIRECTORY_SEPARATOR);
    
    // database test
    $db = new Traffic\System\Core\Database();
    $view = new Traffic\Views;
    
    // New grid
    $grid = new Traffic\Grid();
      
    $grid->addRoad(new Traffic\Roads\Sides\Topside, $coords = array(5,4));  
    $grid->addRoad(new Traffic\Roads\Sides\BottomSide, $coords = array(5,5));  
    // etc

?>

EDIT: de FoK! php highlight ondersteunt nog geen namespaces :')

[ Bericht 12% gewijzigd door #ANONIEM op 28-03-2012 20:23:14 ]
pi_109622892
quote:
0s.gif Op woensdag 28 maart 2012 20:21 schreef totalvamp het volgende:

[..]

Ja maar het aanroepen van de class gaat dus anders ;) Op namespace en niet op naam en die kijkt in een folder etc.

[..]

Je kunt in static functies gebruik maken van self::
Weet ik, maar dat zijn wel twee verschillende dingen en die gebruik je niet door elkaar heen. Als je statische functies gebruikt mag $this niet voorkomen en dat is in PHP nu wel mogelijk.
quote:
[..]

Hmm interessant, ik kan begrijpen waarom je dat zou willen ja. Nu ik erover nadenk... waarom ik dat wel zou willen ;)

[..]

Ik zou het dan liever zo zien, ik vind het wel fijn als er ook echt function bij staat :P
[ code verwijderd ]
Extra type werk :P de ( ) geeft al aan dat het een functie is :P
quote:
Voorbeeldje van mijn autoloader:
[ code verwijderd ]

Hoe ik in bestanden iets aanroep:
[ code verwijderd ]

EDIT: de FoK! php highlight ondersteunt nog geen namespaces :')
Snap het idee, maar ben benieuwd of introductie van namespaces ook invloed heeft op performance.
pi_109623172
quote:
0s.gif Op woensdag 28 maart 2012 20:26 schreef Pakspul het volgende:

[..]

Weet ik, maar dat zijn wel twee verschillende dingen en die gebruik je niet door elkaar heen. Als je statische functies gebruikt mag $this niet voorkomen en dat is in PHP nu wel mogelijk.

[..]

Extra type werk :P de ( ) geeft al aan dat het een functie is :P

[..]

Snap het idee, maar ben benieuwd of introductie van namespaces ook invloed heeft op performance.
Tja er kloppen wel meer dingen niet (qua logica) in PHP.

Meh ik vind function erbij horen xD alhoewel je kunt voorstellen dat het een behoorlijk lange naam wordt op zo'n manier

1
2
3
<?php
final static public int function Foo();
?>

Ja het heeft zeker effect op performance. Ik kan het artikel niet zo snel vinden, maar het was een stuk sneller (met grote apps) dan normale loading.

[ Bericht 2% gewijzigd door #ANONIEM op 28-03-2012 20:32:12 ]
pi_109623505
En als we dan toch nog even bezig zijn fields mogen ook toegevoegd worden.

http://msdn.microsoft.com/en-us/library/ms173118.aspx

Fokking ideaal!
pi_109623726
quote:
0s.gif Op woensdag 28 maart 2012 20:36 schreef Pakspul het volgende:
En als we dan toch nog even bezig zijn fields mogen ook toegevoegd worden.

http://msdn.microsoft.com/en-us/library/ms173118.aspx

Fokking ideaal!
Ik zie niet zo snel het voordeel ervan in tegenover een eigen class maken.
pi_109625036
quote:
0s.gif Op woensdag 28 maart 2012 20:13 schreef Pakspul het volgende:

[..]

Dan worden de bestanden toch nog gewoon geinclude? Maar goed, dubbel class namen kan handig zijn.

[..]

Nee, want je static functie kan anders zijn dan je normale funtie. In je normale functie kun je gebruik maken van je $this variabel.
[ code verwijderd ]

Zo programmeer je static functies (niet kijken naar de classes, kon even niets beters verzinnen :P ), maar je niet zomaar een static functie als een normale functie gebruiken. Dan komt het overloaden verhaal weer om de hoek kijken.
Ik vind die code lelijk, maar dat komt vooral omdat functienamen en propertyname met een hoofdletter beginnen. Da's wel gebruikelijk voor class names, niet voor andere dingen. En die static functie heb je niet nodig als je dit kunt doen:
1
2
3
<?php
$query 
= new String('SELECT ')->concat(new String ('FROM ')) 
?>
quote:
Duidelijk dat PHP en OO wereld twee andere dingen bedoelen. Ik doel op hoe het in OO wereld hoort: http://en.wikipedia.org/wiki/Function_overloading
In PHP kun je een functie maken die optionele parameters heeft. Dat is vergelijkbaar met je overloading voorbeeld.
quote:
Liever op de c# manier
[ code verwijderd ]
Ik vraag me af of er dynamically typed talen zijn waar dat in werkt.
pi_109625049
quote:
0s.gif Op woensdag 28 maart 2012 20:40 schreef totalvamp het volgende:

[..]

Ik zie niet zo snel het voordeel ervan in tegenover een eigen class maken.
Je kunt checks uitvoeren op je class variabelen. Of readonly variabelen maken.
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
class
{
    protected DateTime _Birthday;

    public DateTime BirthDay
    {
        set
        {
            if ( value > DateTime.Now )
            {
                // geboortedatum ligt in de toekomst dat kan niet
                throw new ArgumentOutOfRangeException();
            }

            this._Birthday = value;
        }
        get
        {
            return this.Birthday;
        }
    }

    public int Age
    {
        get
        {
            TimeSpan diff = DateTime.Now - this._Bithday;
            return (int) Math.Floor(diff.Days / 365.25);
        }
    }
}
abonnement Unibet Coolblue
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')