Astuce Installer PEAR pour PHP et WampServer

Transcription

Astuce Installer PEAR pour PHP et WampServer
Astuce
Image not readable or empty
/extension/devnotebook/design/devnotebook/images/icon/trick.png
Installer la librairie SVN pour PHP
Pour pouvoir utiliser simplement subversion en PHP, vous pouvez utiliser la librairie VersionControl_SVN.
Remarque :
Pour git, la librairie VersionControl_Git existe également et s'installe de la même manière.
Installation
Exécutez juste la commande suivante :
pear install VersionControl_SVN
En cas d'erreur :
Failed to download pear/VersionControl_SVN within preferred state "stable", latest release is v
install failed
utilisez plutôt la commande suivante pour spécifier le canal d'installation à utiliser :
pear install channel://pear.php.net/VersionControl_SVN-0.5.0
Classe à corriger
Le fichier Diff.php de la librairie comporte une erreur. Ce fichier se trouve dans le répertoire
VersionControl\SVN\Command\ du répertoire PEAR (par exemple :
D:\Dev\wamp\bin\php\php5.3.13\pear\VersionControl\SVN\Command\).
Tout à la fin du fichier, remplacez 'summerize' par 'summarize'.
Tags :
Image not readable or empty
/extension/devnotebook/design/devnotebook/images/icon/tag.png
Subversion
Subversion
Publié le : 13/06/2013 Modifié le : 14/04/2015
Astuce
Image not readable or empty
/extension/devnotebook/design/devnotebook/images/icon/trick.png
Installer PEAR pour PHP et
WampServer
PEAR est à PHP ce est un gestionnaire de librairies pour PHP, permettant d'étendre les fonctionnalités de
PHP par simple ligne de commande.
Installation
Récupération de l'exécutable
Si le fichier go-pear.bat n'est pas présent dans le répertoire de PHP de WampServer :
Téléchargez le fichier go-pear.phar ( http://pear.php.net/go-pear.phar).
Copiez le fichier dans le répertoire de PHP de WampServer (ex : D:\Dev\wamp\bin\php\php5.3.13\).
Exécution de l'installeur
Une fois le fichier batch en place, lancer l'invite de commande et exécutez-le :
cd
D:\Dev\wamp\bin\php\php5.1.13\go-pear
Durant l'installation, appuyez toujours sur Entrée ou Y, pour utiliser les paramètres par défaut.
Configuration de l'environnement
Lancez le fichier PEAR_ENV.reg présent dans le répertoire PHP de WampServer, pour mettre à jour les clés
de registre nécessaires. (Double-cliquez sur le fichier pour le lancer.)
Mise à jour de PEAR
Pour mettre à jour votre installation, et vérifier que PEAR est bien installé, exécutez la commande suivante :
pear channel-update pear.php.net
Publié le : 13/06/2013 Modifié le : 10/04/2015
Astuce
Utiliser Google Analytics pour un Intranet
Image not readable or empty
/extension/devnotebook/design/devnotebook/images/icon/trick.png
Google Analytics fonctionne très bien même en Intranet, tant que les utilisateurs du site ont accès à internet.
Cela n'est vrai qu'à une condition : le site intranet doit avoir un nom de domaine finissant par ".qqchose" (.fr,
.com, ...).
Par exemple, http://mon-intranet.fr, http://mon-intranet.pwet fonctionneront, mais pas http://mon-intranet.
Vous pouvez quand même utiliser Google Analytics en ajoutant une ligne au code Javascript fournit par
Google :
_gaq.push(['_setDomainName', 'none']);
Source : http://www.statstory.com/intranet-tracking-with-google-analytics-piwik/
Image not readable or empty
Google
Analytics
Tags : /extension/devnotebook/design/devnotebook/images/icon/tag.png
Google
Analytics
Publié le : 07/06/2013 Modifié le : 14/04/2015
Astuce
Le logger dans JCMS : log4j
Image not readable or empty
/extension/devnotebook/design/devnotebook/images/icon/trick.png
Par défaut, JCMS utilise log4j pour gestionnaire de logs.
Utilisation générale de log4j
Voici comment l'utiliser dans une classe :
public class MyClass {
/** Logger log4j */
private static final Logger logger = Logger.getLogger(MyClass.class);
public MyClass() {
logger.info("Je suis dans le constructeur par défaut de ma classe.");
}
Explications :
Déclarez un nouvel attribut de classe statique qui utilise la méthode getLogger() de log4j.
Passez votre classe en paramètre à cette méthode.
Utilisez le logger en appelant ses méthodes debug(), info(), warn(), error(), fatal(), avec un message
en paramètre, plus éventuellement une exception.
Configuration de log4j
Log4j est configuré via le fichier log4j.xml. Dans JCMS, ce fichier se trouve dans WEB-INF/data.
Si dans un nouveau projet JCMS vous créez un package pour y mettre vos classes Java, il est probable que
les logs ne fonctionnent pas. En effet, log4j n'est pas configuré pour ce nouveau package.
Pour cela, éditer le fichier log4j.xml et ajoutez :
<!-- Logger de classes personnalisées -->
<logger name="mon.package" additivity="false">
<level value="DEBUG" />
<appender-ref ref="JCMS" />
<appender-ref ref="CONSOLE" />
<appender-ref ref="LOGFILE" />
<appender-ref ref="PLUGIN" />
</logger>
Explications :
L'attribut name définit pour quels package utiliser log4j. (Les sous-packages seront automatiquement
logués.)
L'attribut value de l'élément level permet de déterminer quels niveaus de log appliquer. En
développement on utilise souvent DEBUG ou INFO alors qu'en production on peut se contenter de INFO
ou WARN. Concrètement, avec le niveau WARN, les méthodes logger.debug() et logger.info() n'auront
aucun effet (suivant cet ordre : debug < info < warn < error < fatal).
Les appender sont les sorties à utiliser : fichier de log, console, ...
Vous pouvez déclarer autant de logger que vous le souhaitez dans le fichier log4j.xml.
Publié le : 28/05/2013 Modifié le : 09/04/2015
Astuce
La taille des fichiers uploadés via PHP
Image not readable or empty
/extension/devnotebook/design/devnotebook/images/icon/trick.png
La taille des fichiers uploadés via PHP est limitée. Par défaut PHP fixe cette limite à 2Mo, mais cette
configuration peut être modifiée.
Pour cela, éditez le fichier php.ini et modifiez la propriété upload_max_filesize avec la taille que vous
souhaitez (ex: 16M).
Deux autres propriétés peuvent brider la taille maximale :
post_max_size : Nombre d'octets transmissibles via une requête POST, si vous voulez uploader un
fichier via un formulaire.
memory_limit : Nombre d'octets que PHP peut stocker en mémoire.
Ces deux propriétés doivent être supérieures ou égales à upload_max_filesize.
Publié le : 27/05/2013 Modifié le : 10/04/2015
Astuce
Les variables disponibles dans le contexte,
Image not readable or empty
/extension/devnotebook/design/devnotebook/images/icon/trick.png
pour les DataController
Lorsque vous créez un DataController et que vous surchargez les méthodes beforeWrite(), checkIntegrity()
et afterWrite(), le dernier paramètre de la méthode (la Map), contient tout le contexte disponible.
Dans cette variable il y a notamment :
request : L'objet HttpServletRequest de tomcat.
response : L'objetHttpServletResponse de tomcat.
formHandler : Le FormHandler utilisé lors de l'édition du contenu.
Et dans le cas d'une modification de donnée, il y également :
Data.previous : La dernière version de la Data modifée.
Publié le : 23/05/2013 Modifié le : 09/04/2015
Astuce
Récupérer la version antérieure d'une
Image not readable or empty
/extension/devnotebook/design/devnotebook/images/icon/trick.png
Data, dans un DataController
Si vous avez besoin de comparer l'ancienne et la nouvelle version d'une Data, dans un DataController (par
exemple dans afterWrite()), vous aurez besoin d'utiliser le contexte en paramètre de la méthode.
Pour obtenir cette version, utilisez quelque chose comme :
final Article oldArticle = (Article) context.get("Data.previous");
Publié le : 23/05/2013 Modifié le : 09/04/2015
Astuce
Utiliser un logger dans les classes de test
Image not readable or empty
/extension/devnotebook/design/devnotebook/images/icon/trick.png
Dans vos classes de test, vous pouvez utiliser le gestionnaire de log slf4j. Ce gestionnaire est une façade qui
peut utiliser plusieurs loggers au choix, comme log4j par exemple.
Voici comment utiliser ce gestionnaire :
public class MyClassTest extends JcmsTestCase {
/** Logger **/
private static Logger logger;
/**
* Initialise un contexte pour une suite de tests, avec des méthodes d'initialisation et de
*
* @return une configuration de suite de tests
*/
public static TestSetup suite() {
return new TestSetup(new TestSuite(MyClassTest.class)) {
@BeforeClass
@Override
protected void setUp() throws Exception {
logger = LoggerFactory.getLogger(MyClassTest.class);
logger.debug("Début des tests unitaires pour la classe " + MyClass.
class.getSimpleName() + ".");
}
@AfterClass
@Override
protected void tearDown() throws Exception {
logger.debug("Fin des tests unitaires.");
}
};
}
Explications :
Déclarez le logger dans votre classe de test.
Créez la méthode statique suite(), pour pouvoir initialiser des éléments au début des tests.
Utilisez la méthode LoggerFactory.getLogger(), pour initialiser le logger.
Utilisez le logger comme avec log4j (ex : logger.info(), logger.debug(), ...).
Remarque :
Pour pouvoir utiliser slf4j avec log4j, vous devez inclure ces deux jars dans votre projet : slf4j-api-1.5.8.jar et
slf4j-log4j12-1.5.8.jar.
Publié le : 23/05/2013 Modifié le : 09/04/2015
Astuce
Vider toutes les tables de la base de
Image not readable or empty
/extension/devnotebook/design/devnotebook/images/icon/trick.png
données Derby
Si vous utilisez Derby dans vos tests unitaires, vous aurez sans doute besoin de réinitialiser votre base entre
chaque test.
Pour supprimer le contenu de toutes les tables de données, vous pouvez utiliser cette fonction :
/**
* Vide toutes les tables de la base de données, dont le nom commence par "G_" ou "J_".
*
* @throws SQLException */
public static void derbyClearAllTables() throws SQLException {
ResultSet tables;
Statement stat;
final String schema = "jdbc:derby:jcmsdbunit";
// Récupération de la liste des tables de la base de données
final Connection connection = DriverManager.getConnection(schema);
tables = connection.getMetaData().getTables(null, null, null, null);
final Set<String> tableNameSet = new HashSet<String>();
// Parcours des tables de la base de données
while (tables.next()) {
final String tableName = tables.getString("TABLE_NAME");
if (tableName.startsWith("G_") || tableName.startsWith("J_")) {
tableNameSet.add(tableName);
}
}
// Parcours des tables à vider
for (final String tableName : tableNameSet) {
// Nettoyage de la table
stat = connection.createStatement();
stat.executeUpdate("DELETE FROM " + tableName);
connection.commit();
}
if (!tables.isClosed()) {
tables.close();
}
}
Remarque :
Les tables ne commençant ni par "G_" ni par "J_" sont probablement des tables utiles au fonctionnement
interne de Derby. Elles ne sont pas à vider.
Publié le : 21/05/2013 Modifié le : 09/04/2015
Astuce
Méthode d'initialisation au début de la
Image not readable or empty
/extension/devnotebook/design/devnotebook/images/icon/trick.png
classe de test
Pour effectuer un traitement une fois au début des tests, on utilise généralement la méthode suivante dans la
classe de test :
@BeforeClasspublic static void oneTimeSetUp() {
logger = LoggerFactory.getLogger(MyClassTest.class);
logger.info("Début des tests unitaires.");
}
Cela permet d'initialiser un logger, configurer l'environnement à utiliser pour tous les tests, ...
Cette méthode ne semble pas fonctionner avec JCMS (dans eclipse en tous cas). Vous pouvez faire
l'équivalent grâce à la méthode suite() à ajouter dans votre classe de test :
/**
* Initialise un contexte pour une suite de tests, avec des méthodes d'initialisation et de fin
*
* @return une configuration de suite de tests */
public static TestSetup suite() {
return new TestSetup(new TestSuite(MyClassTest.class)) {
@Before
@Override
protected void setUp() throws Exception {
logger = LoggerFactory.getLogger(MyClassTest.class);
logger.info("Début des tests unitaires.");
}
@After
@Override
protected void tearDown() throws Exception {
logger.info("Fin des tests unitaires.");
}
};
}
Remarque :
La méthode tearDown() permet d'effectuer un traitement une fois après tous les tests.
Publié le : 21/05/2013 Modifié le : 09/04/2015
« PrécédentSuivant » 1... 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ...26

Documents pareils