Blog
Partager c'est Aimer
Depuis 2 jours maintenant, j'ai débuter la création d'un nouvel API PHP nommé phpAPI. Cette API a pour but d'être simple à utiliser et facile à intégrer dans vos projet. J'ai débuter avec la base. C'est a dire le traitement des demandes.
Toutefois je me rend compte que je devrais sans doute extraire la Class Database afin de la publier séparement.
Aujourd'hui j'ai commencé le travail d'une class Auth pour gérer l'authentification et les authorizations. J'ai déjà couvert le nécessaire dans la bootstrap.php de l'API. Et j'ai aussi créer quelque méthode pour recueillir les informations d'authentification. Présentement j'ai ajouter le support pour l'authentification de type BASIC et BEARER. OAuth et API Key sont à venir.
Toutefois, je tourne mes réflexions sur les authorizations. Idéalement j'aimerais ajouter le support de Rôles, Permissions, Groupes et Utilisateurs. Mais en même temps, je ne veux pas forcer une structure de base de donnée aux utilisateurs de l'API. De plus, il ne faut pas trop multiplier les requêtes SQL pour établir l'authorization de l'utilisateur. Par conséquent, comment s'y prendre.
Pour l'instant, voici la structure dont j'ai penser utiliser:
Tableau: users | ||
---|---|---|
Nom | Type | Extra |
id | bigint(20) | AUTO_INCREMENT |
username | varchar(100) | UNIQUE |
password | varchar(100) | |
status | int(1) | |
token | varchar(100) |
Plein la tête
Me voila encore sur une nouvelle quête. Quoi que j'ai rencontrer Composer / Packagist dans le passé, je me lance aujourd'hui dans l'étude de cette outil open source. Ce qui m'a attirer vers cette outils est sa capacité a étendre les fonctionnalités de projet existant. Après quelques tentatives, j'ai réussi a maitrisé les commandes de base. Soit la création d'un package pour packagist et l'installation d'un autre projet dans un projet existant. Cet outil s'integre bien a GitHub. Sufit de le connecté. Puis créer un release. Par la suite on soumet le projet GitHub sur Packagist.
J'ai pensé utilisé cette outil afin de publier les multiples bibliothèques PHP que j'ai écrit depuis. Ceci me permettra alors de mieux les intégrer ensemble dans un plus gros projet tel que coreDB.
Aujourd'hui j'ai commencer par publier 2 bibliothèques. phpIMAP et phpSMTP.
phpIMAP est une class PHP permettant d'authentifier un utilisateur et de gérer une boîte courriel IMAP. J'ai initialement écrit cette class afin de lire des courriels et de repérer des informations spécifique dans ceux-ci. Ainsi lors du formatage des courriels, le sujet et tous les combinaisons de caractères sont lu afin de repérer des numéros de référence. De plus, des numéros de références peuvent être prédéfini en utilisant le formatage suivant: [type:référence]
.
phpSMTP est une class PHP ajoutant des fonctionnalités a PHPMailer. Celle-ci permet d'authentifier un utilisateur sur un serveur d'envoi SMTP. De plus, des fonctionnalités de modèles y sont ajoutés. Permettant ainsi de faciliter la création de courriel.