Creare ed Eseguire un Progetto PHPixie
Cos'è PHPixie?
PHPixie è un framework PHP leggero, ideale per sviluppare rapidamente applicazioni web ad alte prestazioni. Segue il pattern di progettazione HMVC (Hierarchical Model-View-Controller), offrendo una struttura del codice pulita e prestazioni efficienti. PHPixie è noto per la sua semplicità, flessibilità e alte prestazioni, ed è una scelta popolare tra molti sviluppatori.
Caratteristiche e Vantaggi Principali di PHPixie
- Leggero: Il sistema core di PHPixie è molto compatto, includendo solo i componenti necessari, quindi il caricamento è molto veloce.
- Alte Prestazioni: PHPixie è conosciuto per le sue eccellenti prestazioni e velocità, capace di gestire un alto numero di richieste concorrenti.
- Facile da Imparare: Fornisce un'API semplice e intuitiva con documentazione abbondante, permettendo agli sviluppatori di iniziare rapidamente.
- Flessibilità: Consente agli sviluppatori di scegliere e utilizzare librerie e plugin di terze parti, facilitando l'estensione e la personalizzazione delle funzionalità.
- Supporto della Community: Possiede una community di sviluppatori attiva e una vasta gamma di estensioni di terze parti.
PHPixie può aiutare gli sviluppatori a costruire rapidamente applicazioni web di alta qualità e alte prestazioni, adatte a progetti di varie dimensioni.
Creare ed Eseguire un Progetto PHPixie con ServBay
In questo articolo, utilizzeremo l'ambiente PHP fornito da ServBay per creare ed eseguire un progetto PHPixie. Utilizzeremo la funzionalità 'Host' di ServBay per configurare il server web e accedere al progetto con una configurazione semplice.
Attenzione: se sei stato un utente di NGINX o Apache
ServBay utilizza Caddy come server web predefinito. Per gli utenti che migrano da NGINX e Apache a ServBay, ci sono alcuni cambiamenti chiave da tenere a mente:
Configurazione di Caddy
ServBay include già Caddy con una configurazione ottimizzata. Gli sviluppatori devono soltanto gestire i siti tramite la funzionalità 'Host' di ServBay, senza dover modificare manualmente i file di configurazione di Caddy.
Regole di Riscrittura e .htaccess
In NGINX e Apache, gli sviluppatori generalmente scrivono le proprie regole di riscrittura e i file .htaccess per gestire la riscrittura degli URL e altre configurazioni. Tuttavia, ServBay ha già configurato le regole di Caddy di default, quindi, a meno di esigenze particolari, non è necessario scriverle manualmente.
Ulteriori Informazioni
Per maggiori informazioni, consulta Rewrite e htaccess, Come Migrare un Sito Apache a ServBay, Come Migrare un Sito NGINX a ServBay.
Creare un Progetto PHPixie
TIP
ServBay consiglia agli sviluppatori di posizionare i siti web nella directory /Applications/ServBay/www
per una gestione agevole.
Installare Composer
ServBay viene fornito con Composer preinstallato, quindi non è necessaria un'installazione separata.
Creare un Progetto PHPixie
Utilizza Composer per creare un nuovo progetto PHPixie:
bashcd /Applications/ServBay/www mkdir servbay-phpixie-app cd servbay-phpixie-app composer create-project phpixie/project .
1
2
3
4Accedi alla Directory del Progetto
Accedi alla directory del nuovo progetto PHPixie:
bashcd /Applications/ServBay/www/servbay-phpixie-app
1
Configurazione Iniziale
Configurare la Connessione al Database
Configura le informazioni sulla connessione al database nel file
assets/config/database.php
:phpreturn [ 'default' => [ 'driver' => 'pdo', 'connection' => 'mysql:host=127.0.0.1;dbname=servbay_phpixie_app', 'user' => 'root', 'password' => 'password', 'options' => [] ] ];
1
2
3
4
5
6
7
8
9
Configurare il Server Web
Utilizza la funzionalità 'Host' di ServBay per accedere al progetto PHPixie tramite il server web. Nella configurazione 'Host' di ServBay, aggiungi un nuovo host:
- Nome:
My First PHPixie Dev Site
- Dominio:
servbay-phpixie-test.local
- Tipo di Sito:
PHP
- Versione PHP: Seleziona
8.3
- Directory Root del Sito:
/Applications/ServBay/www/servbay-phpixie-app/web
Per i dettagli sui passaggi di configurazione, consulta Aggiungere il Primo Sito Web.
Aggiungere Codice di Esempio
Nel file src/App/HTTP/Controller/Home.php
, aggiungi il seguente codice:
namespace App\HTTP\Controller;
use PHPixie\HTTP\Request;
use PHPixie\Template;
class Home extends \PHPixie\Controller
{
protected $template;
public function __construct(Template $template)
{
$this->template = $template;
}
public function action_index(Request $request)
{
return $this->template->render('app:home');
}
public function action_memcached(Request $request)
{
$cache = $this->components->cache();
$cache->set('key', 'Hello Memcached!', 60);
$value = $cache->get('key');
return $this->response()->string($value);
}
public function action_redis(Request $request)
{
$redis = $this->components->redis();
$redis->set('key', 'Hello Redis!');
$value = $redis->get('key');
return $this->response()->string($value);
}
public function action_mysql_add(Request $request)
{
$query = $this->components->database()->query();
$query->insert('users')->data([
'name' => 'ServBay',
'email' => '[email protected]',
])->execute();
return $this->response()->string('User added');
}
public function action_mysql(Request $request)
{
$query = $this->components->database()->query();
$users = $query->select('*')->from('users')->execute()->fetchAll();
return $this->response()->json($users);
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
Nel file assets/templates/app/home.php
, aggiungi il seguente codice:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Welcome to PHPixie</title>
</head>
<body>
<h1>Welcome to PHPixie</h1>
<p>The page you are looking at is being generated dynamically by PHPixie.</p>
</body>
</html>
2
3
4
5
6
7
8
9
10
11
12
Accedere al Sito
Apri il browser e accedi all'URL:
https://servbay-phpixie-test.local
: vedrai la pagina che visualizzaWelcome to PHPixie
.
Esempio di Database NoSQL
Esempio di Memcached
Installare l'Estensione Memcached
In ServBay, l'estensione Memcached è già preinstallata, quindi non è necessaria un'installazione aggiuntiva.
Configurare Memcached
Configura le informazioni sulla connessione a Memcached nel file
assets/config/cache.php
:phpreturn [ 'default' => [ 'driver' => 'memcached', 'servers' => [ [ 'host' => '127.0.0.1', 'port' => 11211, 'weight' => 100, ], ], ], ];
1
2
3
4
5
6
7
8
9
10
11
12Usare Memcached
Utilizza la cache nel controller:
phppublic function action_memcached(Request $request) { $cache = $this->components->cache(); $cache->set('key', 'Hello Memcached!', 60); $value = $cache->get('key'); return $this->response()->string($value); }
1
2
3
4
5
6
7
Esempio di Redis
Installare l'Estensione Redis
In ServBay, l'estensione Redis è già preinstallata, quindi non è necessaria un'installazione aggiuntiva.
Configurare Redis
Configura le informazioni sulla connessione a Redis nel file
assets/config/redis.php
:phpreturn [ 'default' => [ 'hostname' => '127.0.0.1', 'port' => 6379, 'timeout' => 0, 'database' => 0, ], ];
1
2
3
4
5
6
7
8Usare Redis
Utilizza la cache nel controller:
phppublic function action_redis(Request $request) { $redis = $this->components->redis(); $redis->set('key', 'Hello Redis!'); $value = $redis->get('key'); return $this->response()->string($value); }
1
2
3
4
5
6
7
Esempio di Database Relazionale
Creare Struttura del Database e File di Migrazione
Creare File di Migrazione
Utilizza lo strumento CLI di PHPixie per creare un file di migrazione:
bashphp pixie generate:migration create_users_table
1Editare il File di Migrazione
Trova il file di migrazione creato nella directory
assets/migrations
ed editado per definire la struttura della tabella del database:phppublic function up() { $this->schema->create('users', function($table) { $table->increments('id'); $table->string('name'); $table->string('email')->unique(); $table->timestamps(); }); } public function down() { $this->schema->drop('users'); }
1
2
3
4
5
6
7
8
9
10
11
12
13
14Eseguire la Migrazione
Utilizza lo strumento CLI di PHPixie per eseguire la migrazione e creare la tabella del database:
bashphp pixie migrate
1
Esempio di MySQL
Configurare MySQL
Configura le informazioni sulla connessione a MySQL nel file
assets/config/database.php
:phpreturn [ 'default' => [ 'driver' => 'pdo', 'connection' => 'mysql:host=127.0.0.1;dbname=servbay_phpixie_app', 'user' => 'root', 'password' => 'password', 'options' => [] ] ];
1
2
3
4
5
6
7
8
9Inserire Dati Utente
Inserisci i dati dell'utente nel controller:
phppublic function action_mysql_add(Request $request) { $query = $this->components->database()->query(); $query->insert('users')->data([ 'name' => 'ServBay', 'email' => '[email protected]', ])->execute(); return $this->response()->string('User added'); }
1
2
3
4
5
6
7
8
9Utilizzare MySQL
Chiama il database nel controller:
phppublic function action_mysql(Request $request) { $query = $this->components->database()->query(); $users = $query->select('*')->from('users')->execute()->fetchAll(); return $this->response()->json($users); }
1
2
3
4
5
6
Esempio di PostgreSQL
Configurare PostgreSQL
Configura le informazioni sulla connessione a PostgreSQL nel file
assets/config/database.php
:phpreturn [ 'default' => [ 'driver' => 'pdo', 'connection' => 'pgsql:host=127.0.0.1;dbname=servbay_phpixie_app', 'user' => 'root', 'password' => 'password', 'options' => [] ] ];
1
2
3
4
5
6
7
8
9Inserire Dati Utente
Inserisci i dati dell'utente nel controller:
phppublic function action_pgsql_add(Request $request) { $query = $this->components->database()->query(); $query->insert('users')->data([ 'name' => 'ServBay', 'email' => '[email protected]', ])->execute(); return $this->response()->string('User added'); }
1
2
3
4
5
6
7
8
9Utilizzare PostgreSQL
Chiama il database nel controller:
phppublic function action_pgsql(Request $request) { $query = $this->components->database()->query(); $users = $query->select('*')->from('users')->execute()->fetchAll(); return $this->response()->json($users); }
1
2
3
4
5
6
Seguendo i passaggi sopra descritti, hai creato ed eseguito con successo un progetto PHPixie utilizzando le funzionalità offerte da ServBay per la gestione e l'accesso al tuo progetto, collegando vari database e richiamando i dati. Spero che questo articolo ti aiuti a iniziare rapidamente con PHPixie e a utilizzarlo nei tuoi progetti.