Da developer, mi trovo spesso a dover decidere la combinazione tecnologica più adatta per i più svariati progetti web. Due delle opzioni più popolari nel mondo PHP sono Laravel con Vue.js e Laravel con React.js. Entrambe offrono un potente stack per lo sviluppo di applicazioni web moderne, ma presentano differenze significative che è importante comprendere.
Category Archives: Linguaggi
CSS: media query nel 2020
Usando min-width
// Small devices (landscape phones, 576px and up)
@media (min-width: 576px) { … }
// Medium devices (tablets, 768px and up)
@media (min-width: 768px) { … }
// Large devices (desktops, 992px and up)
@media (min-width: 992px) { … }
// Extra large devices (large desktops, 1200px and up)
@media (min-width: 1200px) { … }
Usando max-width
@media (max-width: 575.98px) { … }
// Small devices (landscape phones, less than 768px)
@media (max-width: 767.98px) { … }
// Medium devices (tablets, less than 992px)
@media (max-width: 991.98px) { … }
// Large devices (desktops, less than 1200px)
@media (max-width: 1199.98px) { … }
Framework per lo sviluppo mobile: PhoneJS
E’ molto tempo che non scrivo un post. La ragione è semplice: troppo lavoro.
Non che mi lamenti, sia chiaro. In questo periodo storico il vero problema è NON avere lavoro.
Tuttavia quando si è impegnati su più fronti lavorativi, si acquisiscono nuovi clienti e si imbastiscono nuovi progetti, anche trovare il tempo per scrivere un semplice post diventa un’impresa ardua. Leggi tutto
PHP: gestione dei form inviati tramite PDF
E’ sempre più frequente l’utilizzo di PDF per la distribuzione di questionari.
I questionari, una volta compilati, possono essere postati via internet in formato XML ad una pagina web che poi li raccoglie ed, eventualmente, li inserisce in un database. Leggi tutto
PHP: i 5 metodi per settare la scrittura degli errori
Con le dovute variazioni sintattiche ci sono 5 metodi per indicare quali (e quanti) errori generati dall’esecuzione di applicativi PHP scrivere nel file di log.
I punti sottostanti fanno riferimento ad un ambiente Ubuntu/Apache ma differiscono poco con gli altri ambienti.
- Nel file di configurazione php.ini. Scrivendo qui l’istruzione, questa avrà effetto su tutti i virtual hosts.
- Nella directory conf.d. Ad esempio in Ubuntu lo troviamo in /etc/php5/apache2/conf.d . Ogni file aggiunto in questa directory si aggiunge alle istruzioni di php.ini. Nel caso di ripetizione dell’istruzione, le istruzioni in conf.d hanno la precedenza. Anche qui gli effetti sono su tutti i virtual hosts.
- Nella configurazione del virtual host di Apache. Generalmente lo troviamo in /etc/apache2/sites-available. Ogni virtual host può avere le sue impostazioni personalizzate e queste ultime hanno la precedenza su quelle indicate nei due punti superiori.
- In .htaccess. E’ possibile indicare anche in questo file il livello di error_reporting degli errori PHP. In questo caso la sintassi prevede il tag php_flag . Ha effetto solo nelle cartelle dove risiede il file .htaccess ma ha prevalenza rispetto ai metodi summensionati. In questo caso non è necessario riavviare Apache.
- Nel codice sorgente. L’ultimo posto è proprio indicare nel codice sorgente PHP il livello di reportistica degli errori . Basta richiamare le funzioni “error_reporting()”oppure “ini_set(“error_reporting”)”
Maggiori info sulle funzioni di error_reporting
phpList: principali problemi subito dopo l’installazione (e le soluzioni)
phpList è il sistema di gestione newsletter open source più diffuso al mondo.
L’installazione non richiede particolari abilità ma mi sono capitate due seccature e una rogna, risolte grazie a Google e il forum di phpList.
Racchiudo tutto qua, in questo post, in modo da non dover cercare più in futuro (e per condividere ovviamente).
Prima seccatura:
Subito dopo l’installazione, si entra nel pannello di controllo ed esce questa scritta
Running in testmode, no emails will be sent. Check your config file.
Si risolve così. http://forums.phplist.com/viewtopic.php?p=38321
Apri config.php e setta
define ("TEST",0);
Seconda seccatura:
Se si clicca su “Invia un messaggio” si viene reindirizzati alla pagina 404 (not found).
Si risolve così. http://forums.phplist.com/viewtopic.php?t=4114
Apri sempre config.php e setta il percorso giusto a phpList
$pageroot = '/lists'; $adminpages = '/lists/admin';
Terza rogna:
In fase di composizione del messaggio non compare l’editor (FCKeditor).
Ci sono molte possibili cause ma a me ha funzionato in questo modo.
Cancellate la cache e poi editate il file /lists/admin/FCKeditor/editor/fckeditor.html
Cercate
// Base configuration file. //LoadScript( '../fckconfig.js' ) ; LoadScript( '../../?page=fckphplist&action=js4' ) ;
e modificate in
// Base configuration file. LoadScript( '../fckconfig.js' ) ; //LoadScript( '../../?page=fckphplist&action=js4' ) ;
Caricando quest’altro script l’editor diventa visibile (e usabile)
Link: phpList
jQuery: jTable un plugin per creare tabelle CRUD semplicemente
CRUD è un acronimo (Create, Read, Update, Delete) ma è anche il cruccio quotidiano di chi deve gestire dati all’interno di un database.
jTable è un plugin per la nota libreria jQuery che ci permette di creare tabelle per la gestione dei dati (CRUD appunto) scrivendo pochissimo codice HTML e con una piccola configurazione del javascript da inserire.
jTable funziona indipendentemente dal linguaggio di programmazione, utilizza AJAX per l’aggiornamento dei dati, è localizzato in molte lingue (italiano compreso), può funzionare con diversi temi predefiniti.
Il suo utilizzo base è semplicissimo. Basta includere oltre a jQuery le righe per il plugin e per il CSS del tema scelto
<!-- Include one of jTable styles. --> <link href="/jtable/themes/metro/blue/jtable.min.css" rel="stylesheet" type="text/css" /> <!-- Include jTable script file. --> <script src="/jtable/jquery.jtable.min.js" type="text/javascript"></script>
Poi si crea un contenitore
<div id="PersonTableContainer"></div>
E si aggiunge il javascript per creare l’istanza jTable
<script type="text/javascript"> $(document).ready(function () { $('#PersonTableContainer').jtable({ title: 'Table of people', actions: { listAction: '/GettingStarted/PersonList', createAction: '/GettingStarted/CreatePerson', updateAction: '/GettingStarted/UpdatePerson', deleteAction: '/GettingStarted/DeletePerson' }, fields: { PersonId: { key: true, list: false }, Name: { title: 'Author Name', width: '40%' }, Age: { title: 'Age', width: '20%' }, RecordDate: { title: 'Record date', width: '30%', type: 'date', create: false, edit: false } } }); }); </script>
Le azioni (action) indicano quali sono i file che gestiscono le interazioni col db.
Ogni colonna rappresenta un campo del db e possiamo impostarne la larghezza relativa in tabella e le caratteristiche come la modificabilità, il tipo, la possibilità di ordinamento su sua base.
Le tabelle così create caricano oggetti standard JSON risultanti delle azioni succitate (qualsiasi linguaggio serverside moderno può creare questo tipo di oggetto).
Link: jTable
Pulsanti in CSS3: il modo semplice di realizzarli
Le enormi potenzialità di CSS3 sono un po’ mortificate dalla ancora relativa diffusione di vecchie versioni di browser che non li supportano. E’ indubbio anche che non tutte le nuove istruzioni siano conosciute come le erano con i vecchi CSS.
Costruire dei pulsanti graficamente gradevoli e con effetti di transizione “avanzati” può diventare un gioco da ragazzi con un tool come CSS3 Button Generator di CSS Drive .
Basta selezionare colore di sfondo con il tipo di diffusione (piatta o gradiente), il grado di arrotondamento degli angoli, l’effetto di transizione, effetto hover, padding e tanto altro. Nella porzione di schermo in basso a sinistra viene immediatamente visualizzato il codice da inserire per ottenere questa classe.
E’ anche un’ottima metodologia didattica per imparare i nuovi CSS3.
Il mio consiglio è quello di testare in ogni caso il codice con le versioni più anziane dei browser per non pregiudicare l’usabilità della pagina web.
Usare al meglio la regola @font-face con l’aiuto di Font Squirrel
Guest post del web designer Andrea Scuotto
La regola CSS @font-face permette di visualizzare una pagina web con un determinato font anche se questo non è presente sul sistema operativo dell’utente. Tutti i browser principali ora supportano questa regola.
Regola, grazie alla quale, non ci si deve accontentare più di usare solo i font più comuni installati già sui nostri computer.
Non è, però, tutto così semplice. Ci sono vari ostacoli in cui vi potreste imbattere.
Potreste, infatti, non aver la licenza legale che vi autorizza all’uso del font scelto sul web. Oppure, anche avendo la licenza, potreste non sapere come scrivere la regola CSS di @font-face in modo che vada bene per ogni browser. Per esempio, infatti, se il nostro font avesse estensione TTF non sarebbe supportato da Internet Explorer che è, invece, compatibile solo con i file Embedded OpenType (estensione EOT).
Allora cosa fare?
Ci viene in aiuto, in questi casi, Font Squirrel, un sito che fornisce font ad uso commerciale da scaricare gratuitamente.
Ecco come procedere.
Dopo aver cercato il font che ci serve, ad esempio uno molto simile a un carattere di cui non avevamo la licenza ma che ci tenevamo ad utilizzare, clicchiamo su “@font-face Kit” e dopo aver lasciato spuntato tutte le possibili estensioni (TTF, EOT, WOFF, SVG) scarichiamo un file zip, un “kit”.
Il kit che contiene file dei caratteri in vari formati, un demo html e un file css. Questo file contiene un codice css che armonizza finalmente la regola @font-face con ogni tipo di browser.
Ora dobbiamo solo copiare e incollare la regola in un nostro progetto ed il gioco è fatto.
Link: Font Squirrel