📦 Package
Introduction
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.
createpermet d'initialiser le packagerunpermet 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.
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 :
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:
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 :
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.