02
FEV

Util.php - Une collection de fonctions et snippets PHP à utiliser

Publié le 02/02/15 à 09h33 par DJo

Util.php est une bibliothèque comprenant tout un tas de fonctions PHP et snippets à utiliser au quotidien dans vos développements.

Util.php est une bibliothèque comprenant tout un tas de fonctions PHP et snippets à utiliser au quotidien dans vos développements.

En bon développeur PHP, vous connaissez forcément la doc PHP.net dont les commentaires regorgent de bonnes astuces, fonctions et snippets qui vous manquaient !

Util.php vous permettra d'avoir les fonctions et snippets PHP les plus utiles dans une seule bibliothèque, sans avoir à parcourir la doc à la recherche du snippet idéal.

On compte plus de 55 fonctions PHP dans la bibliothèque:

Debugging

  • var_dump: Un var_dump avec une sortie plus propre et lisible:

var_dump: Un var_dump avec une sortie plus propre et lisible

Arrays & Objects

  • array_first: Donne la première valeur d'un tableau sans modifier le pointeur de la ressource.
  • array_first_key: Même chose mais pour la première clé.
  • array_flatten: Transforme un tableau mutli dimensionnel en un tableau à une dimension.
  • array_get: Récupère un élément du tableau à partir de sa clé s'il existe ou retourne une valeur par défaut spécifiée.
  • array_last: Récupère le dernier élément
  • array_last_key: Récupère la dernière clé
  • array_map_deep: Retourne un tableau avec toutes les valeurs traitées par une fonction spécifiée.
  • array_pluck: Remplace les valeurs d'un tableau pour ne garder que les valeurs correspondant à un index
  • array_search_deep: Recherche dans un tableau à multi dimensions et retourne le chemin vers la valeur trouvée.
  • array_clean: Nettoie un tableau en supprimant les valeurs null, vides, false ou 0.

URLs

  • add_query_arg
  • get_current_url
  • is_https
  • remove_query_arg
  • slugify

Strings

  • htmlentities: La fonction avec ENT_QUOTES par défaut
  • htmlspecialchars: Même chose
  • linkify: Cherche les liens dans une chaîne de caractères et les transforme en lien HTML.
  • random_string: Génère une chaîne de caractères de la longueur spécifiée sans problème de confusion à la lecture (Sans les i majuscules ou les l minuscules, zéro vs O...)
  • number_to_word: Ecrit un chiffre en lettres (anglais).
  • ordinal: En anglais encore, ajoute le positionnement à un chiffre: 2nd / 22th ...
  • remove_accents
  • seems_utf8: Est-ce que la chaîne donnée est en UTF-8 ?
  • safe_truncate: Truncate une chaîne sur une taille spécifique sans couper un mot.
  • size_format: Transforme un chiffre en bytes en un chiffre lisible par un humain (Mb, Kb ...)
  • str_to_bool: Transforme une chaîne de caractère de type "yes", "no", "true", "false", "y", "n" en booléen équivalent.
  • zero_pad: Ajoute des zéros devant un chiffre en le transformant en string
  • strip_space: Enlève tous les espaces d'une chaîne
  • sanitize_string: Enlève les accents, mets en minuscule, supprime les espaces et supprime la ponctuation d'une chaîne.

Autres fonctionnalités

  • force_download: Envoi les headers qui vont bien pour forcer le téléchargement d'un fichier.
  • full_permissions: Retourne les permissions d'un fichier ou dossier en mode string: -rw-r--r--
  • get_client_ip: Récupère l'adresse IP du client avec la gestion des proxy etc.
  • get_gravatar
  • human_time_diff: Retourne une chaîne du temps passé entre 2 dates (En anglais): 2 days ago
  • is_serialized: Est-ce que la chaine est sérialisée ?
  • maybe_serialize: Tente de sérialiser si besoin
  • maybe_unserialize: Tente de désérialiser si besoin
  • nocache_headers: Permet d'empêcher le mise en cache
  • utf8_headers: Rajoute les headers UTF-8 s'ils ne sont pas présents
  • validate_email: Une fonction de validation d'adresse email

Constantes

  • SECONDS_IN_A_MINUTE
  • SECONDS_IN_AN_HOUR
  • SECONDS_IN_A_DAY
  • SECONDS_IN_A_WEEK
  • SECONDS_IN_A_MONTH
  • SECONDS_IN_A_YEAR

 

La bibliothèque est assez active sur Github et devrait apporter régulièrement quelques fonctions pratiques comme celles déjà présentées.

 

Site Officiel

Baraguiné par le 03/02/15 à 19h58
SI ca, c'est pas magnifique...
Baraguiné par Krogoth le 04/02/15 à 09h11
Krogoth sur La Ferme du Web
Je vois pas bien la différence entre array_map_deep et la fonction native array_walk.
Baraguiné par Helios le 04/02/15 à 11h36
Helios sur La Ferme du Web
@Krogoth : Il y a 2 différences en l’occurrence.
Contrairement au array_map existant dans PHP, array_map_deep est récursif, il s'applique également aux sous-éléments (tableaux dans des tableaux). De ce point de vue là, il serait plus à comparer avec le array_walk_recursive.
La seconde différence, fondamentale, c'est qu'un array_map retourne un nouveau tableau alors qu'un array_walk modifie le tableau existant.
Baraguiné par Helios le 04/02/15 à 11h50
Helios sur La Ferme du Web
Sinon je vois que la bibliothèque prévois une fonction de validation d'email. Il faut savoir que c'est une mauvaise idée de vouloir valider une adresse, parce que les règles réelles de validation sont bien plus complexes que ce qu'on croit et qu'on finit plus par limiter l'utilisation. Par exemple GMail permet d'exploiter les tags facilement (avec le caractère " ") mais ce caractère est souvent interdit alors que l'adresse est parfaitement valide. Un compte rendu d'une présentation sur le sujet :
https://cdn.parleys.com/p/530360cae4b06b7f61f3fb82/530361417cf24_comment-et-quand-ne-pas-valider-un-email.pdf
Baraguiné par Helios le 04/02/15 à 11h52
Helios sur La Ferme du Web
Je voulais mettre le caractère "plus" dans mon message précédent mais il a sauté à l'affichage...
Baraguiné par MaitrePylos le 11/02/15 à 09h47
MaitrePylos sur La Ferme du Web
Ce qui me dérange, c'est que maintenant l'auteur de cette classe parcours github et retrouvant les bouts de codes qu'on utilisait avant et s'en octroie la paternité.
Ensuite il vous menace de plainte si vous ne mentionnez pas son nom dans votre code.
Baraguiné par pierrehs le 01/03/15 à 17h13
pierrehs sur La Ferme du Web
@MaitrePylos As-tu des preuve de cela ? L'auteur est-il vraiment comme cela...?
Baraguiné par pierrehs le 01/03/15 à 17h13
pierrehs sur La Ferme du Web
@MaitrePylos As-tu des preuve de cela ? L'auteur est-il vraiment comme cela...?
Baraguiné par pierrehs le 01/03/15 à 17h13
pierrehs sur La Ferme du Web
@MaitrePylos As-tu des preuve de cela ? L'auteur est-il vraiment comme cela...?
Baraguiné par pierrehs le 01/03/15 à 17h13
pierrehs sur La Ferme du Web
@MaitrePylos As-tu des preuve de cela ? L'auteur est-il vraiment comme cela...?
Baraguiné par pierrehs le 01/03/15 à 17h13
pierrehs sur La Ferme du Web
@MaitrePylos As-tu des preuve de cela ? L'auteur est-il vraiment comme cela...?
Baraguiné par pierrehs le 01/03/15 à 17h13
pierrehs sur La Ferme du Web
@MaitrePylos As-tu des preuve de cela ? L'auteur est-il vraiment comme cela...?
Baraguiné par pierrehs le 01/03/15 à 17h13
pierrehs sur La Ferme du Web
@MaitrePylos As-tu des preuve de cela ? L'auteur est-il vraiment comme cela...?
Baraguiné par pierrehs le 01/03/15 à 17h13
pierrehs sur La Ferme du Web
@MaitrePylos As-tu des preuve de cela ? L'auteur est-il vraiment comme cela...?
Baraguiné par pierrehs le 01/03/15 à 17h13
pierrehs sur La Ferme du Web
@MaitrePylos As-tu des preuve de cela ? L'auteur est-il vraiment comme cela...?
Baraguiné par pierrehs le 01/03/15 à 17h16
pierrehs sur La Ferme du Web
P.S. Oups, Désolé pour tous ces doublons, l'ajax de mon navigateur semblais bugé...

Ajouter un Commentaire

Pour poster un commentaire, vous devez être identifié. Vous pouvez choisir parmi ces trois méthodes d'identification:

Compte la Ferme du Web

Identifiez-vous
Inscrivez-vous

Compte Facebook

Connexion avec Facebook

Compte Twitter

Connexion avec votre compte twitter
Rechercher sur la Ferme du web