Des scripts perso pour se facilité la vie

Sous GNU/Linux un petit script peux souvent facilité la vie, et allégé mais surtout accéléré certaine tâche.

Qu’est-ce qu’un script?

Un script est une suite d’instruction enregistré dans un fichier, qui peuvent être exécuté en lançant ce fichier, dans l’interpréteur de script. Souvent nommé script bash, shell, …

Stocker et accèder facilement à ces scripts

U!ne fois votre script fait, vous pouvez l’enregistrer dans un simple fichier texte, soit avec l’extension .sh, soit sans extension (après tout on est sous Linux!). Personnellement, j’ai un dossier nommé .myScript, dans mon répertoire home (donc /home/grummfy/.myScript/). Afin d’accédé à mes script je doit tapé
~/.myScript/nomduscript.sh.

Ce n’est pas pratique du tout!

Afin de ce facilité la tâche, je désire que le PATH inclut mon dossier de script. Le PATH est une variable système qui défini le chemin (path = chemin en français) vers les différent répertoire contenant, notamment, des exécutables.
Je pourrais très bien tapé
set PATH=.....}}
mais je n’en voix pas l’utilité et surtout je trouve cela lourd.

Reprenons donc à la base. En principe, lorsque vous lancer la console ou interpréteur de commande, vous lancer un programme qui va aller chercher toute une série de préférence utilisateur, notamment dans le fichier script ~/.bashrc

Modifions donc ce fichier, en y ajoutant ceci :

 # set my batch dir PATH=~/.myScript/:"${PATH}" 

La première ligne étant un commentaires, et la deuxième l’instruction qui ajoute le chemin vers mon dossier de script.

Pour rappel, le ~ est un raccourci pour /home/vous/, dans mon cas /home/grummfy/

Aller plus loin

En effectuant divers recherche sur votre moteur de recherche préféré (Google, live search, Yahoo, …), vous devriez pouvoir trouvez énormément de tuto pour des scripts, que se soit linux, windows, bsd, mac ou autre.

Néanmoins, voici quelques pistes :

ps : Non GNU/Linux n’est pas le seul à possédé des scripts, mais ici je m’y réfère car je parle de ce que j’ai sous la main….

Python, l’héritage en quelques lignes

Python, l’héritage en quelques lignes

 # !/usr/bin/python # -*- coding: UTF-8 -*- class A():     def A(self):         print self.C() + '.A'     def B(self):         print self.C() + '.B'     def C(self):         return 'A' class B(A):     def B(self):         self.A()         A.A(self)         A.B(self)     def C(self):         return 'B' print 'test de A' a = A() a.B() print ' test de B' b = B() b.B() 

résultat affiché :

test de A A.B

test de B B.A B.A B.B

Commencer à apprendre le html, php, et les css

Dans énormément de forum que je visite, je voix des messages du genre où apprendre le css, html, php, …, je veux des cours de …, etc

Dans ce cas je recommande ces sites

Pour aller plus loin

En plus des autres sites :

Où trouver de l’aide?

Sur la plupart des site cité il y a un forum, n’hésitez pas à vous y inscrire!

Manuel

Cependant, lorsque vous aurez un peu compris la logique interne de chaque chose, un petit tour dans els différent manuel de référence (souvent avec des exemple) sera une grande aide :

PHP : fonction callback et méthode

PHP permet bien des choses, notamment l’utilisation de fonction de callback. Les fonction de callback sont des fonctions qui seront appeler durant l’exécution d’une autre fonction, et ce de manière automatique.

C’est bien souvent le cas lors d’expression régulière ou encore lors d’une session php passant par ses propres fonctions (via session_set_save_handler() )!

Les fonctions de callback peuvent être rpésente sous différentes forme :

  • Fonction de PHP
  • Fonction que vous avez définie
  • Méthode static
  • Méthode non-static

Dans le cas de fonctions, il suffit de mettre le nom de la fonction entre guillemet.

Mais dans le cas de méthode, il vous faut utiliser un array

Pour les méthodes static, ce sera : array('NOMDELACLASS', 'NOMDELAMETHODE')

Pour les méthodes non-static, ce sera : array(INSTANCEDELACLASS, 'NOMDELAMETHODE')

Exemple :

 class maClass {     static function toto()     {         echo 'on a appellé toto';     }     public function totor()     {         echo 'on a appellé totor';     } } //cas static call_user_func(array('maClass', 'toto')); //on a appellé toto //cas non-static $maClass = new maClass(); call_user_func(array($maClass, 'totor')); //on a appellé totor 

J’espère que ce petit truc vous sera utile.

ZF : comprendre le fonctionnement des urls

Url de ZF et distribution des rôles aux contrôleurs

Avec Zend Framework, de base le système mis en place par le contrôleur est celui-ci :

url module contrôlleur action paramètre
http://exemple.test/ default index index
http://exemple.test/news default news index
http://exemple.test/news/ajouter default news ajouter
http://exemple.test/news/modifier/id/5 default news modifier id=5
http://exemple.test/news/modifier/?id=5 default news modifier id=5

Avec des modules perso

Maintenant ajoutons la gestion des modules news et livredor:

 $ctrl->setControllerDirectory(     array(         'news'    => '/module/news/controllers',         'livredor'    => '/livredor/ctrl'     ) ); 
url module contrôlleur action paramètre
http://exemple.test/ default index index
http://exemple.test/news news index index
http://exemple.test/news/ajouter news ajouter index
http://exemple.test/news/modifier/id/5 news modifier id
http://exemple.test/news/modifier/?id=5 news modifier index id=5

Comprendre le Zend_Controller_Router_Route

ce que l’on vient de voir s’explique par ceci :

 $route = new Zend_Controller_Router_Route(     ':module/:controller/:action/*',     array('module' => 'default') ); $router->addRoute('default', $route); 

Ce qui correspond à l’option par défaut. De plus, ceci nous montre un exemple de paramètre par défaut, en effet à module, on attribue la valeur default.

Allons plus loin et créer nos propres routes!

Route personnalisée

imagions un espace membre, on désire afficher chaque profile. On pourrait imaginer quelque chose du genre : http://exemple.test/profil/voir/id/5 ou encore http://exemple.test/profil/voir/membre/grummfy afin d’avoir le contrôleur profil et et l’action voir. Cependant ce n’est ni joli, ni pratique. Utilisons donc le Zend_Controller_Router_Route

 $route = new Zend_Controller_Router_Route(     'profiledemembre/:username/*',     array(         'controller' => 'profil',         'action'     => 'voir'     ) ); $router->addRoute('myProfileRoute', $route); 

Ce qu’on fait pour les url du type http://exemple.test/profiledemembre/grummfy, on assigne les valeurs suivantes :

 * controller = profil  * action = voir  * username = grummfy, ceci via les :  * et on garde la possibilité d'avoir des paramètres avec *

Dans le contrôleur profil, on fera ceci :

 <?php public function voirAction() {     $request = $this->getRequest();     $username = $request->getParam('username');     // ou     $username = $this->_getParam('username'); } 

Aller plus loin

Le manuel de Zend vous enseignera comment faire des url avec expression régulière ou encore des rotue static, et bien plus! Mais aussi cette autre page : http://framework.zend.com/manual/fr…