Si vous avez besoin d'un logiciel pour étendre les capacités de votre logiciel de CAO (Revit, AutoCAD, Inventor, Vault, Navisworks, Solidworks, SketchUp...), vous êtes au bon endroit. Depuis 2008, je suis spécialisé dans le développement de ce type de programme.

Contactez moi au (+33) 6.46.40.75.66 ou par E-mail (maxence.delannoy@wiip.fr) pour un devis gratuit.

Traduire ses URL avec Zend_Controller_Router_Route

Je n'aime pas mélanger le Français et l'Anglais dans mon code. Mes noms de variables, mes noms de table, mes noms de contrôleur et d'actions sont donc toujours systématiquement en anglais. Le problème avec cette approche, c'est que du coup mes URL sont également en anglais.

Etiquettes:

Zend Framework : utiliser application.ini pour stocker vos paramètres

Comme vous le savez sans doute, le Zend Framework utilise un fichier de configuration nommé application.ini pour stocker ses paramètres. Vous pouvez l'utiliser également pour vos paramètres personnalisés.

Pour cela vous pouvez créer des entrées supplémentaires dans le fichier .ini. Pour éviter une collision avec d'autres paramètres, il est conseillé d'utiliser un préfixe. Vous pouvez par exemple utiliser l'espace de nom de votre application.

Etiquettes:

Utilisation de __invoke dans le Zend Framework 2

__invoke est une nouvelle méthode magique introduite par PHP 5.3. En bref, elle permet d'appeler un objet comme si c'était une fonction. Cette fonctionnalité est utilisée dans plusieurs classes du ZF2 comme les filtres. Voici un petit exemple avec Zend\Filter\Boolean :

Etiquettes:

Testez la version préliminaire du Zend Framework 2.0

Envie de tester la prochaine version du framework ? Suivez ces différentes étapes pour mettre rapidement en place un premier projet sur Windows :

Etiquettes:

C#/.NET Stocker un DateTime dans la base de registre

La base de registre Windows ne dispose pas d'un type de donnée adapté aux objets date. On peut évidemment utiliser un type chaîne de caractère, mais on peut aussi utiliser un type entier qui est plus compact. Les objets DateTime peuvent être converti en long (entier 64 bits signé) à l'aide de la méthode ToBinary. La méthode FromBinary réalise la conversion dans le sens inverse. L'entier obtenu peut ensuite être enregistré dans le registre sous la forme d'une valeur QWORD (entier 64 bits).

using Microsoft.Win32;
 
RegistryKey rkcu = Registry.CurrentUser;
RegistryKey rk = rkcu.CreateSubKey(@"Software\Société\Produit");
 
// Ecrit la valeur dans le registre
rk.SetValue("Date", DateTime.Now.ToBinary(), RegistryValueKind.QWord);
 
// Lit la valeur depuis le registre
DateTime d = null;
object oDate = rk.GetValue("Date");
if (oDate != null) d = DateTime.FromBinary((long)oDate);

Etiquettes:

Exécuter du code .NET sous un autre nom d'utilisateur

.NET dispose d'une fonctionnalité qui permet d'exécuter du code sous un autre nom d'utilisateur que celui qui a lancé le programme à l'origine (une sorte de RUNAS). C'est un peu compliqué à utiliser car il faut notamment P/Invoker des fonctions de l'API Windows.

Voici un portage du code C# originellement publié par Michiel van Otegem en VB.NET. Cette classe permet de simplifier le basculement de contexte.

Etiquettes:

Renommer une clé dans un tableau PHP

Oui, je sais c'est pas souvent qu'on doit faire ce genre d'opération, mais en travaillant avec MongoDB, je suis tombé sur la problématique suivante : dans MongoDB, l'identifiant des documents générés automatiquement se nomme _id. Pour conserver le nom de clé primaire que j'utilise habituellement avec des SGBDR classiques (id), je suis amené à devoir renommer une clé d'un tableau.

J'ai procédé ainsi :

<?php
// Crée une nouvelle clé avec le contenu de l'ancienne
$data['id'] = $data['_id'];
// Supprime l'ancienne
unset($data['_id']);
?>

Pas super élégant, mais ça fonctionne. Vous avez mieux ?

Etiquettes:

Retrouver le nom commercial de la version de Windows avec .NET

Avec .NET, on peut obtenir la version de Windows avec le code suivant :

Dim osVersion As String = Environment.OSVersion.VersionString

Etiquettes:

Envoyer des fichiers exécutable avec Gmail

Je suis un grand fan des applications Google, notamment Gmail dont je ne peux me passer. Ce dernier a cependant un énorme défaut, il refuse systématiquement d'envoyer des exécutables (.exe, .bat...) en pièces jointes. Au lieu de scanner les fichiers pour s'assurer qu'ils ne contiennent pas de virus, les équipes de Google on choisit tout simplement la solution radicale qui consiste à exclure les fichiers sur la base de leur extension. Le fait de placer les fichiers dans une archive Zip ne change rien à l'affaire, car ces dernières sont également passées à la loupe.

Généralement, je change l'extension et j'explique au destinataire qu'il doit renommer le fichier. On peut également utiliser le format RAR car ce dernier n'est pas scanné par Gmail. Le problème c'est que le seul logiciel à ma connaissance qui permettent de créer des archives RAR (WinRAR pour ne pas le nommer) est payant.

J'ai trouvé une solution alternative avec 7zip. Il suffit de créer une archive au format 7z cryptée en prenant soin de cocher la case Crypter les noms de fichiers. Gmail ne pouvant pas consulter la liste des fichiers, il autorise l'envoi.

L'option Crypter les noms de fichiers de 7zip

Etiquettes:

Propriétés en PHP

En C#, il y une fonctionnalité que j'apprécie particuliérement. C'est la possibilité de définir des propriétés :

class MyClass
{
    protected string _myProperty;
 
    public string MyProperty
    {
        get
        {
            return _myProperty.ToUpper();
        }
        set
        {
            _myProperty = value;
        }
    }
}

Pages

Subscribe to WIIP RSS