Tramite la sign dell'utente tarini mi sono imbattuto in questo simpatico progetto tutto italiano: PhpContest.
Sullo scopo
Se ogni contest prevede la pubblicazione delle classi presumo sia interessante sia dal punto di vista della competizione che da quello dell'utilità, sempre che le varie gare siano basate su richieste sensate per oggetti portabili e potenzialmente utili a tutti.
Sulla riuscita
Senza volere togliere niente agli organizzatori o promotori del sito vorrei sapere in base a cosa o in base a quali competenze la giuria possa valutare un oggetto migliore di altri.
Questa non vuole essere una critica, solo una riflessione sul fatto che il sito nasce per dimostrare le proprie capacità ma allo stesso tempo ci sono entità astratte e superiori che si reputano capaci di valutare effettivamente quale codice sia migliore di altri.
Secondo me gli stessi promotori potrebbero mettersi in discussione partecipando loro stessi al contest e pubblicare tutte le classi al fine di permettere, entro 5 giorni dalla pubblicazione, di votare gli script (magari tramite una lista di iscritti in modo da evitare o complicare la falsificazione del voto, anche perchè non si vince "niente").
Per concludere, sarebbe opportuno pubblicare tutti i codici inviati e non solo quelli vincenti così da aumentare la qualità delle proposte (se sono uno straniubbo non invio roba a caso tanto per provarci ma mi impegno poichè consapevole che il mio codice sarà pubblicato).
Questo vi aiuterebbe a gestire meglio il tutto, ovviamente è un'opinione personale.
Sul contest
Ora, seriamente, secondo voi quella richiesta è degna di un "compito da svolgere"?
una classe che implementi ... e stiamo parlando di OOP ... quindi voi fornite un'interfaccia (interface) Logger da implementare con un'altra classe?Realizzare una classe PHP che implementi un oggetto Logger
Oppure è un errore di concetto e bisogna fare una classe di nome Logger?
No perchè l'interfaccia non la vedo ...
su file txt ... nome a caso? I processi applicativi devono sfruttare in Singleton un'unica istanza?che permetta di loggare su file txt informazioni necessarie per monitorare lo stato dei processi applicativi.
quindi si sceglie solo il nome della cartella e non quello del file?Il costruttore (o eventuali metodi setter) deve permettere di selezionare la cartella dove salvare i file
ma poi perchè i file al plurale? Ogni oggetto deve verificare da solo (dato che si specifica una folder e non un file) che non stia sovraswcrivendo altro di già presente?
cosa significa? Sono costanti pubbliche dell'oggetto? Costanti globali dichiarate dal file?e il livello di logging che si vuole registrare. I livelli possibili sono 4: none, debug, warning, error
Sono in ordine per il numero associato? none=>0, debug=>1, warning=>2, error=>3 ... sono stringhe?
se impostato nel costruttore? e se è un setter o una statica pubblica?Un livello debug, registrerà tutte le invocazioni, un livello warning solo le invocazioni warning ed error, un livello error solo le indicazioni più gravi. Questo permetterà di loggare solo quei messaggi che rientrano nel livello desiderato (se imposto nel costruttore un livello warning, i messaggi identificati come debug verranno skippati).
Cosa si intende per "permetterà di loggare", un error_handler? un metodo da richiamare da altri error_handler come callback? un metodo da usare a mano in ogni dove e più scomodo per lo scopo prefissato?
che cosa significa modificare il costruttore?Il livello none permetterà di disattivare il logging in maniera rapida, modificando solamente il costruttore.
automaticamente? come callback handler? come metodo di istanza?Il metodo principale deve ricevere il messaggio e il livello di debug associato.
il file inteso come __FILE__ dato che non è previsto l'invio al metodo del file o meglio, non è specificato quanti parametri debba supportare (se è un handler diversi e non solo 2)La classe deve registrare, oltre al messaggio, anche l'ora e la data della chiamata, il file che ha invocato l'oggetto, l'ip corrente del client e ovviamente il livello corrispettivo.
Tutto questo per incitarvi a proseguire con il progetto che ritengo interessante, ma che almeno si capisca al dettaglio lo scopo del contest ed il risultato finale desiderato, spero concordiate con me, in fondo sono spunti per aiutarvi a migliorare l'iniziativa rendendola meno "vaga" e un pò più seria fin dalla descrizione dello stesso contest (tornando al post di Edit, a me piacciono le iniziative tutte italiane, senza mettere in mezzo nazionalismo o altri concetti a mio avviso eccessivi)![]()