Apache CouchDB

Le choix de la technologie utilisée pour votre base de données est toujours un choix délicat et déterminant dans la bonne conduite de votre projet. Aujourd'hui de nombreuses solutions existent (PostgreSQL, Oracle, MongoDB, etc...). J'ai décidé de vous présenter la solution fournie par Apache, "Apache couchDB". Cette solution faisant partie de la mouvance NoSQL, est un système de gestion de base de données orienté documents (formaté en JSON) et écrit en langage Erlang. De plus, elle possède une API REST qui permet de faire toutes les opérations nécessaires sur une base de données telles que des insertions, modifications ou suppressions de données. Mais également d’effectuer des requêtes complexes qui pourront être réalisées à l'aide du patron d'architecture MapReduce.

DoctrineMigrationsBundle avec Symfony 3.1

symfony bundle

Appréhender l’évolution du schéma de la base de données est très important durant le cycle de vie d’un projet, car la base de données étant le cœur de notre produit nous devons avoir toutes les informations sur ses changements et pouvoir faire un rollback au moindre problème. DoctrineMigrationsBundle est un bundle doctrine qui nous permet donc de suivre cette évolution, de migrer la structure et les données de notre base de données, de manière sécurisée et standardisée.

Configurer elasticsearch sur un projet symfony 2

elasticsearchlogo

Elasticsearch est un moteur de recherche libre. Elasticsearch fournit toutes les fonctionnalités d'un moteur de recherche nouvelle génération : les recherches par mots-clés « à la Google », les recherches par combinaison de critères et de filtres, le tri et la pagination des résultats, la gestion des synonymes, l'extraction de texte à partir de documents binaires, l'analyse et la navigation par facettes.

Dans cet article je vais vous présenter la configuration de base du bundle FOSElasticaBundle dans un projet Symfony 2.

Tests unitaires utilisant une base de données : de nouvelles perspectives ?

L'utilisation d'une BD dans le cadre des tests unitaires est une chose qui est assez délicate, et ce pour plusieurs raisons. En effet, les tests utilisant les BD ont la réputation d'être lents, et il est difficile d'être sûr de rendre une BD dans le même état que lorsqu'on l'a prise, c'est à dire de trouver de bonnes manières de faire des opérations de setup et de teardown.

C'est pour cela qu'il est parfois pratique de partir d'une Golden Database, c'est à dire une base de données préparée pour les tests (par exemple, dans le cas de Magento, une base de données allégée, dans laquelle on a par exemple vidé les logs, les tables de cache, les commandes, et dans laquelle on laisse uniquement le minimum en terme de produits, clients,…).