Astuces de développeur - blog.firehist.org

Développement informatique, Technologies du web et le Monde du software.


06
sept
2010

Editeur wysiwyg: « elRTE » une alternative à CKeditor

elRTE est un éditeur WYSIWYG Open Source et assez riches en fonctionnalitées construit sur le fameux Framwork jQuery UI.

Il met à votre disposition toutes les fonctions standards d’un éditeur de texte et possède tous les « plus » comme les fonctions « annuler/rétablir », une gestion des tableaux avancés, l’insertion d’élément HTML avec des style personnalisable.

Une démo : http://elrte.org/demo

L’interface est contrôlable directement depuis un fichier CSS et peut donc être très facilement personnalisable.

Cette version 1.0 est très prometteuse. Il possède une fonction « save » qui peut être rattaché à une fonction JavaScript personnalisable.

The interface is controlled via a single CSS file and can be customized pretty easily.

It has a built-in « save » button which can be attached to a JS function that saves the content that is pretty useful for helping users not to lose their content.

Sans oublier que elRTE est conçu pour fonctionner avec un gestionnaire de fichier en ligne elFinder.

Une démo : http://elrte.org/elfinder/demo

Bon dév’


Posté le : 06 sept 2010
Posté dans Développement, JavaScript, Web, jQuery |
26
août
2010

Firefox 4 bêta 4

Depuis le 24 aout, Mozilla à mis à disposition des internautes la dernière bêta de Firefox 4, qui intègre nativement Firefox Sync et Panorama (Candy Tab). Enfin une façon innovante et surprenante de gérer ses onglets.

Firefox 4 Bêta 4 features

Free download – Téléchargement gratuit

Enjoy!


Posté le : 26 août 2010
Posté dans Non classé |
26
août
2010

Symfony: gestion de document; lecture/écriture

Un sujet qui m’intéresse énormément, la génération ou la lecture de document tel que des fichier Excel, PDF, etc.

Je vais essayer de lister les méthodes/plugins/codes pour chaque type de document, faite moi part de vos librairies utilisées et je les ajouterai à cette liste.

PDF

TCPDF

Une librairie PHP gratuite et OpenSource domine un peu le marché, je parle de TCPDF. Et pour notre bonheur … il en existe une version pour symfony! WAOUUUU.

DOMPDF

Cette librairie nous permet de convertir du code HTML en PDF. Cette librairie est elle aussi gratuite et Open Source, avec une activité assez soutenue.

Le plugin symfony n’est plus à jour depuis la version 1.0 de symfony, mais cette librairie est je pense facilement intégrable.

Excel

PHPExcel

Librairie également OpenSource qui vous permet de lire et écrire relativement facilement dans des fichiers Excel. Le format Excel 2007 est pris en compte.

ExcelReader

Cette librairie se base sur le projet OpenSource PHP Excel Reader et lit seulement les fichiers excel.

Voilà, si vous en avez d’autres, pour d’autres formats ou quoi que ce soit, prévenez moi!

Bon dév’


26
août
2010

Aide au déploiement d’un projet symfony

Celà fait un moment que j’utilise ce site mais je n’avais jamais pensé à vous le faire partager. Certains ont une check-list pour le déploiement d’une application! Et bien je vous propose cette check-list Online, Agréable, Complète!

http://symfony-check.org

Bon dév’


Posté le : 26 août 2010
Tags: , , ,
Posté dans Développement, Symfony, Web |
26
août
2010

Symfony: sfFinder pour lister les modules d’une application

Imaginer vouloir lister dynamiquement les modules présents dans votre application. Mais pourquoi?
Par exemple pour faire un menu dynamique à votre backend et ainsi éviter de retoucher au layout sans cesse!

Je reprend la technique de funstaff.ch avec la class sfFinder disponible sous symfony.

Quelques liens:

La classe sfFinder

C’est (comme son nom l’indique) une classe qui permet de faire des recherches!!! WAOUUUU mais encore? Elle permet de faire des recherches sur des fichiers ou/et des répertoires.

Comment manipuler cette classe ?

// On crée l'objet sfFinder en spécifiant le type de la recherche
// soit des fichiers (file), soit des répertoires (dir) ou tous (any)
$finder = sfFinder::type('file');
// On peut préciser des filtres
$finder->name('*.php');
// Et enfin lancer la recherche avec in($dir_de_recherche)
$files = $finder->in('/home/prod/mon_projet');
// Cette méthode retourne un array de fchier
// Exemple de traitement de la réponse:
foreach ($files as $file) {
   $handle = fopen($file, "r");
   ...
}

Je reviendrai sur cette classe peut-être dans un post dédié à elle. Mais là le but est toujours de lister les modules d’une application!

Lister les modules d’une application

$modules = sfFinder::type('directory')
                     ->relative()
                     ->maxdepth(0)
                     ->in(sfConfig::get('sf_app_module_dir'));

Je traduis:

  • On recherche des répertoires
  • On veut que le résultat de la méthode in() à la place de retourner par défaut un chemin absolu,  nous retourne un tableau de chemin relatif (c’est à dire relatif au chemin du script courant ou vous êtes!)
  • On ne rentre dans aucun des dossiers trouvés
  • On lance la recherche dans le répertoire des modules de symfony

Voici l’architecture d’une application symfony:

|VOTRE APPLICATION (frontend, backend, etc…)
|–config
|–lib
|–module (le dossier que l’on parcours pendant la recherche)
|—-module1 (on ne rentre pas dans module1,2 etc…)
|—-module2
|—-etc…
|–templates

En retournant les chemins relatifs et non absolu, et étant placé dans le dossier /module/, le tableau de fichier renverra simplement le nom des modules :)

Bon dév’


Posté le : 26 août 2010
Tags: , , , , ,
Posté dans PHP, Symfony, Web |
20
août
2010

Symfony: Changer le layout via un filtre (ou filter)

Le but est de pouvoir modifier dynamiquement le layout depuis un filtre.

Imaginons vous créez un plugin qui possède un layout et vous voulez l’appliquer à tous le backend par exemple. Vous allez créer un fichier /VotrePlugin/web/layout.php.

Vous allez ensuite créer un filtre qui va configurer un nouveau layout avant de lancer l’action et la vue correspondant à la requête dans le dossier /VotrePlugin/lib/.

class VotreFilter extends sfFilter {
  public function execute($filterChain) {
    $layout = sfConfig::get('sf_web_dir') . '\VotrePlugin\layout'; // sans le PHP, il le rajoute tous seul!
    $this->getContext()->getActionStack()->getFirstEntry()->getActionInstance()->setLayout($layout);
    $filterChain->execute(); // continu le déroulement du MVC de symfony
  }
}

Et voila, il vous suffit d’activer le filtre dans le fichier de configuration de l’application /APPS/config/filter.yml comme ci-dessous:

[yml]
rendering: ~
security: ~
# insert your own filters here
unNom:
class: VotreFilter
cache: ~
execution: ~
[/yml]


Posté le : 20 août 2010
Tags: ,
Posté dans Symfony, Web |
19
août
2010

sfTaskExtraPlugin ou l’amélioration du système de tâches

Ce fameux plugin sfTaskExtraPlugin est maintenu par la team de dev de symfony. Il permet d’améliorer le système de tâches (ou tasks) initialement inclut dans symfony.

Voici une liste des fonctions ajouter:

Doctrine

  • doctrine:build-app-filters: Builds form filter classes in the application lib directory
  • doctrine:build-app-forms: Builds form classes in the application lib directory

Generator

  • generate:controller: Generates a new front controller in the web directory
  • generate:plugin: Generates a new plugin
  • generate:plugin-module: Generates a new module in a plugin
  • generate:test: Generates a new unit test stub script

Plugin

  • plugin:package: Create a plugin PEAR package

Propel

  • propel:build-app-filters: Builds form filter classes in the application lib directory
  • propel:build-app-forms: Builds form classes in the application lib directory

Subversion

  • subversion:set-props: Sets typical Subversion properties

Test

  • test:plugin: Launches a plugin test suite

Posté le : 19 août 2010
Tags: , , , , ,
Posté dans Développement, Symfony, plugins |
17
août
2010

Astuces pour accélérer Firefox

Ce sujet est très largement abordé sur la toile, mais je trouve que les autres posts manque tous simplement de synthétisation!

Les modifications

Ouvret Firefox, puis taper dans la barre d’adresse: about:config

about:config de firefox

about:config de firefox

Une fois sur cette page utiliser le « filtre » avec la chaine suivante : « network.http.« 

Puis modifier les valeurs suivante :

  • network.http.max-connections : mettez 40
  • network.http.max-connections-per-server : mettez 8.
  • network.http.pipelining : mettez à true.
  • network.http.pipelining.maxrequests : mettez 32.
  • network.http.proxy.pipelining : mettez à true.
  • network.http.max-persistent-connections-per-proxy : mettez 16.
  • network.http.max-persistent-connections-per-server : mettez 16.
  • Créez une nouvelle « valeur booléenne » nommée config.trim_on_minimize et attribuez la valeur « true« .

Ces valeurs permettent d’augmenter la rapidité de la façons suivantes:

  • Plus de connections simultanées
  • Utilisation de connections déjà créée au lieu d’en créer de nouvelles.

Changer la valeur du « filtre » avec: « ui.submenuDelay« .

  • Changer cette valeur à 0

Une erreur ?!

J’ai créé une valeur en plus, mais je ne me souviens pas laquelle! Malin…Il n’y a que la réinstallation de FireFox.

Si vous vous rappelez de la valeur que vous avez créée/modifié, utiliser le filtre et puis le menu contextuelle du clic droit pour réinitialiser cette valeur.


15
août
2010

Comment Démarrer, Arrêter et redémarrer Apache 2 Web Server

Apache 2 Web Server

Alors nous allons voir comment démarrer, arrêter et redémarrer, le serveur internet apache2 sous un environnement DEBIAN/Ubuntu LINUX ou bien UNIX.

Alors d’abord, on se connect en ssh au serveur:

$ ssh root@votre.serveur.com

Comment démarrer Apache2:

$ /etc/init.d/apache2 start

ou pour ubuntu :

$ sudo /etc/init.d/apache2 start

Comment arrêter Apache2:

$ /etc/init.d/apache2 stop

ou pour ubuntu :

$ sudo /etc/init.d/apache2 stop

Comment redémarrer Apache2:

$ /etc/init.d/apache2 restart

ou pour ubuntu :

$ sudo /etc/init.d/apache2 restart

15
août
2010

Fichier ProjectConfiguration.php de base!

<?php

require_once dirname(__FILE__).'/../lib/vendor/symfony/lib/autoload/sfCoreAutoload.class.php';
sfCoreAutoload::register();

class ProjectConfiguration extends sfProjectConfiguration {

  }
?>

Posté le : 15 août 2010
Tags: , , , ,
Posté dans PHP, Symfony, Web |