Il s’agit d’un environnement de développement multi-plateformes relativement complet basé sur la plateforme Mozilla. Issu du logiciel non libre Komodo IDE, cet IDE contient tout ce que l’on peut attendre d’un environnement de développement tel que :
la coloration syntaxique pour de nombreux langages de programmation (PHP, Python, Ruby, C++, XUL, HTML, Yaml, Perl, …)
l’auto-complétion qui est très bien réalisée va reconnaitre les retours de fonction pour peu que vous ayez documenté votre code en suivant les normes (par exemple PHPDoc si vous développez en PHP)
l’aide en temps réel se basant sur un dictionnaire pour tout ce qui concerne les fonctions natives ou sur vos commentaires pour les fonctions que vous développerez
la gestion de projet avec la possibilité d’ouvrir les projets ou documents que vous aviez laissé ouvert lors de votre dernière utilisation
une gestion des snippets (bibliothèque de bout de code que vous utilisez régulièrement afin que vous n’ayez pas à les taper à chaque fois)
une liste des classes, méthodes, variables afin de faciliter la navigation dans votre code
le pliage et dépliage du code
la possibilité d’aller à la définition d’une fonction que vous utilisez dans votre programme avec un simple Ctrl + clic
une recherche à la Firefox (recherche en temps réel lorsque l’on tape le mot recherché) ou une recherche sur un dossier ou dans le projet en entier
un comparateur de différence entre deux fichiers
et encore une liste très longue de fonctionnalités plus utile les unes que les autres
Comme un IDE ne conviendra jamais parfaitement à un développeur, les créateurs de cet environnement n’ont pas oublié d’ajouter un système de plugins permettant d’étendre facilement l’application selon ses besoins. De plus, il existe aussi la possibilité de créer des macros afin d’automatiser certaines tâches ou même d’étendre les possibilité de Komodo Edit.
Mon avis : J’utilise Komodo IDE en tant qu’éditeur PHP et Javascript actuellement même si je peux l’utiliser également pour de l’ASP/.NET (mais Ms Visual Web Express propose de tester le script directement en lançant le navigateur et IIS), mais aussi pour du RoR (Ruby On Rails). Je regrette toute fois qu’il soit en anglais … Mais cela reste un très bon éditeur comme Eclipse ou NetBeans mais en plus léger ! Comparé à Scite, Notepad++ et PSPad, il propose l’autocomplétion, la coloration syntaxique et l’accés aux variables, classes, et fonctions au sein même du fichier et ca c’est vraiment un plus !
Il est parfois nécessaire d’envoyer des variables vers un script sur un serveur, afin de stocker certaines données dans une base de données par exemple. Cela est possible avec la méthode send() (ou sendAndLoad()) de l’objet LoadVars. Dans cet article, nous allons travailler avec la fonction sendAndLoad() d’ActionScript.
Pour ce premier tutorial sur Flash et ActionScript, nous allons mettre en place une application Flash pour notre vétérinaire sous la forme :
Un formulaire Flash qui demande : le prénom de l’animal, sa race, son âge et son propriétaire
Un fichier « reponse.as » qui contiendra le code ActionScript
Un fichier « reponse.php » qui contiendra le code PHP
Le formulaire Flash fonctionne de la façon suivante :
L’utilisateur indique les informations
L’utilisateur clique sur le bouton
Les données sont testées
Les données sont envoyées au script PHP
PHP traite les données et envoit des données au sujet du traitement
Flash confirme le traitement
Pour la partie ActionScript (fichier : « reponse.as »)
/*
###
# Envoyer des données vers de FLASH vers PHP
# Récupérer les données de PHP vers FLASH
###
*/
// Importer les bibliothèques utiles au script
import mx.controls.Alert;
// Définir le thème de l'animation
_global.style.setStyle("themeColor", "haloBlue"); // Ici, le thème "haloBlue"
// Définir les variables utiles
var cPrenom = "";
var cRace = "";
var cAge = "";
var cChoix = "";
var cProprietaire = "";
// Gestion du clic sur le bouton
monBtn.onPress = function() {
// Test du clic (uniquement dans l'IDE Flash)
trace("On a appuyé sur le bouton");
// On instancie 2 variables pour gérer les erreurs
var erreurChamps = "Vous avez oublié de saisir : \n";
var erreurMsg = false;
// On vérifie si les champs sont remplis
if ((tPrenom.text == "") || (tPrenom.text == undefined)) {
erreurChamps += "- Le prénom\n";
erreurMsg = true;
}
if ((tRace.text == "") || (tRace.text == undefined)) {
erreurChamps += "- La race\n";
erreurMsg = true;
}
if ((tAge.text == "") || (tAge.text == undefined)) {
erreurChamps += "- L'âge\n";
erreurMsg = true;
}
if ((tProprietaire.text == "") || (tProprietaire.text == undefined)) {
erreurChamps += "- Le propriétaire\n";
erreurMsg = true;
}
// On affiche le message dans l'alert
if (erreurMsg == true) {
Alert.show(erreurChamps);
}
// On transmet les données à PHP
else {
var lvEnvoieDonnees:LoadVars = new LoadVars();
// Affectation des données aux variables de transmission
lvEnvoieDonnees.prenom = tPrenom.text;
lvEnvoieDonnees.race = tRace.text;
lvEnvoieDonnees.age = tAge.text;
lvEnvoieDonnees.choix = tChoix.selectedItem.label;
lvEnvoieDonnees.proprietaire = tProprietaire.text;
var lvRecoieDonnees:LoadVars = new LoadVars();
lvRecoieDonnees.onLoad = function(ok:Boolean):Void {
// On récupère les variables depuis PHP
cPrenom = lvRecoieDonnees.prenom;
cRace = lvRecoieDonnees.race;
cAge = lvRecoieDonnees.age;
cProprietaire = lvRecoieDonnees.proprietaire;
cTransmission = lvRecoieDonnees.tranmission;
Alert.show("Données reçues depuis PHP");
}
lvEnvoieDonnees.sendAndLoad("http://blog.damienvidal.net/tutoriaux/flash/sendandload/reponse.php", lvRecoieDonnees);
}
}
Pour la partie PHP (fichier : « reponse.php »)
/*
###
# Réception des données depuis l'application FLASH
# Transmission de données vers l'application FLASH
###
*/
// Récupérer les données envoyées par FLASH
$prenom = $_GET["prenom"];
$race = $_GET["race"];
$age = $_GET["age"];
$choix = $_GET["choix"];
$proprietaire = $_GET["proprietaire"];
// Variables utiles
$detecter = false;
// Vérifier que les données ne sont pas à vide lors de la transmission!
if (empty($prenom)) {
$msgErreur = "- Prénom vide\n";
$detecter = true;
}
if (empty($race)) {
$msgErreur .= "- Race vide\n";
$detecter = true;
}
if (empty($age)) {
$msgErreur .= "- Age vide\n";
$detecter = true;
}
if (empty($proprietaire)) {
$msgErreur .= "- Propriétaire vide\n";
$detecter = true;
}
// On retourne une variable pour indiquer si les variables sont correctes (erreur?)
if ($detecter == true) {
echo "&erreur=oui";
}
else {
echo "erreur=non";
echo "&prenom=oui";
echo "&race=oui";
echo "&age=oui";
echo "&proprietaire=oui";
}
// Enregistrer les données
/* Ici, on peut mettre une syntaxe pour enregistrer
les données reçues dans une base de données par exemple */
// On retourne une variable pour indiquer que la transmission a eu lieu
echo "&tranmission=oui";