Outils

L'un des intérêts d'utiliser un framework, c'est qu'il regroupe une panoplie d'outils pour nous simplifier la vie.
Minim n'est pas en reste, voici une liste assez complète de ce que vous avez à votre disposition et comment tous cela s'utilise.

4 types d'outils sont disponibles :

  • Les fonctions dans le fichier inclus "inc.coreFunctions.php".
  • Les outils dans les classes "toolz".
  • Les outils internes de minim.
  • Les constantes de chemin, d'état et de configuration.

/Core/inc/inc.coreFunctions.php

Rangez ici vos fonctions perso préférées !

  • array_key_exists_assign_default( $mSearch,$aArray,$mDefault)
    • Vérifie si une clé de tableau existe.
    • Si elle existe, elle est renvoyée.
    • Si elle n'existe pas, la valeur par défaut donnée en argument est renvoyée.
  • define_exists_assign_default( $mSearch,$mDefault)
    • Vérifie si une constante existe.
    • Si elle existe, sa valeur est renvoyée.
    • Si elle n'existe pas, la valeur par défaut donnée en argument est renvoyée.
  • akead($mSearch,$aArray,$mDefault)
    • alias de array_key_exists_assign_default().
  • dexad($mSearch,$mDefault)
    • alias de define_exists_assign_default().
  • debug($mDebug)
    • Renvoie un var_dump de la valeur entre deux balises "pre".

/Core/lib/Toolz

Ici la liste des outils par catégorie. Toutes ces méthodes sont statiques (Toolz_Checker::isSafeIp($sIp) par exemple).

Toutes les méthode ne sont pas listées, nous vous invitons à aller voir directement dans les fichiers les différentes méthodes disponibles.

Enfin, les noms des méthodes nous paraissent assez parlant pour ne pas vous détailler chaque méthode.

  • Checker
    • isSafeIp($sIp)
    • isValidIp($sIp)
    • isIpV4($sIp)
    • isIpV6($sIp)
    • checkParams(array $aParams)
    • isValidMethod($sClassMethod)
    • checkRegExp($sStr, $sRegExp)
    • checkMinLength($mString, $iMinLength)
    • checkMaxLength($mString, $iMaxLength)
    • checkStrictLength($mString, $iStrictLength)
    • ...
  • Crypt
    • getSha1ForHtpasswd($sPwd)
  • Img
    • resize($sImgSrcPath, $iMaxSize, $sOrient='', $sImgDstPath='', $iQuality=100)
    • getSize($sImgSrcPath='')
  • Main
    • checkVersion() (si on est en dév, en test, en prod...)
    • getDevBanner()
    • getDraftBanner()
  • Mailer
    • send($aOptions)
  • MySql
    • getTableSize($sTableName)
    • getDbSize()
    • getTableList()
  • Tpl
    • getClass($sClassName='')
    • getId($sId='')
    • getUl($sContent='', $sClass='', $sId='')
    • getLi($sContent='', $sClass='', $sId='')
    • getDiv($sContent='', $sClass='', $sId='')
    • getSpan($sContent='', $sClass='', $sId='')
    • getHx($sLevel, $sContent='', $sClass='', $sId='')
    • getP($sContent='', $sClass='', $sId='')
    • getA($sUrl, $sContent, $sClass='', $sId='', $bTargetBlank=false)
    • replacePlaceholdersFromArray($aReplace, $sTpl, $sPlaceholderTpl = '{__KEY__}')
    • getToolTip($sContents)
    • getToolTipTag($sTagName)
    • getPaging($iNbPages, $iActivePage, $sQueryString, $bArrow=true)
  • Dates
    • getNumDay($sDate)
    • getNumWeek($sDate)
    • getNumberOfDays($sDate)
    • getHolidays($iYear=null)
    • diffCalendar($sFirstDate, $sSecondDate)
    • diffWorkDay($sFirstDate, $sSecondDate)
    • isHoliday($iTimestamp)
    • isWorkingDay($iTimestamp)
  • FileSystem
    • getRecursivePathList($sDirPath)
    • getPathList($sDirPath)
    • purgeDir($sDirPath)
    • clearDir($sDir, $bDelete=false)
    • uploadFile($sIndex, $sUploadPath, $sId='')
    • downloadFile($sFilename, $sFilePath) {
  • Form
    • hasBeenChecked($sChoice, $sValue, array $aData)
    • hasBeenSelected($sChoice, $sValue, array $aData)
    • optionsYear($sName='', $iYear=1900, $aData='', $sChoice='')
    • getSelect($sName, $sId='', $sClass='')
    • optionsList($sChoice='', array $aData=array())
    • label($sDisplay, $sForID, $sClass='text-left')
    • input($sType, $sName, $sId, $sValue=null, $sClass='', $bReadonly=false, $sPlaceholder='')
    • file($sName, $sId, $sClass='')
    • checkbox($sName, $sId, $sValue = null, $sChoice='', array $aData=array(), $sClass='')
    • textarea($sName, $sId, $sValue = null, $sClass='', $sRows='', $sCols='')
    • genInputsHidden($sName, $sValue, $sId)
  • Format
    • XssKiller(&$aValue)
    • formatFromSerializeArray(array $aForm)
    • formatFromJQuerySerialize($sForm)
    • formatTanslateNodeName($sNodeName)
    • sanitizeStr($mString, $aOptions = array('addslashes', 'htmlentities'))
    • sanitizeInt($mString, $aOptions = array('onlyInt'))
    • removeAccent($sStr)
    • ucfirst($sStr)
    • ucwords($sStr)
    • strtoupper($sStr)
    • strtolower($sStr)
    • ...
  • WebSvc
    • curlMinim($sUrl, $aPost, $sAuth)

minim

Minim offre des outils propres à son fonctionnement. Petite liste des outils les plus importants par classe PHP.

  • AlertBoxMgr
    • __set($sType, $sMsg) : permet de remonter un message de succès, d'erreur ou d'information sur le front.
  • Lang
    • getMsg($sCat, $sKey) : permet de récupérer une traduction dans la langue en cours.
  • ModulesMgr
    • getFilePath($sModuleName, $sType, $sLang='') : permet de récupérer facilement le chemin d'un fichier dans un module donné.
  • UserRequest
    • getLang()
    • getPage()
    • setRequest($aNewRequest)
    • getRequest($sKey='')
    • setParams($sKey, $mValue)
    • setAllParams(array $aParams)
    • getParams($sKey='')
    • setEnv($sKey, $mValue)
    • getEnv($sKey='')
    • getFiles($sKey='')
    • getCookie($sKey)
    • setCookie($sKey, $sValue, $sTTL)
    • getUrl($sPage='', $sLang='')
    • startBenchmark($sIndex='')
    • stopBenchmark($sIndex='', $bInTpl=false)
    • getBenchmark($sIndex='', $bInTpl=false)
  • Config (à initialiser avec le nom du module dont on veut gérer la configuration, minim par défaut)
    • getGlobalConf($sKey='') : renvoie la clé de configuration ou toute la configuration si aucun argument.
    • setGlobalConf($sKey, $sValue) : enregistre une clé dans la configuration.
  • SPDO (s'initialise au démarrage avec les identifiants en configuration)
    • SPDO::getInstance() : permet de récupérer un objet PDO (singleton).
  • TplMgr
    • buildSimpleFileTpl($sTplPath, $sXmlPath) : rempli un template avec les traductions correspondantes.
    • addCommonElements($sCache) : méthode privée appelée à la génération de templates pour ajouter des valeurs comme l'URL du site par exemple.
  • Session*
    dans package.Session.php, plusieurs classes permettent de gérer les sessions par type de donnée à stocker. Elles ont ces fonctions communes :
    • set($sKey, $mValue='')
    • get($sKey)
    • setSubSession($sSubKey, $sKey, $mValue)
    • getSubSession($sSubKey, $sKey)
    • destroy()
    • keyExists($sKey)
    • destroySubSessionKey($sSubKey, $sKey)

Les constantes

Minim offre toute une liste de constantes prédéfinies.

Elles ne sont pas toutes présentées ici, mais sont toutes déclarées dans le fichier inc.coreAutoConfig.php, n'hésitez pas à le consulter pour avoir la liste exhaustive.

Nous pouvons distinguer deux types de constantes :

Les constantes de chemin et d'état

  • ADMIN
    Si l'on est en mode admin (backoffice).
  • WEB_PATH
    L'URL de la racine du projet.
  • ROOT_PATH
    Le chemin absolu sur le serveur de la racine du projet.
  • CORE_PATH
    Le chemin absolu sur le serveur du cœur (répertoire Core) du projet.
  • IMG_URL
    L'URL du répertoire des images.
  • CSS_URL
    L'URL du répertoire des fichiers CSS.
  • JS_URL
    L'URL du répertoire des fichiers Javascript.
  • ...

Les constantes de configuration

  • DOMAIN_NAME
    Le nom de domaine du projet.
  • EMAIL_CONTACT
    L'email du contact principal du projet.
  • SITE_URL_PROD
    L'URL de production du projet.
  • SITE_URL_DEV
    L'URL de développement du projet.
  • ADMIN_URL_PROD
    L'URL de production du backoffice du projet.
  • ADMIN_URL_DEV
    L'URL de développement du backoffice du projet.
  • DEFAULT_LANG
    La langue par défaut du projet.
  • ...