PHP devient meilleur de jour en jour, mais de nombreuses petites choses gâche encore la fête. Une de ces choses sont les types primitifs, qui ne sont pas objet.
Cette bibliothèque comble ce manque en vous permettant d’utiliser des objets pour les chaînes, les caractères, les tableaux, les tablaux indexés et les nombres.
De nombreuses fonctionnalités ont plusieurs manières d’être appelées, permettant de coller au plus près de la manière de coder de chacun. Vous aurez donc moins de surprise en codant avec Bah!
Bah! à été conçu pour être facile à installer et à utiliser. Installez-le en utilisant Git, Composer ou un fichier Zip. Codez en utilisant ses enchaînements de méthodes, ses alias et ses accesseurs magiques !
Pour être utilisé à la place des types primitifs de PHP, les noms de classe se devaient d’être courts, très courts. Donc, vous n’avez qu’à déclarer la classe au début et ensuite utiliser son nom… Qui est une simple lettre ! Ainsi vous avez S pour les chaînes de caractères, C pour les caractères, A pour les tableaux, H pour les tableaux indexés et N pour les nombres.
use \Malenki\Bah\S; // pour String en anglais
use \Malenki\Bah\C; // pour Character en anglais
use \Malenki\Bah\A; // pour Array en anglais
use \Malenki\Bah\H; // pour Hash en anglais
use \Malenki\Bah\N; // pour Number en anglais
Sauf exception, toutes les méthodes peuvent s’enchaîner, ainsi vous pouvez obtenir à chaque appel un objet de la famille de Bah! et éviter ainsi une fastidieuse liste de variables intermédiaires !
use \Malenki\Bah\S;
$s = new S('Ceci est une chaîne de caractères !');
// affichera ' CECI '
echo $s->upper->sub(4)->center(12);
L’utilisation d’un vieux jeu de codage de caractères comme iso-8859-15 et ses amis est une très mauvaise idée depuis déjà quelques années, donc, Bah! vous décourage l’utilisation de telles vieilleries en vous forçant à l’utilisation exclusive de l’UTF-8 !
use \Malenki\Bah\C;
$c = new C('œ');
// Affichera le nom du bloc unicode
echo $c->block;
Un certain nombre de méthodes n’ont pas de paramètres ou ont un paramètre par défaut. Donc, pour ces cas de figure, des « magic getters » sont suffisants, pas besoin de mettre des parenthèses quand elles ne sont pas nécessaires !
use \Malenki\Bah\A;
$a = new A(array('un', 'deux', 'trois', 'quatre'));
echo $a->join->upper->length;
// Affiche 17;