Constantes globales et Fonctions

Alors que la plupart de vos activités quotidiennes avec CakePHP sera d’initialiser des classes du noyau, CakePHP dispose d’un certain nombre de fonctions globales de confort qui peuvent arriver à point nommé. La plupart de ses fonctions sont à utiliser avec les classes cakePHP (classes de chargement ou de component), mais beaucoup d’autres rendent le travail avec les tableaux ou les chaînes de caractères un peu plus simple.

Nous allons aussi couvrir une partie des constantes disponibles dans les applications CakePHP. L’utilisation des constantes disponibles vous aidera à faire des mises à jour plus lisses, mais sont aussi des moyens pratiques pour pointer certains fichiers ou répertoires dans vos applications CakePHP.

Fonctions Globales

Voici les fonctions disponibles dans le monde CakePHP. La plupart sont juste des emballages pratiques pour d’autres fonctionnalités CakePHP, comme le débogage et la traduction de contenu.

\_\_(string $string_id, [$formatArgs])

Cette fonction gère la localisation dans les applications CakePHP. $string_id identifie l’ID de la traduction. Les chaînes utilisées pour la traduction sont traitées comme chaîne formatées pour sprintf(). Vous pouvez fournir des arguments supplémentaires pour remplacer les espaces réservés dans votre chaîne:

__('You have %s unread messages', h($number));

Note

Regardez la section Internationalisation & Localisation pour plus d’information.

__c(string $msg, integer $category, mixed $args = null)

Notez que la catégorie doit être spécifiée avec une constante de classe I18n, au lieu d’un nom de constante. Les valeurs sont:

  • I18n::LC_ALL - LC_ALL

  • I18n::LC_COLLATE - LC_COLLATE

  • I18n::LC_CTYPE - LC_CTYPE

  • I18n::LC_MONETARY - LC_MONETARY

  • I18n::LC_NUMERIC - LC_NUMERIC

  • I18n::LC_TIME - LC_TIME

  • I18n::LC_MESSAGES - LC_MESSAGES

__d(string $domain, string $msg, mixed $args = null)

Vous permet de remplacer le domaine courant lors de la recherche d’un message.

Utile pour internationaliser un plugin:

echo __d('plugin_name', 'This is my plugin');

__dc(string $domain, string $msg, integer $category, mixed $args = null)

Vous permet de remplacer le domaine courant pour la recherche d’un message. Permet également de spécifier une catégorie.

Notez que la catégorie doit être spécifiée avec une constante de classe I18n au lieu du nom de la constante. Les valeurs sont:

  • I18n::LC_ALL - LC_ALL

  • I18n::LC_COLLATE - LC_COLLATE

  • I18n::LC_CTYPE - LC_CTYPE

  • I18n::LC_MONETARY - LC_MONETARY

  • I18n::LC_NUMERIC - LC_NUMERIC

  • I18n::LC_TIME - LC_TIME

  • I18n::LC_MESSAGES - LC_MESSAGES

__dcn(string $domain, string $singular, string $plural, integer $count, integer $category, mixed $args = null)

Vous permet de remplacer le domaine courant pour la recherche simple au pluriel d’un message. Cela permet également de spécifier une catégorie. Retourne la forme correcte d’un message identifié par $singular et $plural pour le compteur $count depuis le domaine $domain. Certaines langues ont plus d’une forme de pluriel dépendant du compteur.

Notez que la catégorie doit être spécifiée avec une des constantes de classe I18n, au lieu des noms de constantes. Les valeurs sont:

  • I18n::LC_ALL - LC_ALL

  • I18n::LC_COLLATE - LC_COLLATE

  • I18n::LC_CTYPE - LC_CTYPE

  • I18n::LC_MONETARY - LC_MONETARY

  • I18n::LC_NUMERIC - LC_NUMERIC

  • I18n::LC_TIME - LC_TIME

  • I18n::LC_MESSAGES - LC_MESSAGES

__dn(string $domain, string $singular, string $plural, integer $count, mixed $args = null)

Vous permet de redéfinir le domaine courant pour une recherche simple au pluriel d’un message. Retourne la forme pluriel correcte d’un message identifié par $singular et $plural pour le compteur $count depuis le domaine $domain.

__x(string $context, string $singular, mixed $args = null)

Le contexte est un identifiant unique pour la traduction qui permet de la rendre unique pour un domaine défini.

__xn(string $context, string $singular, string $plural, integer $count, mixed $args = null)

Retourne la forme plurielle correcte pour le message identifié par $singular` et $plural pour le compteur $count. Cette méthode vous permet également de définir un « contexte ». Cette méthode est particulièrement pratique car certaines langues ont plus d’une forme pluriel en fonction du nombre de l’objet à mettre au pluriel.

Le contexte est un identifiant unique pour la traduction qui permet de la rendre unique pour un domaine défini.

__dx(string $domain, string $context, string $msg, mixed $args = null)

Vous permet de remplacer le domaine courant lors de la recherche d’un message. Cette méthode vous permet également de définir un « contexte ».

Le contexte est un identifiant unique pour la traduction qui permet de la rendre unique pour un domaine défini.

__dxn(string $domain, string $context, string $singular, string $plural, integer $count, mixed $args = null)

Vous permet de redéfinir le domaine courant pour une recherche simple au pluriel d’un message. Retourne la forme pluriel correcte d’un message identifié par $singular et $plural pour le compteur $count depuis le domaine $domain.

Le contexte est un identifiant unique pour la traduction qui permet de la rendre unique pour un domaine défini.

__dxc(string $domain, string $context, string $msg, integer $category, mixed $args = null)

Vous permet de remplacer le domaine courant pour la recherche d’un message. Permet également de spécifier une catégorie.

Le contexte est un identifiant unique pour la traduction qui permet de la rendre unique pour un domaine défini.

Notez que la catégorie doit être spécifiée avec une constante de classe I18n au lieu du nom de la constante. Les valeurs sont:

  • I18n::LC_ALL - LC_ALL

  • I18n::LC_COLLATE - LC_COLLATE

  • I18n::LC_CTYPE - LC_CTYPE

  • I18n::LC_MONETARY - LC_MONETARY

  • I18n::LC_NUMERIC - LC_NUMERIC

  • I18n::LC_TIME - LC_TIME

  • I18n::LC_MESSAGES - LC_MESSAGES

__xc(string $context, string $msg, integer $count, integer $category, mixed $args = null)

Le contexte est un identifiant unique pour la traduction qui permet de la rendre unique pour un domaine défini.

Notez que la catégorie doit être spécifiée avec une constante de classe I18n, au lieu d’un nom de constante. Les valeurs sont:

  • I18n::LC_ALL - LC_ALL

  • I18n::LC_COLLATE - LC_COLLATE

  • I18n::LC_CTYPE - LC_CTYPE

  • I18n::LC_MONETARY - LC_MONETARY

  • I18n::LC_NUMERIC - LC_NUMERIC

  • I18n::LC_TIME - LC_TIME

  • I18n::LC_MESSAGES - LC_MESSAGES

__dxcn(string $domain, string $context, string $singular, string $plural, integer $count, integer $category, mixed $args = null)

Vous permet de remplacer le domaine courant pour la recherche simple au pluriel d’un message. Cela permet également de spécifier une catégorie. Retourne la forme correcte d’un message identifié par $singular et $plural pour le compteur $count depuis le domaine $domain. Certaines langues ont plus d’une forme de pluriel dépendant du compteur.

Le contexte est un identifiant unique pour la traduction qui permet de la rendre unique pour un domaine défini.

Notez que la catégorie doit être spécifiée avec une des constantes de classe I18n, au lieu des noms de constantes. Les valeurs sont:

  • I18n::LC_ALL - LC_ALL

  • I18n::LC_COLLATE - LC_COLLATE

  • I18n::LC_CTYPE - LC_CTYPE

  • I18n::LC_MONETARY - LC_MONETARY

  • I18n::LC_NUMERIC - LC_NUMERIC

  • I18n::LC_TIME - LC_TIME

  • I18n::LC_MESSAGES - LC_MESSAGES

__n(string $singular, string $plural, integer $count, mixed $args = null)

Retourne la forme correcte d’un message identifié par $singular et $plural pour le compteur $count. Certaines langues ont plus d’une forme de pluriel dépendant du compteur

am(array $one, $two, $three...)

Fusionne tous les tableaux passés en paramètre et retourne le tableau fusionné.

config()

Peut être utilisé pour charger des fichiers depuis le dossier config de votre application via include_once. La fonction vérifie l’existence du fichier avant de l’inclure et retourne un booléen. Prend un nombre optionnel d’arguments.

Exemple: config('un_fichier', 'maconfig');

convertSlash(string $string)

Convertit les slashes en underscores et supprime les premier et dernier underscores dans une chaîne. Retourne la chaîne convertie.

debug(mixed $var, boolean $showHtml = null, $showFrom = true)

Si le niveau de DEBUG de l’application est différent de zéro, $var est affiché. Si $showHTML est true (vrai) ou laissé null, la donnée est formatée pour être visualisée facilement dans un navigateur.

Si $showFrom n’est pas défini à false, debug retournera en sortie la ligne depuis laquelle il a été appelé. Voir aussi Debugger

stackTrace(array $options = array())

Imprine la stack trace si le niveau de DEBUG de l’application est supérieur à 0.

env(string $key)

Récupère une variable d’environnement depuis les sources disponibles. Utilisé en secours si $_SERVER ou $_ENV sont désactivés.

Cette fonction émule également PHP_SELF et DOCUMENT_ROOT sur les serveurs ne les supportant pas. En fait, c’est une bonne idée de toujours utiliser env() plutôt que $_SERVER ou getenv() (notamment si vous prévoyez de distribuer le code), puisque c’est un wrapper d’émulation totale.

fileExistsInPath(string $file)

Vérifie que le fichier donné est dans le include_path PHP actuel. Renvoie une valeur booléenne.

h(string $text, boolean $double = true, string $charset = null)

Raccourci pratique pour htmlspecialchars().

LogError(string $message)

Raccourci pour: Log::write().

pluginSplit(string $name, boolean $dotAppend = false, string $plugin = null)

Divise le nom d’un plugin en notation par point en plugin et classname (nom de classe). Si $name de contient pas de point, alors l’index 0 sera null.

Communément utilisé comme ceci list($plugin, $name) = pluginSplit('Users.User');

pr(mixed $var)

Raccourci pratique pour print_r(), avec un ajout de balises <pre> autour de la sortie.

sortByKey(array &$array, string $sortby, string $order = 'asc', integer $type = SORT_NUMERIC)

Tris de $array par la clé $sortby.

stripslashes_deep(array $value)

Enlève récursivement les slashes de la $valeur passée. Renvoie le tableau modifié.

Définitions des constantes du noyau

La plupart des constantes suivantes font référence aux chemins dans votre application.

constant APP

Chemin absolu de votre répertoire des applications avec un slash.

constant APP_DIR

La même chose que app ou le nom du répertoire de votre application.

constant APPLIBS

Le chemin du répertoire Lib de votre application.

constant CACHE

Chemin vers le répertoire de cache. il peut être partagé entre les hôtes dans une configuration multi-serveurs.

constant CAKE

Chemin vers le répertoire de CAKE.

constant CAKE_CORE_INCLUDE_PATH

Chemin vers la racine du répertoire lib.

constant CONFIG

Chemin vers le dossier app/Config.

Nouveau dans la version 2.10.0.

constant CORE_PATH

Chemin vers le répertoire racine avec un slash à la fin.

constant CSS

Chemin vers le répertoire CSS publique.

Obsolète depuis la version 2.4.

constant CSS_URL

Chemin web vers le répertoire CSS.

Obsolète depuis la version 2.4: Utilisez la valeur de config App.cssBaseUrl à la place.

constant DS

Raccourci pour la constante PHP DIRECTORY_SEPARATOR, qui est égale à / pour Linux et \ pour Windows.

constant FULL_BASE_URL

Préfix URL complet. Comme https://example.com

Obsolète depuis la version 2.4: Cette constante est dépréciée, vous devriez utiliser Router::fullBaseUrl() à la place.

constant IMAGES

Chemin vers le répertoire images publique.

Obsolète depuis la version 2.4.

constant IMAGES_URL

Chemin web vers le répertoire image publique.

Obsolète depuis la version 2.4: Utilisez la valeur de config App.imageBaseUrl à la place.

constant JS

Chemin vers le répertoire Javascript publique.

Obsolète depuis la version 2.4.

constant JS_URL

Chemin web vers le répertoire Javascript publique.

Obsolète depuis la version 2.4: Utilisez la valeur de config App.jsBaseUrl à la place.

constant LOGS

Chemin du répertoire des logs.

constant ROOT

Chemin vers le répertoire racine.

constant TESTS

Chemin vers le répertoire de test.

constant TMP

Chemin vers le répertoire des fichiers temporaires.

constant VENDORS

Chemin vers le répertoire vendors.

constant WEBROOT_DIR

La même chose que webroot ou le nom du répertoire webroot.

WWW\_ROOT

Chemin d’accès complet vers la racine web (webroot).

Définition de Constantes de Temps

constant TIME_START

timestamp Unix en microseconde au format float du démarrage de l’application.

constant SECOND

Égale à 1

constant MINUTE

Égale à 60

constant HOUR

Égale à 3600

constant DAY

Égale à 86400

constant WEEK

Égale à 604800

constant MONTH

Égale à 2592000

constant YEAR

Égale à 31536000