Sonata Bundle pour Symfony2 version 2.0.X

Dans mes posts je vais essayer d’être concis et précis

Si vous utilisez les bundles de Sonata vous avez sans doute remarqué que la branche "master" du dépôt pointait vers la version 2.1 de Symfony2.

Voilà la solution pour continuer d'utiliser les bundles avec la version stable de 2.0.X

Dans votre fichier deps:

[SonataAdminBundle]
    git=http://github.com/sonata-project/SonataAdminBundle.git
    target=/bundles/Sonata/AdminBundle
    version=origin/2.0

[SonataDoctrineORMAdminBundle]
    git=http://github.com/sonata-project/SonataDoctrineORMAdminBundle.git
    target=/bundles/Sonata/DoctrineORMAdminBundle
    version=origin/2.0

[SonataMediaBundle]
    git=http://github.com/sonata-project/SonataMediaBundle.git
    target=/bundles/Sonata/MediaBundle
    version=origin/2.0

puis exécuter la commande pour réinstaller vos bundles:

$ bin/vendors install --reinstall

et voilà j'espère que ce post vous aidera à gagner 1 à 2 h "d'arrachage de cheveux" :-)

[PHP] Supprimer les accents des caractères accentués

nous avons vu dans un précédent snippet comment remplacer les caractères accentués d'une chaine par leur équivalent html.

ici nous allon voir une petite fonction pour les remplacer par leurs équivalents sans les accents :)

function removeAccents($string)
    {
        return iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', $string);
    }

à noter un fonctionnement bizarre sous windows, donc attention, fonctionnel sous Linux seulement.

si vous voulez un tuto complet sur le sujet, un bon article ici : http://www.weirdog.com/blog/php/supprimer-les-accents-des-caracteres-acc...

EDIT :
Après quelques tests plus poussés, iconv semble un peu à la ramasse, rien ne vaut une bonne vielle fonction maison pour faire le boulot :

function _removeAccents ($text) {
        $alphabet = array(
            'Š'=>'S', 'š'=>'s', 'Ð'=>'Dj','Ž'=>'Z', 'ž'=>'z', 'À'=>'A', 'Á'=>'A', 'Â'=>'A', 'Ã'=>'A', 'Ä'=>'A',
            'Å'=>'A', 'Æ'=>'A', 'Ç'=>'C', 'È'=>'E', 'É'=>'E', 'Ê'=>'E', 'Ë'=>'E', 'Ì'=>'I', 'Í'=>'I', 'Î'=>'I',
            'Ï'=>'I', 'Ñ'=>'N', 'Ò'=>'O', 'Ó'=>'O', 'Ô'=>'O', 'Õ'=>'O', 'Ö'=>'O', 'Ø'=>'O', 'Ù'=>'U', 'Ú'=>'U',
            'Û'=>'U', 'Ü'=>'U', 'Ý'=>'Y', 'Þ'=>'B', 'ß'=>'Ss','à'=>'a', 'á'=>'a', 'â'=>'a', 'ã'=>'a', 'ä'=>'a',
            'å'=>'a', 'æ'=>'a', 'ç'=>'c', 'è'=>'e', 'é'=>'e', 'ê'=>'e', 'ë'=>'e', 'ì'=>'i', 'í'=>'i', 'î'=>'i',
            'ï'=>'i', 'ð'=>'o', 'ñ'=>'n', 'ò'=>'o', 'ó'=>'o', 'ô'=>'o', 'õ'=>'o', 'ö'=>'o', 'ø'=>'o', 'ù'=>'u',
            'ú'=>'u', 'û'=>'u', 'ý'=>'y', 'ý'=>'y', 'þ'=>'b', 'ÿ'=>'y', 'ƒ'=>'f',
        );

        $text = strtr ($text, $alphabet);

        // replace all non letters or digits by -
        $text = preg_replace('/\W+/', '-', $text);

        return $text;
    }

[PHP] vider un dossier

tout est dans le code, le fonctionne vide un dossier de tout son contenu (fichiers et dossiers), donc elle est récursive.

exemple d'utilisation :

clear_dir(realpath(dirname(__FILE__) . "/../cache"));

la fonction :

function clear_dir($dir, $delete = false) {
	$dossier = $dir;
	$dir = opendir($dossier); 
	while($file = readdir($dir)) { 
		if(!in_array($file, array(".", ".."))){
			if(is_dir("$dossier/$file")) {
				clear_dir("$dossier/$file", true);
			} else {
				unlink("$dossier/$file");
			}
			
			
		}
	} 
	closedir($dir);
	
	if($delete == true) {
		rmdir("$dossier/$file");
	}
}

[PHP] get the current URL (url de la page en cours)

public static function getCurrentUrl() {
      return (!empty($_SERVER['HTTPS']) ? "https://" : "http://" ) . $_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
}

[PHP] calcul de l'age à partir de la date de naissance

tout est dans le titre :)

getAgeFromBirthday($birthday) {
      list($annee, $mois, $jour) = split('[-.]', $birthday);
      $today['mois'] = date('n');
      $today['jour'] = date('j');
      $today['annee'] = date('Y');
      $annees = $today['annee'] - $annee;
      if ($mois >= $today['mois']) {
        if ($mois == $today['mois']) {
          if ($jour > $today['jour']) $annees--;
        } else {
          $annees--;
        }
      }
      return $annees;
    }

Tags:

Pages

Subscribe to www.snippets.fr RSS