Configuration d’un environnement de développement SilverStripe local

Dans cette leçon d'introduction, nous abordons l'installation d'un serveur Web local (par exemple, MAMP), l'installation et l'utilisation de Composer, ainsi que la configuration d'un fichier .env. Un environnement local parfaitement adapté à vos projets vous aidera à travailler plus rapidement et avec moins de redondance.

 

Dépôt de code à télécharger

Installation d’un serveur Web local

SilverStripe est une application PHP qui se connecte à une base de données. Pour l’exécuter, vous aurez besoin d’un serveur Web. Vous ne voudrez pas faire tout votre développement sur un environnement distant, il est donc fortement recommandé de configurer un serveur Web local. Si vous utilisez OSX ou Linux, vous avez probablement tous les outils dont vous avez besoin déjà installés sur votre système, mais ce n’est pas toujours idéal. L’installation de votre propre serveur Web local vous permet un contrôle plus granulaire de votre environnement et l’isole des mises à niveau au niveau du système.

Bien que les détails étape par étape de la création d’un serveur Web local soient hors de portée de ce tutoriel, vous avez plusieurs choix à prendre en compte:

 

La virtualisation

L’installation d’un serveur Web virtuel sur votre ordinateur local est rapide, simple et élimine bon nombre des variables et des inconnus souvent dangereux pour le développement local. Il y a deux acteurs principaux dans cet espace:

  • Vagrant , qui s’exécute sur VirtualBox , vous fournit une couche de configuration simple et des outils pour exécuter votre machine virtuelle. Il existe de nombreux environnements précuits prêts à être téléchargés et utilisés, tels que la Scotch Box.
  • Docker , qui crée un “conteneur” pour votre environnement virtuel, partageant le même système d’exploitation que l’hôte (votre ordinateur).

En général, Vagrant est beaucoup plus facile à configurer, mais consomme beaucoup plus de ressources car chaque instance utilise son propre système d’exploitation, tandis que Docker est plus difficile à apprendre et à configurer, mais utilise beaucoup moins de ressources et s’exécute plus efficacement que Vagrant.

 

Crée le tien

Un certain nombre de tutoriels sont disponibles pour assembler votre propre recette d’Apache, PHP et MySQL à l’aide de gestionnaires de paquets tels que Homebrew ou Macports .

Solutions clé en main

Bien que moins flexible que la création d’un environnement à partir de zéro ou l’utilisation d’une machine virtuelle, il existe des installations en un seul clic qui vont mettre un serveur de base sur votre poste de travail. Certains d’entre eux comprennent:

Ce que ces produits offrent en termes de facilité d’utilisation et de simplicité, ils la révoquent sous forme de flexibilité. Ils sont souvent assez rigides et ne peuvent pas être étendus sans beaucoup de travail et / ou de piratage. SilverStripe nécessite l’ php-intlextension, par exemple, qui n’est incluse dans aucun de ces produits.

 

Présentation du compositeur

Avant de commencer à installer Composer, nous devrions probablement expliquer en quoi consiste exactement Composer et son fonctionnement.

 

Qu’est-ce que Composer et pourquoi en ai-je besoin?

Composer est un gestionnaire de dépendances pour PHP. Les gestionnaires de dépendances sont de plus en plus populaires de nos jours, en particulier pour les bibliothèques front-end; Vous avez peut-être entendu parler de NPM . À leur niveau le plus fondamental, les gestionnaires de dépendance sont simplement des abstractions d’un référentiel de code source. Ils masquent tous les détails minutieux sur l’emplacement des projets et sur les branches disponibles, et vous permettent simplement de faire référence à des paquets de manière sémantique, par nom et par numéro de version.

Une caractéristique clé de Composer est qu’il résout les dépendances. Lorsqu’un module nécessite un ou plusieurs autres modules pour fonctionner correctement, Composer trie tout cela et enregistre tout ce dont vous avez besoin. De plus, Composer applique des contraintes de version. Ainsi, si un paquet nécessite un module qui ne fonctionne pas avec quelque chose que vous avez déjà installé, il vous informera de ce conflit et interrompra l’installation pour que votre projet ne soit pas interrompu.

Vous vous demandez peut-être: “Pourquoi ne puis-je pas simplement télécharger les modules et les installer manuellement?” Eh bien, prenons un exemple de projet SilverStripe sans Composer pour illustrer pourquoi ce n’est pas toujours un bon choix.

Supposons que vous souhaitiez obtenir un module de galerie pour votre site Web. Vous accédez à une page Web, la téléchargez et la déposez dans votre projet. Lorsque vous essayez d’exécuter l’application, le module se plaint de l’absence du module de diaporama, qui fait partie intégrante du module de galerie.

 

 

Maintenant, votre projet est suspendu jusqu’à ce que vous satisfaisiez cette dépendance. Alors vous allez chercher le module de diaporama, et après quelques recherches, vous pouvez le localiser. Vous le déposez dans l’espoir de rendre votre module de galerie heureux.

 

 

Nous avons maintenant un nouveau problème. Le module diaporama est incompatible avec la version de SilverStripe que nous utilisons. Vous pouvez voir où cela se passe. Tous les acteurs de votre projet ne s’entendent pas et votre site web explose.

L’installation de packages avec Composer résout tous ces problèmes car vous exécutez simplement une commande déclarative agréable, demandant à installer un package et une version spécifique, qui gère toute l’orchestration pour vous.

composer require example/some-module

Ce n’est en aucun cas une solution miracle. Vous devrez toujours résoudre les conflits, mais cela vous indiquera la nature de ces conflits et ne laissera pas votre projet exister dans un état d’incompatibilités.

 

Installation du compositeur

Installer Composer consiste simplement à exécuter deux commandes:

$ curl -s https://getcomposer.org/installer | php
$ sudo mv composer.phar /usr/local/bin/composer

Ces commandes peuvent vous paraître un peu étrangères si vous êtes nouveau sur le terminal. Si vous avez besoin de plus d’informations, consultez la documentation SilverStripe sur Composer .

Lançons la première commande qui installe Composer. Peu importe où, dans le système de fichiers, nous exécutons cette commande.

 

 

La deuxième commande déplacera l’exécutable de Composer vers un emplacement accessible de manière globale, afin que nous puissions exécuter Composer n’importe où.

 

Création d’un projet SilverStripe

Créons un projet SilverStripe en utilisant Composer. Comme il s’agit d’un nouveau projet, nous utiliserons la create-projectcommande et le point Composer à la page silverstripe/installer. Nous allons spécifier un nom de projet d’ exemple .

$ composer create-project silverstripe/installer example

Composer va maintenant lire le package d’installation SilverStripe. Ensuite, toutes les dépendances, y compris SilverStripe Framework, et plusieurs autres modules de base, ainsi que diverses bibliothèques PHP supportées, seront supprimées. Enfin, il va installer le thème par défaut fourni avec le programme d’installation de SilverStripe.

 

Le public / folder

SilverStripe n’expose sur le Web qu’une très petite partie de votre projet. Tout le code PHP, les fichiers de configuration, les modèles et autres fichiers de base sont stockés dans la racine du projet, qui n’est pas accessible par le Web. Le index.phpfichier qui rend votre site Web réside dans le public/dossier, avec toutes les autres dépendances frontales telles que CSS, JavaScript, les polices Web et les images.

Cela signifie que si votre hôte local se résout en un répertoire générique, fourre-tout, vous devrez fournir public/à la fin de l’URL afin de charger le contexte correct.

Dans notre cas, notre site vit à http://{your localhost}/example/public.

 

Est-ce que public / sera toujours dans mon URL?

Non! Cela prend juste un peu de configuration.

Il est judicieux de configurer un hôte virtuel pour votre projet, afin que votre projet local émule la manière dont il sera réellement accessible sur le Web. Par exemple, pour notre projet, un hôte virtuel, par exemple, http:://example.localpourrait pointer sur le example/publicdossier. Dans une installation Apache, celle-ci est configurée comme suit:

<VirtualHost 127.0.0.1>
DocumentRoot /path/to/my/websites/example/public
ServerName example.local
</VirtualHost>

La configuration des hôtes virtuels sera différente pour chaque serveur Web, mais il s’agit presque toujours d’un processus simple et indolore soutenu par une bonne documentation.

 

Voir votre site web

En supposant que vous n’utilisez pas d’hôte virtuel, accédez à l’URL http://{your localhost}/example/public. Vous devriez voir une page d’installation. C’est plein d’erreurs rouges qui nous disent que l’installation ne va pas fonctionner, alors examinons cela et voyons si nous pouvons résoudre ce problème.

 

Configuration du programme d’installation

Une chose dont il se plaint, c’est qu’il n’y a pas assez d’informations pour se connecter à la base de données. Remplissons donc le nom d’utilisateur et le mot de passe de la base de données. Dans de nombreuses installations MySQL locales, le mot de passe root est souvent vide. Si tel est le cas, vous ne verrez probablement pas cette erreur, car aucun mot de passe n’est le mot de passe correct!

Changeons simplement le nom de la base de données en quelque chose d’un peu plus significatif. Nous l’appellerons SS_example, car c’est l’exemple du projet.

Enfin, nous pouvons créer un compte administrateur. Spécifions un mot de passe. Ce sera le compte que nous utiliserons pour nous connecter au CMS. Nous revérifierons les exigences et installerons SilverStripe.

 

 

Maintenant que l’installation est terminée, SilverStripe va vous demander de supprimer les fichiers d’installation, car ils constituent un risque pour la sécurité. Cliquez dessus pour vous authentifier avant de continuer. Indiquez le mot de passe administrateur que vous avez choisi précédemment.

Affiner votre environnement de développement

Maintenant que nous avons installé SilverStripe, adaptons notre environnement de développement afin que les choses fonctionnent un peu plus vite.

.env

Le .envfichier est l’ingrédient principal de la gestion de l’environnement dans SilverStripe . Ce fichier fournit une configuration partagée entre tous vos projets grâce à l’injection de variables d’environnement. Il doit contenir des informations telles que les informations d’identification de la base de données, celles-ci étant susceptibles d’être partagées entre tous vos projets de développement local.

Il peut également inclure d’autres paramètres d’application. Vous pouvez y inclure des clés API ou des adresses électroniques que vous souhaitez définir comme accessibles globalement par tous les projets.

L’attribut clé du .envfichier, cependant, est qu’il ne doit pas être livré avec le projet. Il peut vivre en dehors de la racine Web, en dehors du contrôle de source. Lorsque vous déployez ce projet depuis votre environnement local vers un autre emplacement, cet environnement distant doit avoir sa propre configuration. Par conséquent, si le fichier se trouve en dehors du projet (ou du moins ignoré par votre système de contrôle de code source) vous évite de vous inquiéter accidentellement. paramètres prioritaires.

Le fichier `.env` est destiné uniquement aux environnements de développement. Bien que, théoriquement, il puisse être utilisé en production, ce n’est * pas * recommandé, et ne devrait être utilisé qu’en dernier recours dans les environnements d’hébergement où la définition de variables de niveau serveur ou vraies d’environnement n’est pas une option. Veuillez consulter la documentation de votre serveur Web pour plus d’informations. Par exemple, [Apache] (https://httpd.apache.org/docs/2.4/mod/mod_env.html#setenv).

Comment .env fonctionne

Jetons un coup d’oeil à un exemple de structure de répertoire, où nous avons un htdocsdossier et trois exemples de projets en dessous.

  • htdocs / [.env] *
    • projet-a /
    • projet-b /
    • projet-c /

Lorsque le .envfichier est entré htdocs, les paramètres sont transférés en cascade aux projets A, B et C.

Vous pouvez placer un .envfichier dans, disons la racine de projet du projet B ‘project-b’, et il remplacera le .envfichier parent .

  • htdocs / [.env]
    • projet-a /
    • projet-b / [.env] *
    • projet-c /
Le fichier `.env` est recherché dans la racine du projet, puis dans son répertoire parent uniquement. Seul le premier fichier trouvé est chargé.

Quelques configurations courantes

Dans un .envfichier typique , vous souhaitez définir le serveur de base de données, le nom d’utilisateur et le mot de passe de la base de données. Tout est défini en constantes.

votre-racine-web / .env

SS_DATABASE_SERVER='localhost'
SS_DATABASE_USERNAME='root'
SS_DATABASE_PASSWORD='root'

Enfin, vous voudrez probablement définir le type d’environnement en tant que dev afin de pouvoir tirer parti de tous les outils de débogage et obtenir des erreurs détaillées.

votre-racine-web / .env

SS_DATABASE_SERVER='localhost'
SS_DATABASE_USERNAME='root'
SS_DATABASE_PASSWORD='root'
SS_ENVIRONMENT_TYPE='dev'

Créons un deuxième projet SilverStripe. Nous l’appellerons exemple2 .

$ composer create-project silverstripe/installer example2

Passons donc à l’ URL exemple2 ( http: // {votre hôte local} / example2 / public). La page d’installation apparaît à nouveau, mais elle est légèrement différente.

 

 

Certains champs ont été renseignés pour vous, tels que le nom d’utilisateur et le mot de passe de la base de données, mais vous devez néanmoins fournir un nom de base de données. Utilisons SS_example2. En outre, indiquez à nouveau ce mot de passe administrateur.

Cliquez sur “Installer SilverStripe”, puis effacez ces fichiers d’installation.

Aller plus loin

Allons maintenant un peu plus loin. Nous voulons ajouter quelques éléments supplémentaires à notre .envdossier. Nous pouvons utiliser SS_DATABASE_CHOOSE_NAMEpour dire à SilverStripe de déterminer intelligemment un nom de base de données afin que vous n’ayez pas à le faire. Il examinera le système de fichiers, verra où le projet est installé et choisira un nom de base de données basé sur celui-ci. Par défaut, cela prend la forme SS_project-a, par exemple , des exemples ci-dessus.

Vous pouvez également spécifier le nom d’utilisateur et le mot de passe par défaut de l’administrateur. Pour le développement local, la sécurité ne vous préoccupe probablement pas trop. Vous avez donc bien quelque chose de facile à retenir, tel que root / root .

votre-racine-web / .env

SS_DATABASE_SERVER='localhost'
SS_DATABASE_USERNAME='root'
SS_DATABASE_PASSWORD='root'
SS_ENVIRONMENT_TYPE='dev'
SS_DATABASE_CHOOSE_NAME=true
SS_DEFAULT_ADMIN_USERNAME='root'
SS_DEFAULT_ADMIN_PASSWORD='root'

Vous pouvez également activer un autre paramètre SS_SEND_ALL_EMAILS_TO. Si vous fournissez votre adresse e-mail ici, tous les e-mails seront forcés de vous être envoyés plutôt que vers les endroits où votre application pourrait les envoyer, par exemple un client ou toute autre personne pour laquelle vous ne souhaitez pas passer vos tests. En appliquant ce paramètre, le courrier électronique sera forcé de vous contacter, quel que soit l’adresse que vous avez spécifiée, ce qui est très utile en mode développement.

Pour obtenir une liste complète des paramètres, vous pouvez accéder à la documentation et simplement consulter la gestion de l’environnement . Vous pouvez probablement ajouter une douzaine d’autres paramètres ici. Certains sont plus utiles que d’autres. Jetez un coup d’oeil par là parce que vous pourriez trouver quelque chose qui vous est vraiment utile.

Sauvegardons les modifications .envet appliquons ces nouveaux paramètres.

Lorsque nous allons à l’ http://{your localhost}/example3/publicURL, vous remarquerez que nous contournons la page d’installation. C’est parce que SilverStripe a appris tout ce dont il avait besoin de savoir pour exécuter ce projet .env.

C’est un moyen très rapide d’éclairer un projet et de faire des tests. Vous pouvez simplement jeter ce projet lorsque vous avez terminé et le refaire, et vous n’avez pas à suivre ce processus d’installation à chaque fois. .envest très utile ici, car il applique tous les paramètres souhaités pour chaque projet.

Nous fonctionnons maintenant avec un environnement de développement local pour le développement SilverStripe.

TOUT VOIR Ajouter une remarque
VOUS
Ajoutez votre commentaire
 
© Academy EdTech. 2019 All rights reserved.
X