Aller au contenu principal
Version: Canary 🚧

🚀 Installation

Prérequis​

Pour créer une nouvelle application Bow, veuillez d'abord vous assurer que votre ordinateur remplit les conditions suivantes:

  • PHP >= 7.1
  • OpenSSL PHP Extension
  • PDO PHP Extension
  • Mbstring PHP Extension
  • XML PHP Extension
  • JSON PHP Extension

Si vous êtes sous Windows et que vous utilisez un serveur web tel que Laragon, ces dépendances sont déjà satisfaites.

Créer un projet​

Bow Framework utilise Composer pour gérer ses dépendances. Donc, avant d'utiliser Bow, il vous faut d'abord installer Composer sur votre machine.

Via Composer​

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

Nous vous conseillons d'installer composer de façon globale sur votre machine. Pour ce faire, référez-vous à la documentation d'installation de composer. Si vous n'êtes pas familier à composer, nous vous invitons à parcourir la documentation.

🚀 Démarrer votre projet​

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

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

Ouvrez votre navigateur et tapez http://localhost:8000.

5000 est le port par défaut quand le port n'est pas spécifié avec la commande php bow run:server.

⚙️ Configuration​

Dossier Public​

Après l'installation de Bow Framework, vous devez configurer le document root de votre serveur pour qu'il pointe vers le dossier public.

Le fichier index.php qui se trouve dans le dossier public sert de point d'entrée pour toutes les requêtes HTTP (c'est le Front Contrôleur).

Fichiers de configuration​

Tous les fichiers de configurations de Bow Framework sont stockés dans le dossier config. Toutes les options sont documentées pour vous permettre de vous familiariser avec les options disponibles.

Permissions sur les dossiers​

Après l'installation de Bow, vous aurez besoin de configurer quelques permissions. Les dossiers contenu dans le dossier var doivent avoir les permissions d'écriture sur le serveur web.

Configuration Serveur Web​

Apache​

Bow inclut un fichier public/.htaccess qui est utilisé pour faire de la ré-écriture d'URLs sur le front contrôleur. Avant d'utiliser Bow avec Apache, assurez-vous que le module mod_rewrite est activé pour que le serveur prenne en compte les instructions du fichier .htaccess.

Si le fichier .htaccess par défaut dans Bow ne fonctionne pas avec votre installation d'Apache, essayez cette alternative:

Options +FollowSymLinks
RewriteEngine On

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

Nginx​

Si vous utilisez Nginx, les directives suivantes dans votre configuration redirigeront les requêtes vers le front contrôleur:

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

Déployé sur un server mutualisé​

Pour deployer Bow Framework sur un serveur mutualisé. Il faut déplacer le fichier index.php et .htaccess à la racine du projet. Et assuré le bien appelé les fichiers du fichier index.php ensuite vous pouvez copier le code qui suit dans le fichier htaccess.

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>

Il est en ce sens recommandé d'appelé vos fichiers d'assets avec la méthode app_assets et modifier votre .env.json la valeur de APP_ASSET_PREFIX en /public et bow fait le reste 😅

Vous pouvez continuer vers ces sections pour démarrer votre développement.

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.