Extenden.. en vervolgens d.m.v. de magic __get methode de resources voor het object samenstellen, sorry ik snap er nou eenmaal niks van
Posts by M.Beers
-
-
Wat DirkZz zegt... je moet gebruik maken van koppel tabellen beter te beheren + beter voor je database.
-
Als het goed is moet de onderstaande classe een hoop doen... mits ik het goed begrepen heb
dit is voor setter/getter injections dan...
PHP
Toon Meer<?php namespace Delicious; class Object { /** * Return the full name of the class. * * @return string */ public static function className() { return get_called_class(); } /** * Class constructor. * * @return void */ public function __construct() { // Do nothing for now... $this->init(); } /** * Return the value of an object property. * * @param string $name Property name. * @return mixed * @throws \Exception Whether a object is not defined. */ public function __get($name) { $getter = 'get' . ucfirst($name); if (method_exists($getter)) { $this->{$getter}(); } else { throw new \Exception("Getting unknown property: " . get_class($this) . "::" . $name); } } /** * Set value of an object property. * * @param string $name Property name. * @param mixed $value Property value. * @return void * @throws \Exception Whether an object is read-only or not defined. */ public function __set($name, $value) { $setter = 'set' . ucfirst($name); if (method_exists($this, $setter)) { $this->{$setter}($value); } elseif (method_exists($this, 'get' . ucfirst($name))) { throw new \Exception("Setting read-only property: " . get_class($this) . "::" . $name); } else { throw new \Exception("Setting unknown property: " . get_class($this) . "::" . $name); } } /** * Check whether an property is set (not null). * * @param string $name Property name. * @return boolean */ public function __isset($name) { $getter = 'get' . ucfirst($name); if (method_exists($this, $getter)) { return ($this->{$getter}() !== null); } else { return false; } } /** * Set an object property to null. * * @param string $name Property name. * @return void */ public function __unset($name) { $setter = 'set' . ucfirst($name); if (method_exists($this, $setter)) { $this->{$setter}(null); } elseif (method_exists($this, 'get' . ucfirst($name))) { throw new \Exception("Unset read-only property: " . get_class($this) . "::" . $name); } } /** * Calls the named method, wich is not a class method. * * @param string $name Method name. * @param array $param Method parameters. * @return void * @throws \Exception Whether calling an unknown method */ public function __call($name, array $params) { $getter = 'get' . ucfirst($name); if (method_exists($this, $getter)) { $function = $this->{$getter}(); if ($function instanceof \Closure) { return call_user_func_array($function, $params); } } throw new \Exception("Unknown method: " . get_class($this) . "::" . $name . "()"); } /** * Initialize the object. * * This function will be invoked after the constructor. */ public function init() { // Do nothing... } } ?>
-
Stefan.J Ik heb inmiddels een PDF gelezen van Fabien Potencier (maken van Symfony) 104 pagina's, alleen ik snap het niet echt...
Hoe zorg ik bijvoorbeeld dat ik die resources kan aanroepen zonder dat ik telkens een nieuwe container hoef te maken want dat is toch t voordeel om je overhead te beperken... -
GiovanniK Alle frameworks bevatten wel een index.php alleen staat deze vaak in een public directory...
Dat betekend dat de rest van je code of het framework op een prive gedeelte van de server komt te staan, en mensen dit niet zomaar kunnen aanroepen omdat ze hiervoor geen rechten hebben. CodeIgniter bijvoorbeeld heeft het opgelost door werkelijk in ELK bestand te zetten: defined('BASEPATH') OR exit('No direct script access allowed');, maar zodra je dit één keer vergeet dan is je applicatie eigenlijk al onveilig. -
Ik zit op de HvA
Edit: Ik ga zeker even zoeken want ik heb hier weinig van gehoord nog...
-
Je begint je class JavaDoc altijd met de naam van de class. Dit is overbodig, exporteer de JavaDoc maar eens met PHPDoc.
Hier heb ik nog geen prioriteit aan gesteld dus word later gewijzigdevengoed bedankt voor de opmerking.
Je hebt common functies. Waarom zitten deze functies niet in de correcte classes?
Geen idee eigenlijk, momenteel nog niet echt naar gekeken omdat deze geen prioriteit hadden en simpel te vervangen zijn.Je gebruikt een underscore als prefix voor private (en protected?) velden. Waarom doe je dat? Heeft het echt toegevoegde waarde?
Is natuurlijk geen toegevoegde waarde, meer een herkenningspunt voor mezelf en niet echt storend ofzo.Meerdere classes zijn singletons in je framework. Negen van de tien keer heb je singletons helemaal niet nodig. In jouw geval denk ik ook niet. Singletons hebben veel nadelen.
Dit zijn momenteel 2 classes, hier heb ik voor gekozen omdat je deze echt maar 1x gebruikt binnen het hele framework, namelijk de URL Request en de Routing van de URL Request. Hier heb ik een tijd over getwijfeld dus ik ga dit nog herzien.Waarom is een Controller een ResourceLoader? Die link zie ik niet, volgens mij is dat een fout in je architectuur.
Momenteel is dit nog apart omdat ik misschien ook mijn basis Model toegang wil geven tot de Resources vandaar een extensie met een Resourceloader.Verder doe ik een informatica opleiding, net het 2e jaar pas. Wat wordt er met dependency injections bedoelt, interfaces enzo?
-
PHP
Toon Meer<?php $date = new DateTime(null, new DateTimeZone('Europe/Amsterdam')); function nextWeek($date) { $d = clone $date; $d->modify("+1 week"); return $d->format("Y-m-d"); } function prevWeek($date) { $d = clone $date; $d->modify("-1 week"); return $d->format("Y-m-d"); } echo nextWeek($date); echo prevWeek($date); ?>
Je bent daarin geheel vrij om deze datum te manipuleren via de Relative Fromats die strtotime ook gebruikt...
http://www.php.net/manual/en/datetime.formats.relative.php -
Wat jij denk ik wil is echt super simpel...
PHP
Toon Meer<?php // Send the player to the jail. if ($_GET['a'] != 'jail') { $query = mysql_query("SELECT *, UNIX_TIMESTAMP(`baktijd`) as bt FROM `useres` WHERE `login` = '{$data->login}'"); $result = mysql_fetch_object($query); $jail_time = 30; // Jail time in seconds... $delta_time = time() - $result->bt; // Very simple calculation.. current time - jail time // Check whether a user should send to jail. // Whether the delta time is higher then the jail time in seconds. if ($delta_time > $jail_time) { //Redirect to jail. } // Check whether a user is banned. if ($result->ban == 1 && $_GET['a'] != 'verbannen' && $_GET['a'] != 'message') { //Redirect banned user. } } ?>
-
Ik gebruik zelf altijd het DateTime() samen met het DateTimeZone() object van PHP
Hierdoor kan je heel makkelijk functies maken door simpelweg de clone() magical function aan te roepen...PHP<?php $date = new DateTime(null, new DateTimeZone('Europe/Amsterdam')); $date->modify("Monday this week"); echo $date->format('Y-m-d') . "\n"; ?>
-
Je code zit ook vol fouten
dit begint eigenlijk al in je eerste regel code... probeer dat eerst eens op te schonen
Verder ben je heel omslachtig bezig denk ik met wat je uiteindelijk wil bereiken...p.s. Ik heb even je code door een formatter gehaald en gecorrigeerd
zodat andere ook fatsoenlijk kunnen helpen.
PHP
Toon Meer<?php //Send player to jail if ($_GET['a'] != jail) { $bajes2 = mysql_query("SELECT *,UNIX_TIMESTAMP(`baktijd`) AS `baktijd` FROM `users` WHERE `login`='$data->login'"); $bajes1 = mysql_fetch_object($bajes2); $datijd = $data->gevangenis; $tijdverschil1 = $bajes1->baktijd - 3600 + $datijd - time(); if ($bajes1->baktijd + $datijd > time()) { header("Location: $sitelink/index.php?a=jail"); } if ($data->ban == 1 && $_GET['a'] != verbannen && $_GET['a'] != message) { header("Location: $sitelink/index.php?a=verbannen"); } } ?>
-
Dit topic is al iets ouder, maar om hem toch maar even te vervolgen...
Inmiddels heb ik alles aangepast + klaar voor nieuwe features op mijn lijst.Verder info:
Zonder server optimalisatie's laad het gehele framework momenteel in 0.00859 seconden, en gebruikt 592,368 bytes (~0,57 kb) met een piek van 1,310,720 bytes (~1,28kb)Dus mocht er interesse zijn in meer functionaliteit post it below
binnenkort zal ik een 2e release uitbrengen m.b.t. het topic:
Delicious Framework omdat ik deze niet kan bumpen...Alvast bedankt,
Michael
Edit @Koen Ik zal binnenkort even een kijkje nemen naar die hidden form met ID, werkt inderdaad wel effectief tegen bots denk ik zo.
-
Als het het hebben over webdesign, hebben we het over een concept maken en realiseren, iets wat ik eigenlijk mis... Al kan je nog zo goed vormgeven of programmeren, zonder concept heb je eigenlijk al 65% van je boodschap weggegooid.
Verder zou echt naar je teksten gaan kijken bij het eerste wat ik al zag zou ik al afhaken... ("Hoi, ik ben een beginnende webdeveloper.")
En je laadtijd is traag doordat je 17 bestanden hebt die je niet gebruikt of verkeerd inlaad en dan word 17 x ~50ms veel. -
@Tijmen, er bestaat ook zoiets als over-optimalisatie, en dan krijg je er juist strafpunten voor... dus dit kan ook irrelevant worden
-
Dit is geheel afhankelijk of mensen jouw willen vinden
de algoritmes van Google zijn dusdanig slim dat ze alles wat niet relevant is minder snel een PR geven...
Google's doel is om mensen relevante info te verstrekken, jouw doel dus om dusdanig nuttige info aan te bieden dat google dit relevant vindt.
-
Je éérste post... komt niet bepaald vertrouwelijk over zo, maar welkom op ICTscripters
Het je iets van een KvK + BTW nummer? -
Je maakt een denkfout ben ik bang... je zal waarschijnlijk alles binnen een click event hebben staan... alleen is dit in jQuery gewoon een object
waarom zet je die variables die je overal gebruikt niet gewoon in de global scope?
Edit: Verder is het zo dat de data parameter van ajax in jquery een object gebruikt om zijn data te verzenden... hier kan het ook nog misgaan.
-
Citaat
Ik vind UNICEF belangrijker dan KIKA sorry dat ik het zeg en ik vind kanker heel erg maar opgroeien als kind in een oorlogsland of in extreme armoede zonder scholing kan gewoon niet en daar houd je je hele leven trauma's en littekens aan over.
Deze mensen vallen niet te helpen door de corruptie binnen het land zelf...
Ik geen goeie doelen o.a. omdat:
- Wij in NL ook hulp nodig hebben, anders zijn er geen voedselbanken.
- Landen corrupt zijn.
- Problemen aan het verplaatsen zijn, hier milieu bewust bezig zijn maar vervolgens wel al onze spullen uit China importeren.Maar misschien wel het belangrijkste, je stuurt geld naar een organisatie, maar wanneer je vraag om een jaarplan of een bewijsstuk waarin je ziet wat er gedeclareerd word door directeuren etc. zullen deze organisaties moeilijk gaan doen.
Verder doneer ik ook geen bloed of iets dergelijks simpelweg omdat deze "eenheden" bloed doorverkocht worden voor +/- 260 euro per eenheid, wat vervolgens weer naar de directeuren gaat.
Kortom meer redenen om om NIET te doneren als wel te doneren.
-
@Swaffelaar ja zoiets ...
ik heb zelf niet echt gezocht namelijk ik beantwoord slechts een vraag
-
Het is bijna alleen maar JS ... en dit is gewoon moeilijk als je niet weet wat je doet vooral het schijven van physics enzo. Google even naar "canvas game tutorial" en je zal vast en zeker iets nuttigs vinden... HTML5 word alleen gebruik omdat je het cavnas element nodig hebt