Google App Engine PHP Runtime ora disponibile per tutti

Google App Engine PHP Runtime

Google App Engine PHP Runtime oggi , dopo un periodo di prova limitato, è stato reso disponibile per tutti. Al Google I/O, all’inizio di quest’anno, hanno aggiunto PHP, il quarto linguaggio di programmazione per realizzare applicazioni in Google App Engine.

Non è più necessario per fortuna far parte della whitelist per sviluppare la nostra applicazione PHP su Google App Engine. PHP è oggi uno dei linguaggi di programmazione per il web più popolari al mondo. Dal momento che è stato lanciato al Google I/O all’inizio di quest’anno, migliaia di sviluppatori in tutto il mondo hanno iniziato a utilizzare App Engine per PHP, per eseguire software famosi fatti in PHP come phpMyAdmin , Drupal e phpBB e framework quali Laravel , Silex e CodeIgniter utilizzando anche le API di Google come Drive e Google+ su App Engine.

Uno dei primi utilizzatori di Google App Engine per PHP è stato VICE.com, con cui ci gestisce il blog principale. Riceve milioni di visitatori al mese, e gira su un CMS fatto in casa realizzato grazie al popolare framework PHP Yii. Dopo aver spostato completamente il tutto in Google App Engine sembra che siano davvero entusiasti, “E ‘nostro parere che Google sta costruendo la Platform as a service(PaaS) di nuova generazione”, ha dichiarato il CTO di VICE.com, Jesse Knight. Fin dall’introduzione del runtime PHP, Google ha fatto alcuni miglioramenti, tra cui:

Se si lavora nel cloud, è possibile creare, testare e distribuire il progetto dal browser utilizzando DevTable o CodeEnvy che sono degli IDE on the cloud 🙂 . Se si preferisce lavorare dal proprio desktop, ora è possibile lavorare a livello locale ed eseguire il debug e distribuire Google App Engine grazie all’ IDE JetBrain PhpStorm. Infine per concludere gli sviluppatori interessati a PHP ora possono creare un account in Google App Engine PHP Runtime e distribuire immediatamente le applicazioni PHP e volendo possono condividere le loro avventure con la comunità di Google+.

Voi l’avete provato?

Via googlecloudplatform.blogspot.it

Come creare in PHP una tabella in un database MySQL

In questo articolo vedremo come in Php si può creare una tabella di un database MySQL. Prima affronteremo il file config.php in cui ci sono i parametri di connessione al server MySQL e la funzione di php per la connessione e poi affronteremo il file per la creazione della tabella, alla fine del post troverai lo zip con all’interno i 2 file php che puoi scaricare per fare tutte le prove che vuoi.

Leggi tutto “Come creare in PHP una tabella in un database MySQL”

WordPress: Modificare il plugin transposh per le traduzioni automatiche

Nel mio blog utilizzo il plugin transposh per le traduzioni automatiche della homepage, dei post e delle pagine. Mi succedeva che a fianco delle bandierine in home page comparisse la scritta Edit Translation che volevo nascondere allora ho deciso di mettere mani direttamente nel codice php del plugin.

Ho modificato il file transposh_widget.php che si trova /wordpress/wp-content/plugins/transposh-translation-filter-for-wordpress/wp e nella classe transposh_plugin_widget ho modificato la funzione transposh_widget($args) commentando questa parte di codice:

 // add the edit checkbox only for translators for languages marked as editable
 // if ($this->transposh->is_editing_permitted()) {
 //     echo 'transposh->edit_mode ? 'checked="checked"' : '') .
//      ' onclick="this.form.submit();"/> Edit Translation';
//}

[AGGIORNAMENTO]
Parlando nei commenti con il realizzatore del plugin Ofer Wald, ho scoperto che si poteva fare il tutto senza toccare una linea di codice. Andando nella sezione Impostazioni->Transposh e settando nell’area Transalation Settings, l’opzione Who can translate ? solo per Amministratore e non Anonymous.

WordPress: personalizzare l’area quickpress della bacheca

Quando mi vengono delle idee per nuovi argomenti/post per il mio blog me li appunto salvando una bozza tramite l’area quickpress della bacheca di wordpress.

Recentemente mi è capitato per errore che invece di cliccare il bottone Salva Bozza ho cliccatto il bottone Pubblica rendendo pubblico un articolo non finito che è solo una bozza. Se lo leggeva qualcuno tramite i miei feed o direttamente sul blog facevo una figuraccia.

Allora ho deciso di modificare il codice php dell’area quickpress della bacheca di wordpress per nascondere il bottone Pubblica e per evitare questi errori in futuro.

Ho preso il file dashboard.php che si trova nella cartella \wp-admin\includes\ e nella funzione wp_dashboard_quick_press_output() ho commentato la parte di codice che aggiungeva il bottone pubblica in questo modo:


Ho solo commentato e non cancellato le righe di codice così in futuro posso riabilitare il bottone Pubblica. Adesso non c’è più pericolo di sbagliare.

Programmazione in Php: 7 funzioni che probabilmente non hai mai usato

Quando programmiamo in PHP, spesso ci limitiamo ad un numero limitato di funzioni API: quelli comuni, come il print (), header (), definire (), isset (), htmlspecialchars (), ecc Se alcune funzionalità necessarie non esistono, spesso ne scriviamo delle nuove facendo uso di questi componenti di base che conosciamo. Le API di PHP in realtà offrono un sacco di funzionalità, alcune inutili e qualcuna utile, che vengono usate raramente. Ho cercato tra le funzioni disponibili e mi sono interessato a trovarne qualcuna di cui davvero ho bisogno. Ecco, condivido con voi le mie scoperte.

1. sys_getloadavg ()
sys_getloadvg () è una funzione che restituisce tre misure del “carico” su un sistema. Il carico è il numero di processi in coda di esecuzione del sistema. I 3 elementi della matrice sono il carico medio per gli ultimi 1, 5 e 15 minuti.

$carico = sys_getloadavg(),
se ($carico[0] > 80) {
    header('HTTP/1.1 503 Troppo occupato, riprovare più tardi');
    die('Il server è occupato più tardi. Riprova.');
}

Piuttosto che avere il servizio Web non più disponibile (offline) semplicemente perché è crollato tutto dopo aver ricevute troppe richieste, questo codice permetterà in maniera preventiva di accettare alcune richieste e di negarsi ad altre. Questo codice però non funziona su Windows.

2. cal_days_in_month ()
cal_days_in_month () restituisce il numero di giorni in un dato mese:

$giorni = cal_days_in_month(CAL_GREGORIAN, date("m"), date("Y")); / / 31
echo($giorni - data("d") + 1 )."giorni fino a quando".date("F", mktime(0, 0, 0, data("m") + 1, 1, 1970));

3. get_browser ()
Non sarebbe bello scoprire che cosa può fare il browser di un utente prima di inviare la pagina? Beh, si può con get_browser (). Avrete bisogno di php_browscap.ini prima, e il punto di direttiva browscap al file. Si potrebbe avere qualcosa di simile a questa:

$browser = get_browser(null, true);
if(!$browser["frames"] | | !$ browser["cookies"])
      echo "Si prega di aggiornare il browser o usare un browser più moderno ed attivare i cookies perchè alcune sezioni di questo sito potrebbero essere inaccessibili";

Questo non è in grado di rilevare le singole configurazioni di browser, tuttavia, non può essere utilizzato per rilevare se è abilitato JavaScript, per esempio. Questa funzione può essere utile per sapere quale browser si usa e quale piattaforma viene utilizzata.

4. debug_print_backtrace ()
Può essere molto difficile da rintracciare un errore nel codice in particolare quando si cerca un errore logico, invece grazie a debug_print_backtrace() potrebbe essere molto più facile. Come ad esempio:

$a = 0; 

function iterate() 
{ 
      global $a; 
      if( $a < 10 ) recur(); 
      echo $a.", "; 
} 

function recur() 
{ 
     global $a; 
     $a++; 
     // how did I get here? 
     echo " \n \n \n "; 
    debug_print_backtrace(); 
    if ( $a < 10 ) iterate (); 
}   

iterate (); 
# OUTPUT: #0 recur() called at [C:\htdocs\php_stuff\index.php:8] #1 iterate() called at [C:\htdocs\php_stuff\index.php:25] #0 recur() called at [C:\htdocs\php_stuff\index.php:8] #1 iterate() called at [C:\htdocs\php_stuff\index.php:21] #2 recur() called at [C:\htdocs\php_stuff\index.php:8] #3 iterate() called at [C:\htdocs\php_stuff\index.php:25] #0 recur() called at [C:\htdocs\php_stuff\index.php:8] #1 iterate() called at [C:\htdocs\php_stuff\index.php:21] #2 recur() called at [C:\htdocs\php_stuff\index.php:8] #3 iterate() called at [C:\htdocs\php_stuff\index.php:21] #4 recur() called at [C:\htdocs\php_stuff\index.php:8] #5 iterate() called at [C:\htdocs\php_stuff\index.php:25] [ ... ]

5. natsort()
natsort() è una funzione che ordina elementi di una matrice in maniera naturale (cioè, in un ordine che sembra logico a una persona), piuttosto che un ordine di tipo alfabetico. Prendete, per esempio:

$items = array("100 mele", "5 mele", "110 mele", "55 mele");
 
/ / normale ordinamento:
sort($items);
print_r($items);

# Il risultato:
Array #
# (
# [0] => 100 mele
# [1] => 110 mele
# [2] => 5 mele
# [3] => 55 mele
#)

natsort($items);
print_r($items);

# Il risultato:
# Array
# (
# [2] => 5 mele
# [3] => 55 mele
# [0] => 100 mele
# [1] => 110 mele
#)

6. Levenshtein()
Levenshtein() è una funzione che aiuta a trovare la miglior somiglianza tra 2 parole. Prendiamo, per esempio, il codice seguente:

$dictionary = array( "php" , "javascript" , "css" ); 
$word = "japhp"; 
$best_match = $dictionary[0]; 
$match_value = levenshtein ($dictionary[0] , $word); 

foreach($dictionary as $w) 
{ 
     $value = levenshtein($word , $w); 
     if( $value < $match_value) 
     { 
          $best_match = $w; 
          $match_value = $value; 
     } 
} 

echo "Forse cercavi la categoria ' $best_match ' ?";

In questo caso, l'utente è stato chiesto di fornire un nome di categoria. Ha scritto "japhp", che non è valido. Poiché questo è probabile che sia un errore di digitazione, grazie a questa funzione riusciamo a trovare la categoria più somigliante ("Forse cercavi categoria 'php'?").

7. glob()
glob() , vi farà sentire stupidi dopo l'uso di opendir(), readdir() e closedir() per cercare un file. La procedura è semplicissima:

foreach (glob("*. php") as $file)
    echo "$ file\ n";

Di Più?
Ci sono un sacco di funzioni utili e sconosciute là fuori come http_build_query(), register_shutdown_function() e pspell_suggest, quali sono le vostre preferite?

Fonte: infinity-infinity.com