Aller au contenu principal
Version: Canary 🚧

📦 Package

Introduction

info

Ce système permet d'étendre votre application et de greffer des packages externes dans Bow Framework.

Création de plugin

Si vous avez une application Bow, il vous suffit de faire la création via php bow et lancer la commande add:configuration ensuite, vous donnez le nom de votre configuration:

php bow add:configuration PluginConfiguration

Le fichier PluginConfiguration.php sera créé dans le dossier app/Configurations qui contient deux méthodes create et run.

  • create permet d'initialiser le package
  • run permet de lancer l'initialisation du package

Dans l'initialisation des packages, c'est la méthode create qui se lancera en premier pour tous les autres packages qui seront définis dans votre configuration, ensuite la méthode run sera exécutée dans le même ordre.

Attention

N'essayez pas de contacter un package ici si vous attendez qu'il soit d'abord configuré.

Dans le fichier de configuration, Bow va injecter le DIC et sera accessible via la propriété $this->container. Plus d'informations sur le DIC de Bow.

Exemple de création

Nous allons créer un plugin qui va vérifier un email. Pour cela, nous créons la configuration avec le nom EmailCheckerConfiguration :

Remarque

Cet exemple est fourni à titre pédagogique. Dans un vrai projet, cette fonctionnalité pourrait être traitée différemment.

php bow add:configuration EmailCheckerConfiguration

Dans le dossier app nous allons ajouter un dossier Packages dans ce dossier, nous allons ensuite ajouter le fichier EmailCheckController.php:

app/Packages/EmailCheckController.php
namespace App\Packages;

use App\Controllers\Controller;
use Bow\Http\Request;
use Bow\Support\Str;

class EmailCheckController extends Controller
{
/**
* Check the email
*
* @param Request $request
* @return mixed
*/
public function __invoke(Request $request)
{
$email = $request->get('email');

if (Str::isMail($email)) {
$response = [
'message' => 'Ok',
'error' => false
];
} else {
$response = [
'message' => 'C\'est un mauvais email !',
'error' => true
];
}

return $response;
}
}

Nous allons maintenant créer notre configuration :

app/Configurations/EmailCheckController.php
namespace App\Configurations;

use Bow\Configuration\Loader;
use Bow\Configuration\Configuration;

class EmailCheckController extends Configuration
{
/**
* Permet de lancement de configuration
*
* @return void
*/
public function run()
{
$this->container->make('router')->post(
'/email/checker', \App\Packages\EmailCheckController::class
);
}
}

Allons tester notre application Bow Framework avec la commande php bow run:server pour lancer le serveur de développement.

Testons notre package

Pour cet exemple, nous allons tester votre code avec curl:

curl -X POST -d "email=exemple@exemple.com" http://localhost:5000/email/checker
# {"message": "Ok", "error": false}

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.