include, haakjes of niet?
Maakt het bij een include / require uit of je haakjes gebruikt of niet?
Dus:
is er verschil tussen:
include ('mijnbestand.php');
en
include 'mijnbestand.php';
Zit er een verschil in snelheid, of maakt dat niet uit?
Indien het niets uitmaakt, wat is dan het meest gebruikelijk?
Dus:
is er verschil tussen:
include ('mijnbestand.php');
en
include 'mijnbestand.php';
Zit er een verschil in snelheid, of maakt dat niet uit?
Indien het niets uitmaakt, wat is dan het meest gebruikelijk?
Ik gebruik altijd include 'mijnbestand.php';
er zit geen verschil in snelheid en dit vind ik mooier,
aan de andere kant kan je ook zeggen, dat alle functies met haakjes geschreven worden, dus als je die regelmaat vasthoud krijg je include('mijnbestand.php');
er zit geen verschil in snelheid en dit vind ik mooier,
aan de andere kant kan je ook zeggen, dat alle functies met haakjes geschreven worden, dus als je die regelmaat vasthoud krijg je include('mijnbestand.php');
Hmmm oké. Jij gebruikt dus geen haakjes. Thanks!
Ik gebruik ze ook niet. Andere grote frameworks ook niet, maar ik heb eigenlijk nooit erachter kunnen komen waarom niet.
Maar als je een goede autoloader stack hebt dan zou je niet eens include statements nodig hebben :)
Maar als je een goede autoloader stack hebt dan zou je niet eens include statements nodig hebben :)
Ik gebruikte ze eerst wel, alleen ik heb me laten vertellen dat het inderdaad niet nodig is dus nu leer ik het mezelf af.
@Kees:
Nou, daar ben ik nu precies mee bezig om die te maken :)
Maar ik moet natuurlijk vantevoren een paar filetjes includen..
Maar leuk hoor, ik gebruik (de oude) Zend Studio 5.5 en die editor ondersteunt geen namespaces. Dus nu ga ik het maar op de "ouderwetste manier" proberen. Dus:
$model = new BackEnd_Model_Test();
Alleen nu vraag ik me dus wel iets af. Ik heb zowel voor m'n cms als de website zelf een "models", "controllers" en "library" map waarin classes kunnen staan. Dus 6 mappen in totaal.
Nu wil ik dus aan de hand van de naamgeving aan de autoload functie laten weten waar ie het bestand moet zoeken.
Dus ik had bedacht dat ik dan de eerste 2 woorden extraheer, in bovengenoemd voorbeeld "BackEnd" en "Model" en dat ik dit dan vertaal in de juiste directory "/var/private/backend/models/" en dat ik dan in die map controleer of het bestand Test.php bestaat. Zo ja, dan include ik die (of beter include_once).
Is dat een goede manier denk je?
Nou, daar ben ik nu precies mee bezig om die te maken :)
Maar ik moet natuurlijk vantevoren een paar filetjes includen..
Maar leuk hoor, ik gebruik (de oude) Zend Studio 5.5 en die editor ondersteunt geen namespaces. Dus nu ga ik het maar op de "ouderwetste manier" proberen. Dus:
$model = new BackEnd_Model_Test();
Alleen nu vraag ik me dus wel iets af. Ik heb zowel voor m'n cms als de website zelf een "models", "controllers" en "library" map waarin classes kunnen staan. Dus 6 mappen in totaal.
Nu wil ik dus aan de hand van de naamgeving aan de autoload functie laten weten waar ie het bestand moet zoeken.
Dus ik had bedacht dat ik dan de eerste 2 woorden extraheer, in bovengenoemd voorbeeld "BackEnd" en "Model" en dat ik dit dan vertaal in de juiste directory "/var/private/backend/models/" en dat ik dan in die map controleer of het bestand Test.php bestaat. Zo ja, dan include ik die (of beter include_once).
Is dat een goede manier denk je?
Gewijzigd op 08/02/2012 09:46:41 door Ozzie PHP
Ik gebruik altijd include_once met (), waarom? omdat alle PHP functies () hebben. Waarom dan niet alles met ()? Dat vind ik wel zo duidelijk :)
Doe jij een echo dan ook met haakjes?
Dus: echo('hallo);
?
Dus: echo('hallo);
?
De reden dat include ook zonder haakjes gebruikt kan worden is omdat het een language construct is, net zoals echo bijvoorbeeld.
Maar waarom gebruik je Zend Studio? Als ik jou was zou ik overstappen naar NetBeans of Eclipse, of de nieuwste Zend Studio. Ik heb een aantal jaar Zend Studio gebruikt maar ben er geen fan meer van.
Wat je ook kunt doen is bijvoorbeeld de Zend_Loader auto loader gebruiken. Dan hoef je dat allemaal niet zelf te schrijven. Die kan met namespaces en de Classes_Met_Underscores omgaan. Als je wat Googled vindt je voldoende voorbeelden om de autoloader alleen los te gebruiken. Je hoeft daarvoor niet perse het hele framework te gebruiken (al zou ik dat wel doen :p).
Maar waarom gebruik je Zend Studio? Als ik jou was zou ik overstappen naar NetBeans of Eclipse, of de nieuwste Zend Studio. Ik heb een aantal jaar Zend Studio gebruikt maar ben er geen fan meer van.
Wat je ook kunt doen is bijvoorbeeld de Zend_Loader auto loader gebruiken. Dan hoef je dat allemaal niet zelf te schrijven. Die kan met namespaces en de Classes_Met_Underscores omgaan. Als je wat Googled vindt je voldoende voorbeelden om de autoloader alleen los te gebruiken. Je hoeft daarvoor niet perse het hele framework te gebruiken (al zou ik dat wel doen :p).
@Kees: ik gebruik het Zend framework helemaal niet. Ben een eigen framework aan het maken. Maar is mijn idee voor de autloader zoals hierboven omschreven oké? Kan het er mee door? Is het een optie? Of is er iets wat ik dan wezenlijk verkeerd doe?
Zend Studio (de oude versie) vind ik nog altijd het prettigste werken. Heb al veel andere editors geprobeerd, maar ik blijf terugkomen bij Zend Studio.
Zend Studio (de oude versie) vind ik nog altijd het prettigste werken. Heb al veel andere editors geprobeerd, maar ik blijf terugkomen bij Zend Studio.
heb je ook al PHPdesigner gebruikt? Werkt erg prettig. is helaas wel betaald
Zou goed kunnen dat ik die geprobeerd heb (weet het niet zeker), maar op de een of andere manier doet Zend Studio altijd precies wat ik wil en wat ik verwacht :)
Ik had precies hetzelfde als jou Ozzie ;) maar dat heeft meer met gewoonte te maken denk ik. Als jezelf dwingt een tijdje te werken met een andere editor dan zul je er wel vanaf stappen denk ik. Niet als je een dag met een andere editor werkt.
Zend Studio biedt eigenlijk alleen toegevoegde waarde als je ook echt Zend producten gebruikt. Dus bijvoorbeeld debuggen met Zend Server en dat soort dingen. 5.5 is ook al echt oud, maar vanaf alle versies daarboven werdt het voor mij onoverzichtelijk. Daarom gebruik ik nu NetBeans, heel veel mogelijkheden maar niet overdone en overzichtelijk.
Je zal later misschien wel meer behoefte krijgen aan een overstap als je unit testing toepast of bijvoorbeeld xdebug wilt integreren met je editor.
Wat betreft je autoloader manier, lijkt me opzich prima. Bouw je een eigen framework voor de leer curve? En waarom zou een eigen framework niet mogen bestaan uit componenten van andere frameworks?
De manier die omschrijft lijkt me prima. Dit is ook hoe de autoloader van ZF werkt. Ook zou ik proberen toch gebruik te maken van namespaces. Gebruik trouwens ook de spl autoloader en niet de PHP magic __autoload. Met de SPL autoloader kun je een stack maken van meerdere autoloaders :) Bijvoorbeeld een autoloader voor je viewhelpers, of models of framework classes, anders krijg je een enorme __autoload functie ;-)
Zend Studio biedt eigenlijk alleen toegevoegde waarde als je ook echt Zend producten gebruikt. Dus bijvoorbeeld debuggen met Zend Server en dat soort dingen. 5.5 is ook al echt oud, maar vanaf alle versies daarboven werdt het voor mij onoverzichtelijk. Daarom gebruik ik nu NetBeans, heel veel mogelijkheden maar niet overdone en overzichtelijk.
Je zal later misschien wel meer behoefte krijgen aan een overstap als je unit testing toepast of bijvoorbeeld xdebug wilt integreren met je editor.
Wat betreft je autoloader manier, lijkt me opzich prima. Bouw je een eigen framework voor de leer curve? En waarom zou een eigen framework niet mogen bestaan uit componenten van andere frameworks?
De manier die omschrijft lijkt me prima. Dit is ook hoe de autoloader van ZF werkt. Ook zou ik proberen toch gebruik te maken van namespaces. Gebruik trouwens ook de spl autoloader en niet de PHP magic __autoload. Met de SPL autoloader kun je een stack maken van meerdere autoloaders :) Bijvoorbeeld een autoloader voor je viewhelpers, of models of framework classes, anders krijg je een enorme __autoload functie ;-)
@Kees: ik heb een tijdje (toevallig) met NetBeans gewerkt omdat iedereen bij dat bedrijf dat deed. Maar dat (standaard) letertype daarvan beviel me voor geen meter. Op een gegeven moment heb ik alles zoveel mogelijk aangepast naar de kleuren van Zend Studio en toen werd het al beter. Maar ik weet niet wat het is. Zend Studio 5.5 "klopt" voor mij op de een of andere manier. Ik heb ook de hogere versies geprobeerd, maar die waren traag als d1kke str#nt door een trechter :)
Het framework is niet voor de leercurve, maar voor het echie :)
Wat bedoel je met spl autoloader? Ik gebruik nu de __autolaod, maar volgens mij hoeft die niet heel groot te worden?
Het framework is niet voor de leercurve, maar voor het echie :)
Wat bedoel je met spl autoloader? Ik gebruik nu de __autolaod, maar volgens mij hoeft die niet heel groot te worden?
Gewijzigd op 08/02/2012 11:02:31 door Ozzie PHP
De SPL versie aan te raden omdat je anders mogelijk in de knoop raakt als je third-party software gaat integreren in je applicatie met de __autoload. Het voordeel van de SPL autoloader is dat je meerdere __autoloaders kan registreren.
Maar je kunt anders het beste even op de PHP manual kijken, dan begrijp je het wel denk ik.
Maar waarom een eigen framework? Heb je daar een reden voor? Of had je daar al een keer over gediscussieerd met mede leden? (kan me daar iets van herinneren iig)
Maar je kunt anders het beste even op de PHP manual kijken, dan begrijp je het wel denk ik.
Maar waarom een eigen framework? Heb je daar een reden voor? Of had je daar al een keer over gediscussieerd met mede leden? (kan me daar iets van herinneren iig)
Eigen framework zodat ik alles in eigen beheer heb en precies zo kan maken als ik het zelf wil. Op maat en efficiënt :) (de discussie is inderdaad al eerder gevoerd ;))
Ik heb het even doorgelezen, maar ik snap niet exact hoe het werkt of wat het voordeel is. Ik denk dat ik het (voor nu) maar bij de gewone __autoload laat. Wellicht als ik in een later stadium kom, dat ik het nog aanpas, maar volgens mij red ik het wel met __autoload.
Ik heb het even doorgelezen, maar ik snap niet exact hoe het werkt of wat het voordeel is. Ik denk dat ik het (voor nu) maar bij de gewone __autoload laat. Wellicht als ik in een later stadium kom, dat ik het nog aanpas, maar volgens mij red ik het wel met __autoload.
Ik gebruik nooit haakjes. Het is een language construct en geen functie en daarom is het zonder haakjes.
En tevens ben ik ruby gewent en daar zijn haakjes bij alles overbodig:
In PHP:
@kees, die spl loader ziet er mooi uit. Ga er eens goed naar kijken.
@Ozzie, ik merk dat je dus geen namespaces gaat gebruiken? (hoef ik je ook niet meer terug te mailen)
En tevens ben ik ruby gewent en daar zijn haakjes bij alles overbodig:
In PHP:
@kees, die spl loader ziet er mooi uit. Ga er eens goed naar kijken.
@Ozzie, ik merk dat je dus geen namespaces gaat gebruiken? (hoef ik je ook niet meer terug te mailen)
Edit:
De discussie is hier te vinden: http://www.phphulp.nl/php/forum/topic/eigen-framework-beheersysteem/75343/
Gewijzigd op 08/02/2012 11:34:00 door Wouter J
Wouter J op 08/02/2012 11:31:40:
@Ozzie, ik merk dat je dus geen namespaces gaat gebruiken? (hoef ik je ook niet meer terug te mailen)
Nee inderdaad. M'n (heilige) editor ondersteunt het niet :(
Dus inderdaad maar op de "oude" manier. Thanks for the help though! :)
Ozzie PHP op 08/02/2012 11:30:55:
Eigen framework zodat ik alles in eigen beheer heb en precies zo kan maken als ik het zelf wil. Op maat en efficiënt :) (de discussie is inderdaad al eerder gevoerd ;))
Ik ben echt absoluut geen voorstander van een eigen framework ontwikkelen. Zeker niet voor een commercieel product waar geld mee verdient moet worden (later). Maar goed, ik heb die discussie destijds links laten liggen volgens mij want heb er een hele duidelijk mening over maar die zal ik je besparen haha.
Ozzie PHP op 08/02/2012 11:30:55:
Ik heb het even doorgelezen, maar ik snap niet exact hoe het werkt of wat het voordeel is. Ik denk dat ik het (voor nu) maar bij de gewone __autoload laat. Wellicht als ik in een later stadium kom, dat ik het nog aanpas, maar volgens mij red ik het wel met __autoload.
Lees je mijn bericht wel? Ik leg volgens mij vrij duidelijk uit wat de voordelen zijn? Wat begrijp je er precies niet aan? Verder zou ik je toch wat meer verdiepen aangezien de __autoload door PHP zelf ook afgeraden wordt:
Quote:
spl_autoload_register() provides a more flexible alternative for autoloading classes. For this reason, using __autoload() is discouraged and may be deprecated or removed in the future.
Bron: http://www.php.net/manual/en/language.oop5.autoload.php
include is geen functie, maar een operator.
Net zoals echo, print, (+, -, ...), ( ? : ), ==, ...
Zie http://php.net/manual/en/language.operators.php
Die vereisen geen haakjes.
----
Een programmeertaal zonder operatoren, is vrij lastig.
Neem nu LISP
Wat in php zo gaat:
schrijf je in LISP zo:
Of stel dat je in PHP zoiets zou moeten doen:
Waarbij dus = een functie is, net zoals + en /.
Echt gezellig en overzichtelijk is dit niet he.
Leve de operaror!
Net zoals echo, print, (+, -, ...), ( ? : ), ==, ...
Zie http://php.net/manual/en/language.operators.php
Die vereisen geen haakjes.
----
Een programmeertaal zonder operatoren, is vrij lastig.
Neem nu LISP
Wat in php zo gaat:
schrijf je in LISP zo:
Of stel dat je in PHP zoiets zou moeten doen:
Waarbij dus = een functie is, net zoals + en /.
Echt gezellig en overzichtelijk is dit niet he.
Leve de operaror!
Kees, uiteraard lees ik wat je schrijft, maar dat wil niet zeggen dat ik de voordelen (direct) begrijp. Jij schrijft:
"De SPL versie aan te raden omdat je anders mogelijk in de knoop raakt als je third-party software gaat integreren in je applicatie met de __autoload. Het voordeel van de SPL autoloader is dat je meerdere __autoloaders kan registreren."
Ik ben niet van plan om third-part software te installeren, en ik begrijp dus niet wat je bedoelt met meerdere autoloaders. Ik heb die pagina bekeken, maar ik begrijp niet wat ik met die spl_autoloader kan wat ik met __autoload niet kan. Wellicht kun je me een heel simpel voorbeeldje geven waardoor ik het licht ga zien? :-)
"De SPL versie aan te raden omdat je anders mogelijk in de knoop raakt als je third-party software gaat integreren in je applicatie met de __autoload. Het voordeel van de SPL autoloader is dat je meerdere __autoloaders kan registreren."
Ik ben niet van plan om third-part software te installeren, en ik begrijp dus niet wat je bedoelt met meerdere autoloaders. Ik heb die pagina bekeken, maar ik begrijp niet wat ik met die spl_autoloader kan wat ik met __autoload niet kan. Wellicht kun je me een heel simpel voorbeeldje geven waardoor ik het licht ga zien? :-)




