Aller au contenu principal
Version: 5.x

🚀 Installation

Introduction

Bow Framework est un micro-framework PHP moderne et élégant. Avant de créer votre première application, assurez-vous que votre environnement respecte les prérequis suivants.

Prérequis système

  • PHP >= 8.1
  • OpenSSL PHP Extension
  • PDO PHP Extension
  • Mbstring PHP Extension
  • XML PHP Extension
  • JSON PHP Extension
Environnements de développement

Si vous utilisez Laragon (Windows), XAMPP, ou MAMP, ces extensions sont généralement déjà installées et configurées.

Créer un projet

Bow Framework utilise Composer pour gérer ses dépendances. Assurez-vous que Composer est installé sur votre machine avant de continuer.

Installation via Composer

composer create-project --prefer-dist bowphp/app nom-du-projet
Installation de Composer

Nous recommandons d'installer Composer de manière globale sur votre machine. Consultez la documentation officielle pour les instructions d'installation.

Si vous découvrez Composer, prenez le temps de parcourir sa documentation pour comprendre son fonctionnement.

asciicast

🚀 Démarrer votre projet

Rendez-vous à la racine de votre projet et démarrez le serveur de développement :

cd nom-du-projet
php bow run:server --port=8080 --host=0.0.0.0

Ouvrez votre navigateur et accédez à http://localhost:8080.

Port par défaut

Si vous ne spécifiez pas de port, le serveur démarre sur le port 5000 par défaut :

php bow run:server
# Accessible sur http://localhost:5000

⚙️ Configuration

Dossier public

Après l'installation, configurez le document root de votre serveur web pour qu'il pointe vers le dossier public.

Le fichier index.php situé dans ce dossier sert de point d'entrée unique pour toutes les requêtes HTTP (pattern Front Controller).

Fichiers de configuration

Tous les fichiers de configuration de Bow Framework se trouvent dans le dossier config. Chaque option est documentée pour faciliter la personnalisation de votre application.

Structure du dossier config :

  • app.php : Configuration de l'application
  • database.php : Configuration des bases de données
  • mail.php : Configuration de l'envoi d'emails
  • Et bien d'autres...

Permissions des dossiers

Les dossiers contenus dans var doivent avoir les permissions d'écriture pour le serveur web :

# Sur Linux/macOS
chmod -R 775 var/
chown -R www-data:www-data var/
Important

Assurez-vous que le serveur web a les droits d'écriture sur le dossier var pour que les logs, le cache et les sessions fonctionnent correctement.

Configuration des serveurs web

Apache

Bow inclut un fichier public/.htaccess qui gère la réécriture d'URLs vers le front controller.

Prérequis : Le module mod_rewrite doit être activé.

# Activer mod_rewrite sur Ubuntu/Debian
sudo a2enmod rewrite
sudo systemctl restart apache2

Si le fichier .htaccess par défaut ne fonctionne pas, essayez cette configuration alternative :

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

Nginx

Pour Nginx, ajoutez cette configuration dans votre bloc server :

server {
listen 80;
server_name example.com;
root /path/to/your/project/public;

index index.php index.html;

location / {
try_files $uri $uri/ /index.php?$query_string;
}

location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}

location ~ /\.(?!well-known).* {
deny all;
}
}

Déploiement sur serveur mutualisé

Pour déployer Bow Framework sur un hébergement mutualisé :

  1. Déplacez les fichiers index.php et .htaccess du dossier public vers la racine du projet
  2. Modifiez les chemins dans index.php pour qu'ils pointent correctement vers les dossiers du framework
  3. Utilisez la configuration .htaccess suivante :
Options -indexes
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>

<Files ".env.*|server.php|bow|app/**|vendor/**|postman/*|var/**|seeders/*|templates/**|tests/**|migrations/**">
Order Allow,Deny
Deny from all
</Files>
Gestion des assets

Pour un hébergement mutualisé, utilisez le helper app_assets() pour vos fichiers statiques et modifiez la valeur de APP_ASSET_PREFIX à /public dans votre fichier .env.json. Bow gérera automatiquement les chemins corrects ! 🚀

Prochaines étapes

Maintenant que votre installation est terminée, découvrez comment construire votre application :

Il manque quelque chose ?

Si vous rencontrez des problèmes avec la documentation ou si vous avez des suggestions pour améliorer la documentation ou le projet en général, veuillez déposer une issue pour nous, ou envoyer un tweet mentionnant le compte Twitter @bowframework ou sur directement sur le github.