Automatiser le changement de permissions sous PyroCMS

Un exemple de console Linux

Lors d’une nouvelle installation de PyroCMS sur un serveur ou lors du déploiement du projet en recette client ou en production, il est nécessaire d’effectuer de façon redondante des modifications sur les permissions. Cette tâche peut s’avérer répétitive et contre-productive.

Je vous propose donc un petit script que vous pouvez rajouter à votre dossier /usr/local/bin (par défaut sur ubuntu, je place l’ensemble de mes scripts dans ce dossier).

il faut rendre le script exécutable en faisant

sudo chmod +x pyrocms_permissions

Je vais rapidement apporter les modifications suivantes :

  • Vérifier qu’on est bien à la racine d’un projet PyroCMS (un simple test pourrait être mis en place)
  • Vérifier que les dossiers existent avant d’effectuer le changement de permissions

Ouverture du site PyroCMS.fr

Une très bonne nouvelle pour tout les utilisateurs francophone de PyroCMS, une initiative viens de voir le jour pour effectuer les traductions de la documentation en français.

Autant dire que cette nouvelle me fait plaisir, j’utilise ce CMS depuis quelques années mais jusqu’à aujourd’hui mes interlocuteurs sont exclusivement anglophones (que ce soit sur le site, sur les forums ou sur le chan irc #pyrocms).

L’objectif du projet est de mettre à disposition :

  • Une traduction de la documentation (difficile à garder à jour en raison de l’utilisation de Fizl cf dépôt GitHub de la doc)
  • Un forum de support en français
  • Identifier les acteurs francophones et je pense qu’ils sont nombreux qui utilisent CodeIgniter et PyroCMS
Je vais essayer de dégager du temps pour contribuer à cette aventure en parrallèle je continue à contribuer via GitHub aux traductions en français et à la remontée de bugs.

Lien utiles :

 

Débugger vos applications Codeigniter à l’aide de firephp

Sparks est un système de management de paquets pour Codeigniter, il permet d’installer des librairies dans vos applications de manière instantanée.

L’avantage de ce type de système est que les librairies sont mutualisés et constamment mise à jour par la communauté des développeurs.

Console

Cette librairie permet d’implémenter la classe firephp et permet d’afficher des variables dans la console firebug (il faut au préalable installer firebug et firephp).

Dans un premier temps il faut installer sparks : http://getsparks.org/install

Ensuite il faut lancer la ligne de commande suivante dans votre projet :

php tools\spark install -v0.7.0 console

Ensuite dans votre code PHP


// chargement de la librairie console

$this->load->spark('console/[version]');

// affichage d'une variable ($type, $message, $write_to_file)

$this->console->log('ce message est affiché dans la console', 'error', FALSE);

// vous pouvez également utiliser l'alias de cette fonction

console_log('ce message est affiché dans la console', 'error', FALSE);

Vous pouvez afficher proprement vos variables dans la console sans utiliser les fonctions PHP print_r() ou var_dump()

Liens utiles

Cet article est une mise à jour de l’article que j’avais écrit il y a quelques mois concernant l’utilisation de firephp pour Codeigniter.

Pyrocms : Contribuer aux mises à jour avec git

Cas 1 : Création d’un fork

Rendez-vous sur le dépôt GitHub du projet Pyrocms (vous devez au préalable être connecté au site) et cliquer sur « Fork ».

Un nouveau va être créé qui est une copie du dépôt original. Vous pouvez travailler sur votre propre copie. Afin de travailler sur votre poste en local, utilisez la commande suivante dans un terminal dans votre dossier de travail :

[code lang= »bash »]
$ git clone git@github.com:votrenomutilisateur/pyrocms.git -b 2.0/develop
[/code]

Vous pouvez maintenant éditer le code source, l’ensemble des modifications que vous apportez sont prises en comptes et signalées.

Cas 2 : Utilisation un dépôt externe

Vous pouvez utiliser votre propre dépôt Git

Envoyer ses modifications

Lorsque vous avez effectué des modifications (avez-vous testé correctement les modifications ?) vous pouvez :

  • vérifier les fichiers qui ont été modifiés
  • ajouter / supprimer des fichiers
  • effectuer un commit (livraison)

[code lang= »bash »]
$ git status
$ git add unfichier
$ git add undossier/
$ git rm fichier1 fichier 2
$ git rm -r undossierentier/
$ git commit -m "bug: description du bug corrige"
[/code]

Une fois ceci effectué il ne s’est rien passé, vos modifications n’ont pas été répercutées, vous devez effectuer un push de vos travaux.

Afin d’effectuer ce push il faut executer la ligne de commande suivant

[code lang= »bash »]
$ git push origin 2.0/develop
[/code]

Un cas qui arrive souvent lors de cette étape est que votre dépôt ne soit plus à jour (ceci arrive souvent si quelqu’un travaille sur le même dépôt que vous).

Lancez la commande suivante :

[code lang= »bash »]
$ git pull origin 2.0/develop
[/code]

Si vous devez faire un retour en arrière (récupérer le fichier avant d’effectuer des modifications dessus) vous pouvez faire ceci :

[code lang= »bash »]
$ git checkout — cheminversledossier/nomdufichier.php
[/code]

Récupérer les modifications de Pyrocms

Lorsque vous faites une copie de votre dépôt vous avez la version du projet à un instant donné. Si des modifications ont lieu sur le code source (il suffit de voir l’activité des PULL REQUEST sur un projet pour se rendre compte que ceux ci évoluent toute les heures) votre version n’est plus à jour.

Vous avez la possibilité d’ajouter un dépôt distant existant et de le déposer sur votre branche de travail pour cela il faut effectuer :

[code lang= »bash »]
$ git remote add pyrocms git://github.com/pyrocms/pyrocms.git
[/code]

Ensuite généralement la bonne pratique consiste à lancer les deux commandes suivantes avant de travailler :

[code lang= »bash »]
$ git pull pyrocms 2.0/develop
$ git push origin 2.0/develop
[/code]

Les différents commits sur le dépôt principal sont rapatriés et poussés sur votre propre dépôt.

Une fois les modifications faites sur votre code vous reprenez :

[code lang= »bash »]
$ git status
$ git add unfichier
$ git add undossier/
$ git rm fichier1 fichier 2
$ git rm -r undossierentier/
$ git commit -m "bug: description du bug corige"

$ git push origin 2.0/develop //permet de pousser vos modifications
[/code]

Puis rendez-vous sur votre dépôt sur le site GitHub et effectuez une PULL REQUEST afin d’envoyer vos modifications sur le code source général.

Vous pouvez ainsi contribuer au développement de n’importe quel projet open source.

Article traduit, lien vers l’article original

Intégration de Firephp dans CodeIgniter

Lors de la phase de développement d’une webapp développée en PHP, il est important d’avoir des outils appropriés pour effectuer un débogage efficace.

Dans l’article qui suit je vous propose d’intégrer Firephp au Framework Code Igniter

Prérequis

Installation

Il faut décompresser la librairie Firephp et déplacer le dossier /lib/FirePHPCore dans le dossier /applications/libraries de votre projet Code Igniter.

Créer un fichier firephp.php à la racine du dossier /applications/libraries avec le contenu suivant :


<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

// Include FirePHPCore librarie
include ('FirePHPCore/FirePHP.class.php');

class CI_Firephp extends FirePHP {

function __construct() {

// Disable Firephp if environment != development
if(ENVIRONMENT != 'development'){
$this->setEnabled(FALSE);
}

}

}

/* End of file firephp.php */
/* Location: ./libraries/config.php */

Dans le fichier précédent nous activons le debug uniquement dans l’environnement de développement en effet utiliser Firephp en production peut entraîner la révélation d’informations sensibles.

Utilisation de la librairie FirePHP

Affichage des messages


// Priority Logging Messages
$this->ci_firephp->log('Plain Message');     // or FB::
$this->ci_firephp->info('Info Message');     // or FB::
$this->ci_firephp->warn('Warn Message');     // or FB::
$this->ci_firephp->error('Error Message');   // or FB::
$this->ci_firephp->log('Message', 'Label Optionnel');

Affichage d’un tableau


// log an Array
$this->ci_firephp->log($_SERVER,'$_SERVER');

Conclusion

Voila vous disposez maintenant d’un outil qui vous permet de debugger votre code PHP sans insérer des codes directement dans les pages. Adieu var_dump et autres print_r dans votre code.

Pour aller plus loin sur les différentes possibilités de FirePHP n’hésitez pas à consulter les sites suivants, vous y trouverez des informations concernant notamment l’utilisation des fonctions Trace, Table, etc. :