Corsi di sviluppo e programmazione
27/05/2020 09:04:17 e modificato da dyrr il 27/05/2020 09:26:54
Il gdrcd 7 è in cantiere da un po', riscritto da zero, con molta calma (specifico il molta calma) ma lo è, non è una cosache ci si è svegliati ieri a farla
L'esempio della scheda era per far capire come non è tutto questo problema rendere modulare la cosa sia nella versione nuova sia se si vuole farlo nella versione vecchia.
27/05/2020 09:18:49
dyrr ha scritto: Il gdrcd 7 è in cantiere da un po', riscritto da zero, con molta calma (specifico il molta calma) ma lo è, non è una cosache ci si è svegliati ieri a farla
Giusto una curiosità:
Come mai hai ( o avete, nel caso ) deciso di non portare avanti o rifare GDRCD6 e sei passato direttamente a GDRCD7?
27/05/2020 09:30:20 e modificato da gdr-online.com il 27/05/2020 09:43:05
kasa ha scritto: [quote]dyrr ha scritto:
[...]
Come mai hai ( o avete, nel caso ) deciso di non portare avanti o rifare GDRCD6 e sei passato direttamente a GDRCD7?
[/quote]
La scelta è stata semplice: il gdrcd 6 aveva solo poche righe di codice, era stato lasciato li, e siccome avevo in mente uno schema un po' diverso della cosa a partire dalla struttura proprio anche delle cartelle per ordinarle, che ho deciso che per come intendevo strutturarlo io ripartire da zero era più pratico, per quello che avevo in mente
27/05/2020 11:09:34
Bellissima idea e bellissimo spirito!
Io sono un grande fruitore di guide online per qualsiasi cosa.
Solo ieri ho visto e letto una serie di tutorial per attaccare la Wii ad un televisore moderno; uno per creare una flotta competitiva in HOI4; una guida per fare le breaking room su Zoom.
Come end user, credo di essere veramente tanto indietro per usufruire della tua guida, comunque tu la faccia, però ti posso dire cosa serve ad uno che cerca una risposta su internet perché sono spesso quell'uno.
Se la mia esigenza è "troviamo una risposta rapida ad un problema che mi sono trovato davanti", l'ideale è un video su youtube: arriva facile, ti spiega come fare, spesso ti fa vedere l'effetto finale e si vede facile.
Se l'esigenza invece è "capiamo per bene come funziona qualcosa" mi serve una guida scritta, dettagliata, possibilmente divisa in capitoli che sono altrettante pagine e link ipertestuali tra l'una e l'altra.
Secondo me il tuo scopo è il primo. Tra l'altro, il secondo è una fatica immane e magari puoi provare ad iniziarlo in un secondo momento, se ti regge l'entusiasmo.
Come consiglio, ti direi di usare un sistema "misto": fai il video e poi o usi il footer del video per scrivere quel che ti interessa oppure ci metti link ad esempi di quello che hai scritto.
Sul nuovo GDRCD / cose nuove / ecc.
Non vi posso aiutare in tema di programmazione, ma vi posso suggerire una licenza utile. Una delle cose che avrebbe aiutato il vecchio GDRCD a migliorare da solo è una licenza tipo "questo prodotto lo puoi usare gratis dove vuoi, quando vuoi, per sempre. Però se apporti modifiche, migliorie ecc, le modifiche e migliorie rientrano anche loro nella licenza gratuita e sei tenuto a pubblicarle".
Così ogni volta che qualcuno migliora il prodotto, lo migliora per tutti e non solo per il singolo gioco.
27/05/2020 13:00:23
kasa ha scritto:
Come mai hai ( o avete, nel caso ) deciso di non portare avanti o rifare GDRCD6 e sei passato direttamente a GDRCD7?
Se può farlo php possiamo farlo anche noi!
A proposito... dyrr, ma esiste già un repository per il GDRCD7 o ci stai lavorando in locale? Più che altro volevo dare un consiglio per la gestione delle query al database, io mi sto trovando benissimo con questa classe SafeMySQL che semplifica molto la sintassi (la trovo decisamente meno ingombrante di una cosa come gdrcd_filter):
https://github.com/colshrapnel/safemysql ↗
27/05/2020 13:55:55 e modificato da dyrr il 27/05/2020 14:10:57
Non esiste un repository perchè lo metterò quando sarà una versione usabile con almeno tutte le funzioni base.
Per l'interrogazione al database il gdrcd 7 usa una classe nativa che permette di scegliere come estensione di connessione al database:
- PDO (default)
- MySQLi con o senza native driver
senza dover cambiare la sintassi se si cambia per qualche motivo l'estensione usato e inviando SOLO prepared statements al database quindi prevenendo ogni forma possibile di sql injection
$query = "SELECT
idpg
FROM pg
WHERE
nome = ?
LIMIT 0,1";
$param = array();
$param[] = array(
'value' => trim($nome),
'type' => $this->conn::PARAM_STR
);
$result = $this->conn->stmt($query,$param);
27/05/2020 14:35:22 e modificato da quod il 27/05/2020 14:36:49
dyrr ha scritto: inviando SOLO prepared statements al database quindi prevenendo ogni forma possibile di sql injection
Beh, quello lo fa anche la classe che ti ho linkato... comunque non ho capito, bisogna scrivere tutto quel bloccone di codice che hai riportato ad ogni query nel codice utente? Se sì, invito nuovamente a buttare un occhio a quella pagina (ho visto che il tizio ha fatto anche un wrapper per PDO nello stesso stile). La genialata lì è che usa una sintassi in stile printf con dei placeholder che possono andare anche a sostituire i nomi delle colonne:
$field = $_POST['field'];
$value = $_POST['value'];
$sql = "SELECT * FROM table WHERE ?n LIKE ?s";
$data = $db->query($sql,$field,"%$value%");
O anche interi array:
$array = array(1,2,3);
$data = $db->query("SELECT * FROM table WHERE id IN (?a)",$array);
Non dico di buttare via quello che hai già scritto, ma come utente del GDRCD7 mi piacerebbe assai poter scrivere le query in un modo simile senza un overhead di quattro righe per preparare gli statement tutte le volte.
27/05/2020 14:45:00 e modificato da kasa il 27/05/2020 14:55:19
dyrr ha scritto:
La scelta è stata semplice: il gdrcd 6 aveva solo poche righe di codice, era stato lasciato li, e siccome avevo in mente uno schema un po' diverso della cosa a partire dalla struttura proprio anche delle cartelle per ordinarle, che ho deciso che per come intendevo strutturarlo io ripartire da zero era più pratico, per quello che avevo in mente
Seems legit.
Ho visto i video YT e sembra mucho interessante! 😲
In ogni caso, dato che l'argomento si è leggermente spostato rispetto a quello originale, forse è meglio tirare le somme in merito alla possibilità di intavolare nuovamente il discorso "Nuovo GDRCD" ed affrontarlo in maniera più approfondita in una nuova discussione focalizzata.
27/05/2020 14:52:43 e modificato da dyrr il 27/05/2020 15:01:30
non è un bloccone di codice, è solo che a me piace per ordine scrivere le query in verticale invece che in orizzontale e mipiace per paranoia mia resettare l'array dei parametri ogni volta che facico una query.
la sintassi minima è questa:
$query = "SELECT idpg FROM pg WHERE nome = ? LIMIT 0,1";
$param[] = array('value' => trim($nome));
$result = $this->conn->stmt($query,$param);
3 righe anche qui come vedi, 2 se incorpori la query direttamente nella chiamata alla funzione.
Diventano di più se vuoi essere più puntiglioso, come per esempio appunto definendo il tipo di dato che si aspetta come parametro, ma se non interessa quello sono tre righe"
27/05/2020 15:25:53 e modificato da quod il 27/05/2020 15:29:42
dyrr ha scritto:
$query = "SELECT idpg FROM pg WHERE nome = ? LIMIT 0,1";
$param[] = array('value' => trim($nome));
$result = $this->conn->stmt($query,$param);
3 righe anche qui come vedi, 2 se incorpori la query direttamente nella chiamata alla funzione.
Diventano di più se vuoi essere più puntiglioso, come per esempio appunto definendo il tipo di dato che si aspetta come parametro, ma se non interessa quello sono tre righe"
Sì, ok, ma come dicevo io verrebbe fuori così (quando vedi ?s sai già che l'unico parametro sarà una stringa e verrà validata come stringa):
$result = $this->query("SELECT idpg FROM pg WHERE nome = ?s LIMIT 0,1", trim($nome) );
Anzi, meglio ancora:
$result = $this->getOne("SELECT idpg FROM pg WHERE nome = ?s", trim($nome) );
Con getOne ti restituisce direttamente uno scalare senza doverlo estrarre da $result.
Boh, io l'ho buttata lì, ma secondo me un approccio del genere ha diversi vantaggi.
A ogni modo, condivido il suggerimento di kasa di spostarci su una discussione imperniata sul GDRCD7 (c'è qualche altra cosina di cui credo varrebbe la pena discutere prima ancora di avere una versione funzionante).
Discussione seguita da
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
Exclusive Villa GdR ↗
The Coven ↗
RAID Shadow Legends ↗
World of Tanks ↗
New Orleans ↗
AlterEgo ↗
Fallen Gods ↗
World of Warship ↗
Neverness to Everness ↗