Qui fait de la programmation Quels sont les besoins P12 Programmation Qui fait de la programmation Quels sont les besoins
Repérage des compétences Enquête compétences Langages spécifiques à des outils : SAS, STATA, R Langages de requête SQL Langages de programmation de plus bas niveau : Script : php, perl Compilé : C,java, C++
Promouvoir PHP Concision Répandu Web Script Procédural/objet Liaison avec SGBD Editeurs évolués
PHP couteau suisse PHP n’est pas seulement un langage dédié au Web Utilisable pour créer des moulinettes de préparation de données : Traitement aisé de fichier texte (expression régulières) Gestion des tableaux mémoire souple :tableau associatif Performant sur le traitement de ce type de fichier Connexion facile à une bases de données si besoin de puissance : jointure
Liaison base de données [Postgres] connexion au SGBD $connection_string = "host=$machine port=5432 dbname=cartodyn user=$user password=$password"; $db_pg = pg_connect( $connection_string ) or die("Problème de connexion au serveur POSTGRES "); Soumission d’une requête : $sql = " select i1, i2 from base.table where i1 = ‘3’ " ; $resultat = pg_query( $sql, $db ) or die( " Erreur : $sql " ); while( $ligne = pg_fetch_array( $resultat ) ) { $i1 = $ligne[‘i1’]; $i2 = $ligne[‘i2’]; ….. }
Liaison base de données [MySQL] connexion au SGBD : $db= mysql_connect( $machine, $user, $password) or die("problème de connexion au serveur MySQL " . $machine ); Soumission d’une requête : $sql = " select i1, i2 from base.table where i1 = ‘3’ " ; $resultat = mysql_query( $sql, $db ) or die( " Erreur : $sql " ); while( $ligne = mysql_fetch_array( $resultat ) ) { $i1 = $ligne[‘i1’]; $i2 = $ligne[‘i2’]; ….. }
Moulinette Exemple lecture d’un fichier et découpage d’une ligne avec des blancs if( $nomfic == "" ) { echo "Donner un nom de fichier" ; exit ; } $fp = fopen( $nomfic, "r" ) ; while( !feof( $fp) ) { $lu = fgets( $fp, 1000 ) ; $_lu = preg_replace( ‘’ +)’, ‘ ‘, trim( $lu ) ); $t = explode( ‘ ‘, $_lu ); $n = count( $_t ); //traitement des variables de la ligne contenues dans le tableau $t … } fclose( $fp) ; Utilisation en ligne de commande \....\php.exe –q pg.php > sortie.txt
Créer une matrice de distances <? //creematxy.php require 'conf0.php'; $sql = "select code, centroseglongx, centroseglongy from igncalc.mifze where sousens='' order by code "; $resultat = mysql_query( $sql, $db) or erreurmysql( $db, "inizonegeo 1 :<br> $sql"); $nl = mysql_num_rows( $resultat ); while( $ligne = mysql_fetch_array( $resultat ) ) { $codelu = $ligne[code]; $tabnum[] = $codelu; $x[$codelu] = $ligne[centroseglongx]; $y[$codelu] = $ligne[centroseglongy]; } $nl = count( $tabnum ); for( $i = 0; $i < $nl; $i++ ) $code1 = $tabnum[$i]; echo "<br>\r\n $code1 \t"; for( $k = 0; $k < $nl; $k++ ) $code2 = $tabnum[$k]; echo "\t"; $dist = ( $x[$code1] - $x[$code2] ) * ( $x[$code1] - $x[$code2] ) + ( $y[$code1] - $y[$code2] ) * ( $y[$code1] - $y[$code2] ); if( $dist == 0 ) echo '0'; else echo 1000./sqrt( $dist ); echo "<br>\r\n"; ?>
Procédural - Objet Les deux modes sont possibles et mixables De plus en plus approche objet dans les publications, dans les journaux : [umlmerise.pdf] Passage progressif possible : objet = morceau d’application transformé en une sorte de petit programme principal Constructeur en PHP5 a changé (_construct), mais compatibilité avec constructeur PHP4 (classique).
Créer une classe [1] Source procédural existant Identifier des fonctionnalités : Créer une table dans une base MySQL à partir d’un fichier texte Exporter au format texte ou import excel des données contenues dans un table …
Créer une classe [2] Identifier les variables liées à la classe : attributs Identifier les fonctions propres à la classe : méthodes Faire précéder de this-> l’utilisation des méthodes et attributs internes de la classe Créer un constructeur pour pouvoir passer en paramètre les attributs les plus importants de la classe Créer les méthodes pour passer des valeurs de certains attributs Créer les méthodes pour récupérer les valeurs de certains attributs
Mise en œuvre classique //export d’une table require 'cl_exportdon.php'; $export = new cl_exportdon( $tableaexporter, $varexport ); $export->setajoutnom( $ajoutnom ); $export->cree_export(); //création d’une table require 'conf0.php'; require 'cl_txt2my.php'; $my = new cl_txt2my( "promo1.txt", 'chartier', 'toto1' ); $my->setsepar( ‘,’ ); $my->setmarge( 2 ); $my->txt2my();
Faire reconnaître son travail[1] Fiche Partenariat avec en tête CATI Cette fiche aura un caractère plus ou moins 'officiel' suivant son utilisation : Une utilisation légère : La fiche est remplie afin de signaler d'une manière unilatérale une activité, elle n'est pas co-signée. Cette utilisation peut prendre en compte aussi les échanges intra-SAE2. Une utilisation complète : La fiche est signée du partenaire. Cette utilisation correspond au cas d'un transfert d'outil, de l'implication importante dans un projet hors département.
Faire reconnaître son travail[2] Valorisation d'une application informatique Projet calcul de l'indice de biodiversité Présentation à la direction SAE2 Idée : et si on déposait un brevet ? IDDN : Inter Deposit Digital Number
IDDN en 4 questions Pourquoi référencer ? En référençant vous vous préconstituez la preuve de l'antériorité de vos droits. Que puis-je référencer ? Tout fichier sous forme numérique, quelque soit le format, quelque soit le système d'exploitation. Il peut s'agir d'une oeuvre (film, texte, logiciel, site web, image, son), d'une base de données, d'une idée, d'un concept, d'une "business methode", d'une revendication sur un effet technique. Que vais-je obtenir à l'issue du référencement ? Vous allez obtenir un certificat de référencement en ligne, accessible en 4 langues. Vous pourrez faire appel à ce certificat sécurisé depuis votre site et ainsi faire connaître vos conditions d'utilisation. Qui est InterDeposit ? InterDeposit est la fédération internationale de l'informatique et des technologies de l'information, créée à Genève le 10 janvier 1994. Elle rassemble les organisations concernées par la protection des droits de propriété intellectuelle sur les œuvres numériques. L'un de ses membres fondateurs est l'Agence pour la Protection des Programmes.
Deux temps Déclaration d'invention Agence pour la Protection des Programmes APP Lettre avec ref biblio CD des fichiers sans password, serveur Apache, etc. Demande de référencement Copie de la déclaration d'invention IDDN en retour IDDN.FR.001.080016.000.R.P.2009.000.31235